Observation sky forecasts for amateur astronomers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Will Barton 83463421ed Forecasts are for 3+hours 6 years ago
observation Forecasts are for 3+hours 6 years ago
tests Update tests and test data for API changes 6 years ago
.gitignore Initial commit. 7 years ago
LICENSE Initial commit. 7 years ago
README.md Provide a link to the Canadians. 7 years ago
requirements.txt Slight update to the README. 7 years ago
setup.py Add ability to fake updates. 7 years ago



The base library of the Observation Sky Conditions stack. This library processes the Canadian Meteorological Center's Astronomical forecasts, which are only provided in map form, to extract forecasts for specific GPS coordinates.

To retrieve all of the forecast maps (seeing, transparency, wind, temperature, humidity, and cloud cover):

# Import the two main classes we need to use
from observation.conditions import ForecastMapSeries, Forecast

# Create the map series for each type of map.
image_path = "/tmp/observation"
seeingSeries = ForecastMapSeries(3, SEEING_COLOR_TABLE, 
                    'seeing', image_path)
transparencySeries = ForecastMapSeries(3, TRANSPARENCY_COLOR_TABLE, 
                                       'transparency', image_path)
windSeries = ForecastMapSeries(3, WIND_COLOR_TABLE, 
                               'wind', image_path)
temperatureSeries = ForecastMapSeries(3, TEMPERATURE_COLOR_TABLE, 
                                      'temperature', image_path)
humiditySeries = ForecastMapSeries(3, HUMIDITY_COLOR_TABLE, 
                                   'humidity', image_path)
cloudsSeries = ForecastMapSeries(3, CLOUDS_COLOR_TABLE, 'clouds', 
                                 regions=['northeast', 'northwest', 
                                          'southeast', 'southwest'])

# Create the overal forecast from the map series
forecast = Forecast(seeingSeries, transparencySeries, windSeries,
                    temperatureSeries, humiditySeries, cloudsSeries)

# Refresh the forecast maps (this will download the images from the
# Canadian Weather Office)

# GPS Coordinates
lat = 42.013750
lon = -73.883561

# Lookup the forecast for the given GPS coordinates for the present
# time.
print forecast(lat, lon, datetime.datetime.now(tz=tz.tzutc()))

This library does not attempt to handle keeping the images up to date with the Canadian Weather Office's 5:00 UTC and 17:00 UTC updates.


  • matplotlib
  • basemap
  • dateutil
  • geopy

Note: basemap may require a manual install, as it has patched dependencies that pip cannot install. See http://matplotlib.org/basemap/users/installing.html for details.


BSD. See LICENSE file.