canadarasp is a free weather forecasting tool built specifically for soaring pilots in Canada. It downloads raw model output from Environment and Climate Change Canada (ECCC), computes soaring-relevant variables, and presents them as windgrams and colour-contour maps.
The project is a ground-up rewrite of the original RASP (Regional Atmospheric Soaring Prediction) pipeline, replacing shell scripts and Lisp rendering code with a modern Python stack that runs on a single low-cost VPS. About the original canadarasp project ↗
Forecast data comes from two providers, both freely-licensed and open: ECCC Environment and Climate Change Canada for the HRDPS family, and ECMWF European Centre for Medium-Range Weather Forecasts via the ECMWF Open Data programme for the long-range outlook. No third-party providers, no paywalled feeds.
HRDPS 2.5 km High-Resolution Deterministic Prediction System, 2.5 km rotated lat-lon grid covering continental Canada. Published on dd.weather.gc.ca. Each run delivers ~700 GRIB2 files (~14 GB) covering 15 pressure levels and ~30 surface and upper-air variables across 48 forecast hours. canadarasp processes the 06Z and 18Z cycles, available at approximately 13:15 UTC and 01:15 UTC respectively.
HRDPS 1 km An experimental higher-resolution model on ECCC's alpha Datamart (dd.alpha.weather.gc.ca), covering BC and western Alberta (approx. 46–62 °N, 110–142 °W) at 1 km rotated lat-lon grid spacing. Only the 00Z and 12Z cycles are published, available at approximately 07:00 UTC and 19:00 UTC. Each run is ~200 GRIB2 files (~2 GB). This model is still in experimental status and may occasionally be unavailable; the site falls back to 2.5 km automatically.
ECMWF Open Data
IFS HRES global model at 0.25° (~25 km) lat-lon, published on
data.ecmwf.int. canadarasp processes the
00Z and 12Z cycles, which reach
out to 360 hours (15 days) — 3-hourly steps to
h144, then 6-hourly to h360. Available at approximately
07:30 UTC and 19:30 UTC.
The data is cropped to North America (lat 25–80, lon −180 to −40)
and only the messages we need are fetched via HTTP Range requests
against the per-step .index sidecar — ~4.2 GB per
run rather than the 10 GB+ a full download would pull.
Soaring fields (BL depth, W*, top-of-lift) are derived from a
surface-flux proxy (skin-temperature gradient + 10 m wind) because
ECMWF Open Data doesn't ship sensible/latent heat fluxes — quality
may differ from the HRDPS thermals.
Times shown are approximate — actual availability depends on ECCC processing.
| Model | Init (UTC) | Available (UTC) | Available (PDT) |
|---|---|---|---|
| HRDPS 2.5 km | 06Z | ~13:15Z | ~6:15 am |
| HRDPS 2.5 km | 18Z | ~01:15Z | ~6:15 pm |
| HRDPS 1 km | 00Z | ~07:00Z | ~midnight |
| HRDPS 1 km | 12Z | ~19:00Z | ~noon |
| ECMWF Open Data | 00Z | ~07:30Z | ~12:30 am |
| ECMWF Open Data | 12Z | ~19:30Z | ~12:30 pm |
.index sidecar and issues HTTP Range requests for just the messages we want — ~4.2 GB per run instead of ~10 GB.