Skip to content

Forecast model feed reference

Every builder supplies the same surface fields, five fields on each pressure level — plus vertical velocity and per-level cloud fraction where the transport carries them — and model terrain elevation to the shared derivation. Feeds that publish them also supply the optional science fields: 10 m gusts, surface-based CAPE and CIN, model boundary-layer height, and layered cloud. Access, resolution, cadence, horizon, retention, and field semantics vary by model; each model’s curated pressure-level set and science-field capabilities are declared in models.json.

Measurements use live service responses checked through 2026-08-11. When provider documentation and live capabilities disagree, use the live response and update the verification date.

Feed summary

The catalogue columns — slug, provider, kind, grid, cadence, horizon, and status flags — render from models.json at build time. Transport and verification dates are this page’s own record; an em dash means no dated per-feed verification is recorded here and the model’s section below holds what is known.

Scroll horizontally to see all columns.

ModelProviderKindGridRuns used (UTC) · stepHorizonTransportVerified
HRDPS Westhrdps-westexperimental feedECCCdeterministic1 km00/12Z · 1 h step48 hAlpha Datamart, whole-domain GRIB2
HRDPS continentalhrdps-continentalECCCdeterministic2.5 km00/06/12/18Z · 1 h step48 hDatamart, whole-domain GRIB22026-08-08
HRRR CONUShrrr-conusNOAAdeterministic3 km00/06/12/18Z · 1 h step48 hCloud bucket, byte-ranged GRIB22026-08-11
RDPSrdpsECCCdeterministic10 km00/06/12/18Z · 1 h step84 hDatamart, whole-domain GRIB22026-08-08
GDPSgdpsECCCdeterministic15 km00/12Z · 3 h step240 hDatamart, whole-domain GRIB22026-08-08
GFSgfsNOAAdeterministic25 km00/06/12/18Z · 3 h step384 hCloud bucket, byte-ranged GRIB22026-08-11
NAMnamretires 2026-10-06NOAAdeterministic12 km00/06/12/18Z · 1 h step84 hnoaa-nam-pds, byte-ranged GRIB22026-08-08
NAM CONUS nestnam-conus-nestretires 2026-10-06NOAAdeterministic3 km00/06/12/18Z · 1 h step60 hnoaa-nam-pds, byte-ranged GRIB22026-08-08
REPSrepsECCCensemble10 km00/06/12/18Z · 3 h step72 hDatamart, all-members GRIB22026-08-08
GEPSgepsECCCensemble50 km00/12Z · 3 h step384 hDatamart, all-members GRIB22026-08-08
RAQDPS wildfire smokeraqdpsexperimental feedECCCdeterministic · smoke10 km00/12Z · 1 h step72 hDatamart, whole-domain GRIB2
GOES-18 downward shortwavegoes18-dsrNOAAobservation3 km10 min granulesnoaa-goes18, whole NetCDF granules2026-08-10
GOES-18 aerosol optical depthgoes18-aodNOAAobservation3 km10 min granulesnoaa-goes18, whole NetCDF granules2026-08-10
RRFSrrfsadoption stagedNOAAdeterministic3 kmhourly cycles84 h (00/06/12/18Z), 18 h othersnoaa-rrfs-pds prototype, byte-ranged GRIB22026-08-08
IFS open dataevaluated, not adoptedECMWFdeterministic00/12Z360 hECMWF open data
RAPevaluated, not adoptedNOAAdeterministic13 kmhourly cycles21 h; 51 h at 03/09/15/21ZCloud bucket, byte-ranged GRIB2, two files2026-08-08
ICON globalevaluated, not adoptedDWDdeterministic~13 km00/12Z · hourly to 78 h, then 3-hourly180 h (00/12Z), 120 h (06/18Z)DWD open data, bz2 GRIB2 per field2026-08-08

ECCC Datamart transport — shared facts

Five of the six ECCC forecast models below — HRDPS continental 2.5 km, RDPS, GDPS, REPS, and GEPS — read whole-domain GRIB2 from the main Datamart; HRDPS West 1 km reads the same way from the separate alpha Datamart. The earlier GeoMet WCS transports of HRDPS continental, RDPS, GDPS, and REPS are retired (GEPS was Datamart-only from the start).

FactValue
Hostsdd.weather.gc.ca (primary) · hpfx.collab.science.gc.ca (mirror, identical paths) · dd.alpha.weather.gc.ca (alpha Datamart, the 1 km feed — a third, unmirrored host: its tree is not date-rooted and does not exist on hpfx)
Treehttps://dd.weather.gc.ca/YYYYMMDD/WXO-DD/<model path>/HH/hhh/ — date-rooted; the old undated trees are gone from the root listing
Filenamesdeterministic files use the MSC scheme YYYYMMDDTHHZ_MSC_<MODEL>_<Var>_<Level>_<Grid>_PThhhH.grib2
Fetch unitthe whole-domain file — no .idx sidecars exist, deterministic files are one GRIB message per file, and there is nothing to range against, so NOAA-style byte-ranging is impossible
Retention~30 days on dd.weather.gc.ca, ~51 days on the hpfx.collab.science.gc.ca mirror. The docs claim 30-day retention on both; live root listings show dd’s oldest date 29 days back against hpfx’s 51
Host selectionthe forecast engine selects the host per invocation via METEO_DATAMART_BASE
Rate limitsthe usage policy caps an application at 86,400 requests/day (about 1 request per second, averaged) and documents no HTTP connection ceiling — the 500-connection limit applies to AMQP clients only
Packinggrid_jpeg; ecCodes 2.48.0 decodes it
Verified2026-08-08 — HRDPS and GEPS directory listings for the day were filename-identical across the two hosts, and the builders’ probe URLs answered 200 on hpfx

The mirror is MSC’s documented alternative server and suits backfill and load-spreading: “bandwidth multiplied by 10” during peak demand, but no 24/7 redundancy on its link (“best effort”), so consumers should be able to fall back to dd.

Shared quirks, verified 2026-08-08:

  • Polling etiquette: the usage policy asks for a meaningful User-Agent, no no-cache headers, and no directory-listing polls to detect new data — AMQPS is the sanctioned push channel; wget/curl are “reserved for ad hoc data retrieval”. The builders send a project User-Agent and probe availability with one HEAD of a concrete file per model per tick, never a listing; a worst-case day with every model landing fresh runs each check stays under the daily budget.
  • Per-element reads re-decode the whole field: every codes_get_double_element call re-decodes the entire field internally (~0.21 s per call on HRDPS’s 3.3M points, identical to a full codes_get_values) — samplers decode a message’s values once and index into the array, never extract point by point.
  • Terrain is published at PT000 only for RDPS, GDPS, REPS, and GEPS — builders fetch it from the 000/ directory even when hour 0 is otherwise skipped. HRDPS publishes terrain every hour.
  • HRDPS encodes GRIB forecastTime in minutes where RDPS/GDPS use hours — the builders take valid times from the schedule and never read the raw key.
  • Gusts come in two semantics per step (verified by decode): an instantaneous 10 m gust (paramId 228029, stepType=instant) and an hourly Max/Min pair (paramId 237318, PDT 8). The Max files’ interval metadata is broken (lengthOfTimeRange=0), so the window semantics were established empirically on full fields: Max at PT hh is the maximum model-timestep gust over the hour (hh−1, hh] — Max24 < Max23 at ~46–56 % of points (not a run-length max), Max24 ≥ instant24 at 100.0 % of points, and Max24 > max(instant23, instant24) at 59 % (the max is over internal timesteps, not hourly outputs). The builders publish the hour-max as windGustMps (capabilities gust: "hourMax" — the pilot’s “gusting to”) and re-assert Max ≥ instant at the sampled sites on every build. The instantaneous file runs systematically lower (field means 5.03 vs 6.59 m/s at PT024).
  • CAPE is surface-based only, with in-band sentinels: all four models publish GRIB 0-7-6 CAPE (the 1 km’s CAPE_ETAL_10000 departs eta = 1.0 — the lowest model level, i.e. surface-based); RDPS/GDPS add 0-7-7 CIN; the HRDPS family has no CIN at all. “Not computed” is encoded in the values: 9999 in RDPS/GDPS CAPE and CIN (27–38 % of the grid on the verification day, collocated), −1 in HRDPS-family CAPE (21–33 %). The builders mask sentinels to absence before anything reaches a document — an unmasked GDPS field “means” CAPE 4 152 on a naive average.
  • PBL height is metres above ground: paramId 159 blh, plain metres AGL — night-side minima of ~2 m are only possible AGL — at every populated step. Renderers must add model terrain before plotting it on an MSL altitude axis.
  • Cloud is total-only: no low/mid/high layers and no per-pressure-level cloud fraction exist anywhere on Datamart for these models (every cloud-matching filename in the 00Z listings inventoried 2026-08-08; CloudWater_EAtm is column-integrated kg/m², not a fraction).

HRDPS continental 2.5 km — supported

Environment and Climate Change Canada’s High Resolution Deterministic Prediction System.

FactValue
Grid2.5 km rotated lat-lon (2540 × 1290 at 0.0225°) over nearly all of Canada
Runs00/06/12/18Z, 48 hourly steps
Availabilitythe run streams out in forecast-hour order roughly T+2:55 → T+3:55 (verified from listing mtimes)
Pathmodel_hrdps/continental/2.5km
Variable namesold-style tokens (TMP_ISBL_0850, SHTFL_Sfc, WDIR_AGL-10m)
Levels28 isobaric levels published per field; the build samples the curated 14-level 1015–600 hPa band
Science fieldsGUST/GUST-Max_AGL-10m, CAPE_Sfc (−1 sentinel, no CIN), HPBL_Sfc — hourly including hour 000
Cost~166 MB per forecast step for the curated field set, ~7.8 GiB per run, four runs a day; the science fields add ~0.4 GiB per run
Verified2026-08-08

Quirks:

  • Omega is sparse: VVEL exists at 250/500/700/850/1000 only, so verticalVelocityPaS is published on the three curated levels that carry it (1000/850/700).
  • A true 2 m dew point exists (DPT_AGL-2m), which GeoMet never exposed. Level moisture remains a dew-point depression (DEPR, Td = T − DEPR) and the depression clamps at exactly 30 K — dew points in very dry air saturate at T − 30.
  • WDIR/WIND are earth-relative despite the rotated grid — verified at four points against UGRD/VGRD rotated through the grid transform, agreeing to ≤0.3° where the unrotated component direction was off by up to 32°. Wind is consumed directly with no rotation.
  • Heat fluxes are instantaneous: SHTFL_Sfc/LHTFL_Sfc decode as paramId 231, W/m² — they feed w* with no differencing.
  • Precipitation is a fixed window: APCP-Accum1h_Sfc; mm over one hour is mm/h directly. Hour 000 publishes no precipitation or flux files.

HRDPS West 1 km — supported, experimental

ECCC also runs an experimental 1 km HRDPS over BC and western Alberta. The GRIB decoder handles the grid rotation, so the sampler only ever speaks geographic coordinates; the builder downloads each whole-domain file before sampling the catalogue. The 1 km feed keeps the old GRIB tokens for the science fields, with the shared ECCC semantics above.

FactValue
Gridrotated lat-lon, 1330 × 1180 points, over BC and western Alberta
Runs00Z and 12Z only
Transportwhole-domain GRIB2 on the alpha Datamart — no subsetting
Retentionroughly 24 hours
Science tokensGUST_TGL_10/GUST_MAX_TGL_10, CAPE_ETAL_10000 (eta 1.0: surface-based, −1 sentinel, no CIN), HPBL_SFC_0

Quirks:

  • The feed goes dark occasionally — schedule it as its own job, so a 1 km failure warns without blocking a 2.5 km publish.
  • The 1 km grid earns its terrain: one launch’s measured elevation (site-context’s elevation pick) is 1,476 m; model terrain elevation is 1,311 m at 1 km and 1,072 m at 2.5 km. The 1 km grid reduces the terrain error from 404 m to 165 m, and that 239 m shift propagates into cloud base, boundary-layer top, and which pressure levels lie above model terrain.

RDPS 10 km — supported

The Regional Deterministic Prediction System extends the Meteogram from HRDPS’s two days to three and a half, and the run completes before HRDPS.

FactValue
Grid10 km rotated lat-lon (1140 × 1045 at 0.09°)
Runsfour runs a day, 84 hourly steps
Availabilitycomplete ≈ T+3:05–3:10
Pathmodel_rdps/10km
Variable namesEnglish CamelCase (AirTemp_IsbL-0850, SensibleHeatNetFlux_Sfc, WindDir_AGL-10m)
Levelsthe full 33-level column is published every hour; the build samples the curated 14-level band
Science fieldsWindGust/WindGust-Max_AGL-10m, CAPE_Sfc and CIN_Sfc (9999 sentinel), PlanetaryBoundaryLayerHeight_Sfc — all hourly
Cost~50 MB per step, ~4.1 GiB per run — the lightest of the four Datamart migrations; the science fields add ~0.5 GiB per run
Verified2026-08-08

Quirks:

  • Omega is sparse: VerticalVelocity exists at 250/500/700/850, published on curated 850/700.
  • A true 2 m dew point (DewPoint_AGL-2m) exists at the surface; level moisture is DewPointDepression.
  • Precipitation is a fixed window: Precip-Accum1h_Sfc spans the whole horizon — the run-total differencing the WCS transport needed is gone.
  • Heat fluxes are instantaneous: paramId 231, W/m².
  • WindDir earth-relativeness is inferred from HRDPS’s verified behaviour — same MSC production chain; spot-check against rotated components is cheap if the grid definition ever changes.
  • CIN is ≤ 0 J/kg (min −1 755 on the verification day).

GDPS 15 km — supported

ECCC’s current system description of the Global Deterministic Prediction System (checked 2026-08-08) identifies it as a coupled atmosphere, ocean, and sea-ice forecast whose large-scale temperature and wind are spectrally nudged toward its GEML data-driven weather model. That is a material change in lineage even though the open-data contract remains familiar. A ten-day Meteogram still has published sensible and latent heat fluxes rather than proxy surface heating.

FactValue
Gridregular 0.15° global lat-lon (2400 × 1201 — no rotation anywhere, uvRelativeToGrid=0)
Runs00Z and 12Z, through 240 hours, 3-hourly throughout
Availabilitycomplete ≈ T+5:05
Pathmodel_gdps/15km (model_gdps/10km holds GDPS-Analysis sea-ice NetCDF, not forecast GRIB)
Variable namessame English-name inventory as RDPS
Cost~105 MB per step, ~8.3 GiB per run, twice daily; the science fields add up to ~0.9 GiB per run
Verified2026-08-08

Quirks:

  • The level set thins past hour 168: the 33-level column is 3-hourly to hour 168; past 168, steps on a 6-hour boundary stay complete while the intermediate 3-hourly steps carry a reduced level set — of the curated band only 1000/925/850/700 survive there. This is better than the old GeoMet picture (six of nine levels thinning to 6-hourly); the builder tolerates a level absent at a valid time, so intermediate late-horizon columns ride on the four survivors.
  • Omega is sparse: VerticalVelocity exists at 200/250/500/600/700/850; published on curated 850/700/600.
  • Precipitation is differenced from the run total (Precip-Accum_Sfc): fixed-window accumulations stop at hour 168, so the run total is the one quantity that spans the horizon.
  • Heat fluxes are instantaneous: paramId 231, W/m².
  • CAPE/CIN thin out one regime earlier than the other surface fields: 3-hourly to 168 h, then 6-hourly only (present 003/024/174/240, absent 001/171 — verified 2026-08-08). Gusts and PBL height survive the post-168 thinning at every 3-hourly step, so late-horizon hours can carry a gust with no CAPE.

HRRR 3 km — supported

NOAA’s High-Resolution Rapid Refresh. All the records the Meteogram needs live in one file per hour, ranged by its index — see Forecast architecture.

FactValue
Grid3 km Lambert conformal over the continental United States
Runshourly, with the synoptic runs (00/06/12/18Z) extending to 48 hours
Availabilitypublished to public cloud buckets roughly T+107 minutes after the reference time
Fetch unitall 70 records the Meteogram needs live in a single wrfprs file per hour, and its .idx sidecar lets a client fetch exactly those records by byte range
Verified2026-08-11, re-verified against the live t00z indexes

Quirks:

  • The domain reaches farther north than its famous corner: the oft-quoted 47.8°N northern limit is the eastern corner of the Lambert conformal grid. At −117.7°W the boundary is at 51.24°N — the southern-BC founding sites sit about 215 km inside the domain. Check the corner nearest your longitude before assuming HRRR excludes you.
  • Omega is published at all nine curated levels: VVEL (paramId 135, Pa/s, stepType=instant, no bitmap) at 925–600 hPa including 875, verified at f00/f24/f48 (2026-08-08).
  • Heat fluxes are instantaneous values.
  • Winds are grid-relative. U/V components on the native Lambert projection point along grid axes, not geographic east/north. Skip the rotation and wind directions bias by 10–15° at these latitudes.
  • GUST:surface is instantaneous (paramId 260065, stepType=instant, verified by decode 2026-08-08) — the model’s diagnostic gust at the valid time, not an interval max; NOAA publishes no hour-max gust (the WIND … max fcst record beside it is hourly-max sustained wind, not gust). Declared gust: "instant" in the catalogue: ECCC’s hour-max runs 20–30 % higher systematically, so the two providers’ gusts are not directly comparable.
  • CAPE/CIN come in the full variant menu — surface-based, mixed-layer 90 mb and 180 mb, most-unstable 255 mb, plus 0–3 km CAPE — all J/kg, instantaneous, no sentinels. The forecast engine publishes the surface-based pair, the one variant every capable model shares.
  • PBL height: HPBL:surface is paramId 159 blh, metres AGL.
  • Prognostic wildfire smoke ships in the same files (verified 2026-08-09 in both wrfprs and wrfsfc indexes): MASSDEN at 8 m AGL (kg/m³ → published µg/m³), COLMD column mass (kg/m² → mg/m²), and AOTK column aerosol optical thickness — three extra ranged fetches per hour, published as the profile’s per-hour smoke block. HRRRv4’s only prognostic aerosol is smoke, so AOTK is effectively smoke optical depth. The smoke is radiatively coupled — forecast smoke attenuates the model’s own shortwave, so published fluxes and derived w* are already smoke-aware (Dowell et al. 2022, WAF, §2d; declared smoke: "radiativelyCoupled" in the catalogue and echoed per document). Caveat: 2023-season evaluation (Chace et al. 2026, WAF) found HRRR underpredicts AOD for aged long-range smoke.
  • Layered cloud exists: LCDC/MCDC/HCDC, instantaneous %, on NCEP’s terrain-following sigma layers (fixed-surface types 214/224/234; low σ 1.0–0.642, middle 0.642–0.35, high 0.35–0.15 of surface pressure — NCEP/UPP convention, not encoded in the files, and not fixed altitudes). No per-pressure-level cloud fraction in wrfprs.

GFS 0.25° — supported

NOAA’s Global Forecast System is the long-horizon leg. Since the 2021 upgrades the output is 3-hourly all the way to f384 — the old 12-hourly tail beyond day 10 is gone.

FactValue
Grid0.25° global
Horizonout to 384 hours, 3-hourly throughout
Fetch unitpgrb2.0p25 files with .idx sidecars, fetched by byte range
Verified2026-08-11, re-verified against the live t00z indexes

Quirks:

  • 875 hPa does not exist in the pgrb2.0p25 files, which is why the GFS entry in models.json declares eight levels where the other NOAA deterministic feeds declare nine.

  • Omega is published at all eight curated levels through f384: VVEL (paramId 135, Pa/s, stepType=instant), with the isobaric VVEL record count matching TMP’s at every checked hour — no late-horizon thinning of omega relative to the mass fields (verified 2026-08-08 at f003, f024, f240, and f384).

  • Pressure-level dew point isn’t published — it must be computed from temperature and relative humidity per level.

  • Flux time semantics: SHTFL/LHTFL exist only as averages over a growing window that resets every 6 hours: f001 averages hour 0–1, f002 averages 0–2, … f006 averages 0–6, then f007 starts again. Difference the window-hours to recover the mean flux over any sub-interval:

    mean(h1→h2) = ((h2−h0)·A(h2) − (h1−h0)·A(h1)) / (h2−h1)

    where h0 is the window start and A(h) the published average at hour h. The builder reconstructs each interval before deriving w*.

  • GUST:surface is instantaneous (paramId 260065) at every published step — the same instant-vs-hour-max caveat as HRRR applies against the ECCC models. CAPE/CIN carry the same variant menu as HRRR minus the 0–3 km CAPE; the forecast engine publishes the surface-based pair. HPBL is NCEP local parameter 0-3-196, metres AGL.

  • Layered cloud publishes in two flavours per step: instantaneous (:N hour fcst:) and a 6-h-bucket average (:M-N hour ave:) that resets at synoptic hours. The builder reads the instantaneous records — they match every other field’s valid-time semantics. Only the instant flavour exists at f000.

  • GFS is the only published model with a cloud profile: TCDC at 22 isobaric levels (50–1000 hPa, instantaneous, every step incl. f000), published as cloudFractionPercent on the eight curated levels — unlike omega it is level-complete within GFS, only model-sparse.

NAM 12 km and CONUS nest 3 km — supported, retiring

NOAA’s North American Mesoscale system supplies two catalogue entries. Both retire 2026-10-06 at 12 UTC, the day RRFS and REFS become operational and NAM, HREF, SREF, and HiresW (except Guam) are terminated — SCN 26-48 Updated, originally “on or about” 2026-08-31 and since rescheduled to October 6, with a parallel NOMADS feed expected ~2026-08-11. Both catalogue entries declare the machine-readable sunset (date 2026-10-06, successor rrfs); the RRFS section below records the verified successor.

FactValue
Transportwhole-domain GRIB2 with .idx sidecars on the noaa-nam-pds bucket
Cyclesfour a day (00/06/12/18Z)
12 km parentawphys, AWIPS grid 218 — hourly to 36 h then 3-hourly to 84 h, complete ≈ T+2:40
3 km CONUS nestconusnest.hiresf — hourly to 60 h, complete ≈ T+2:39, on exactly HRRR’s Lambert grid: 1799 × 1059, Latin 38.5°, LoV 262.5°, founding sites ~200–236 km inside
Costnest ~111 MiB per forecast hour (~6.7 GiB per run); parent ~12 MiB per hour (~0.7 GiB per run) — ~61 records per forecast hour each
Verified2026-08-08

Quirks:

  • awphys is the 12 km isobaric product; awip12 is not. Live awip12 carries no isobaric band at all (208 records to awphys’s 454; its only “mb” records are scattered diagnostics), and its one unique contribution is layered cloud — LCDC/MCDC/HCDC, which awphys lacks (TCDC only). The parent build therefore reads awphys plus three byte-ranged cloud records per hour from awip12; the two files share grid 218 exactly and their common fields decode bit-identical.
  • The full 9-level curated band (TMP/RH/HGT/UGRD/VGRD) exists on both products, with omega (VVEL, paramId 135, Pa/s, instantaneous) at all nine levels.
  • Level moisture is RH at all nine levels: the nest publishes level DPT only at 925/850/700 and awphys none, so level dew points are computed from RH. A true 2 m dew point is hourly on both products.
  • GUST:surface is instantaneous (paramId 260065, PDT 0) — NAM publishes no hour-max gust, so the catalogue’s gust: "instant" carries the same not-comparable-to-ECCC caveat as HRRR and GFS.
  • The un-suffixed SHTFL/LHTFL records are genuinely instantaneous (PDT 0) on both products; the nest also carries 3-h-average twins (paramId 235033, PDT 8), cleanly distinguished — and skipped — by the idx ave suffix.
  • Winds are grid-relative on each product’s own Lambert cone: the nest shares HRRR’s projection parameters while the parent uses Latin 25°/LoV 265°, so the rotation to true north is a per-product constant (~12° direction bias at the founding sites if skipped; confirmed empirically against earth-relative GFS components). NCEP packs each UGRD/VGRD pair as two submessages of one GRIB message (idx lines N.1/N.2 at a shared byte offset), so one ranged fetch returns both components.
  • Precipitation is a resetting bucket: the nest’s resets every 3 h, the parent’s every 12 h through its hourly phase, and the parent’s 3-hourly tail (f39–f84) publishes a direct (h−3)–h record. At bucket boundaries two APCP records coexist in a parent file (12-24 beside 21-24 at f24) — records are selected by the exact idx window token, never by variable name alone.
  • Nest fields carry a sparse bitmap (~76–105 of 1.9M points, surfaced by ecCodes as in-band 9999); the samplers publish a masked gridpoint as absence, never a value.
  • Terrain HGT:surface is published every hour on both products — none of the hour-000-only special-casing the ECCC models need.
  • The science set is complete at every hour: surface-based CAPE/CIN (plus mixed-layer/most-unstable variants), HPBL, and the 2 m/10 m surface set are present at every hour including f00 as analysis records.

RRFS 3 km — adoption staged

The Rapid Refresh Forecast System is the verified NAM successor: at cutover the two NAM entries collapse into a single rrfs leg carrying the nest’s 3 km resolution and the parent’s 84 h horizon.

FactValue
Transportthe noaa-rrfs-pds prototype bucket, which already uses the operational naming from SCN 26-48: rrfs.tCCz.prslev.3km.fFFF.conus.grib2 plus a 2dfld companion, both with .idx
Cycleshourly; 00/06/12/18Z run to 84 h, the others to 18 h
Availabilityprototype 12Z f084 landed ≈ T+3:31
Verified2026-08-08

Quirks:

  • One 3 km North-America integration; conus, ak, hi, and pr are distribution cutouts, and the CONUS cutout is exactly the HRRR grid (sites 224–236 km inside). Which cutout a builder fetches is transport detail, which is why the slug is rrfs, not rrfs-conus.
  • Vertical velocity is geometric: prslev carries the full 9-level curated band with TMP/RH/DPT/HGT/UGRD/VGRD — but vertical velocity is DZDT (geometric w, m/s), not omega; VVEL is absent at band levels. The port will convert at build (ω ≈ −ρgw) and declare verticalVelocity: "fromGeometricW" so consumers can see the provenance.
  • 2dfld carries the science set: instantaneous and hour-average SHTFL/LHTFL, instantaneous GUST, surface-based CAPE/CIN plus the variant menu, HPBL, layered cloud, and hourly-bucket APCP.
  • Content may still move: NCEP warns decoders that record content, order, and scaling may change at implementation — everything above is re-verified against the parallel feed (nomads…/com/rrfs/para/, expected ~2026-08-11) or the production paths before the port lands.
  • REFS (five RRFS members plus HRRR-initialized members, to 60 h at 00/06/12/18Z) is a potential future ensemble leg beside REPS and GEPS.

REPS 10 km ensemble — supported

In ECCC’s Regional Ensemble Prediction System, every member is derived as its own atmosphere and the published file carries the percentile spread of the derived quantities — including per-level ensemble soundings. Read the product semantics in Ensemble values.

FactValue
Members21 (a control plus 20 perturbed)
Gridrotated lat-lon at 0.09° (~10 km, 908 × 960 points)
Runsfour a day (00/06/12/18Z), 3-hourly to 72 hours — no hourly output
Availabilitycomplete ≈ T+3:40–3:45
PathDatamart only, under YYYYMMDD/WXO-DD/ensemble/reps/10km/grib2/HH/hhh/ — the legacy /ensemble/reps/ tree is dead (404), and the earlier GeoMet-WCS/Datamart hybrid is retired
Levelsisobaric fields (TMP, RH, HGT, UGRD, VGRD) at a fixed 9-level set: 50/100/200/250/500/700/850/925/1000 hPa
Cost~383 MB per step for the Meteogram field set — ~9.4 GiB per run against the ~1.5 GiB the retired hybrid moved. There is no partial fetch: whole-domain, all-members, no index
Verified2026-08-08

Quirks:

  • Every raw-variable file stacks all 21 members as GRIB messages keyed by perturbationNumber, 0 the control (typeOfEnsembleForecast 1 for the control, 4 for perturbed members). There are no per-member files, and no upstream percentile products for raw variables — the forecast engine computes percentiles from members itself.
  • Per-member wind exists at every level, which WCS never carried. The five levels in the curated band publish as sounding levels (1000/925/850/700/500; 500 doubles as the parcel-search headroom, and 1000 — at mountain sites also 925 — typically sits below REPS model terrain and is dropped per member by the derivation’s own filter).
  • No omega, and no dew point in any form — level and surface moisture come from RH, converted against temperature.
  • No WDIR/WIND at levels: the rotated grid’s UGRD/VGRD are grid-relative (uvRelativeToGrid=1) and are rotated to true east/north before the direction convention is applied; skipping the rotation produced a ~24° error in verification. See Seven forecast-data failures that passed parsing.
  • Heat fluxes (SHTFL_SFC/LHTFL_SFC) are instantaneous W/m², per member. Precipitation is run-total accumulation, differenced at 3 h. Hour 000 publishes no flux or precipitation files.
  • None of the science-field families exists per member — no gust, no CAPE/CIN, no PBL height, and only total cloud (full 00Z/024 listing inventoried, 003 re-checked, 2026-08-08). REPS’s capabilities are false across the board; an ensemble-CAPE-spread product cannot be built from this feed (GEPS, below, supplies it).

GEPS 0.5° ensemble — supported

ECCC’s Global Ensemble Prediction System extends the REPS ensemble product from three days to sixteen and adds the one thing REPS cannot supply: per-member storm-risk spread.

FactValue
Members21 (a control plus 20 perturbed, one all-members file per field exactly as in REPS)
Gridregular 0.5° global lat-lon (720 × 361, uvRelativeToGrid=0 — components are earth-relative and nothing is rotated, unlike REPS)
Runs00Z and 12Z, on the feed’s own schedule of 3-hourly to 192 hours then 6-hourly to 384 — sixteen days, the longest ECCC horizon here. The occasional Thursday 00Z extension to 936 hours is not fetched
Availabilitycomplete ≈ T+5:07
PathYYYYMMDD/WXO-DD/ensemble/geps/grib2/raw/HH/hhh/ — raw members still use the old CMC naming, CMC_geps-raw_<VAR>_<LVL>_<level>_latlon0p5x0p5_YYYYMMDDHH_Phhh_allmbrs.grib2, not the MSC scheme the deterministic models migrated to
Retentionmatches REPS; the legacy /ensemble/geps/ tree is likewise dead
Cost~150 MB per step for the Meteogram field set (36 all-members files) — ~14 GiB per run over 96 steps, twice daily. The heaviest feed the forecast engine carries, which is why the reference operator schedule builds it last
Verified2026-08-08

Quirks:

  • The legacy HGT_SFC orography is in decametres and its GRIB metadata lies about it [verified 2026-08-08]: the field decodes as units=m, paramId=228002 — indistinguishable from REPS’s genuinely metric field — but the values are dam (global max 586.3 = the smoothed Himalaya ×10; Dundee 153.6 → 1 536 m beside GDPS’s 1 525 m). Pressure-level HGT_ISBL files are true metres; only the surface datum is decametric. The builder scales ×10 and guards against both this bug and its inverse; any future consumer of the raw feed must too.
  • Per-member surface-based CAPE_SFC and CIN_SFC exist at every step (97 files per step; the inventory is identical at hours 024, 198, and 384). This is the marquee: the ensemble CAPE/CIN percentile spread that REPS cannot provide, published as conditional percentile blocks. The member spread is real — 167 to 1 311 J/kg CAPE across the 21 members at one site on the verification day.
  • GEPS’s CAPE sentinel is an exact −1 (the HRDPS family’s marker, ~42 % of the globe per member on the verification day) — not RDPS/GDPS’s 9999: real GEPS member CAPE reached 9 755 J/kg that day, so a 9999 mask would erase genuine extreme instability. CIN carries no sentinel at all — it is computed even where CAPE is flagged, and its values nearest −1 are ordinary packing bins, so all 21 members rank.
  • Isobaric fields in the curated band match REPS’s shape: TMP/RH/ HGT and per-member UGRD/VGRD at 1000/925/850/700, with 500 as the parcel-ceiling headroom (nothing exists between 700 and 500). Omega is at 850 only and is not published. No dew point in any form — moisture is RH at the levels and at 2 m — and no WDIR anywhere: direction comes from the earth-relative components, no rotation involved.
  • Heat fluxes are time-integrated from run start (paramId 146, J/m², stepType=accum, stepRange 0–h), unlike REPS’s instantaneous values: the builder publishes the mean W/m² over the window ending at each valid time, (A(h₂)−A(h₁)) / ((h₂−h₁)·3600) per member, with the window following the schedule’s own 3 h then 6 h cadence. Precipitation is the same run-total differencing. Hour 000 publishes neither, so the first window’s baseline is zero by definition; per-member terrain (HGT_SFC) is at PT000 only.
  • No gust, no PBL height, and only total cloud per member — those capabilities are declared false, like REPS’s.
  • Verify every download against Content-Length. One GEPS fetch returned another model’s bytes, correct on retry; the Datamart client now length-checks every download because of it. See Seven forecast-data failures that passed parsing.

RAQDPS 10 km — supported, experimental, smoke documents

ECCC’s Regional Air Quality Deterministic Prediction System (GEM-MACH) feeds no wind profiles — it is the source of the per-site smoke documents, where its verified paths, fields, units, and join semantics live. The catalogue lists it under smokeModels, separate from models so pre-smoke consumers keep parsing.

FactValue
Grid10 km
Runs00Z and 12Z, hourly to 72 h
Transportstandard Datamart transport shared with the models above
Costthree whole-domain files per hour, ~43 MB per run — the lightest fetch of any ECCC feed

GOES-18 DSR and AOD — supported, observations

NOAA’s GOES-18 (GOES-West) supplies the dataset’s measurements. The two products feed no wind profiles — each is the source of a per-site observation dataset (goes18-dsr, goes18-aod), where the products’ decode, quality, and geometry facts live. The catalogue lists them under observationModels, separate from models like smokeModels.

FactValue
Productstwo ABI L2 full-disk products: Downward Shortwave Radiation under ABI-L2-DSRF and Aerosol Optical Depth under ABI-L2-AODF
Transportanonymous NetCDF on the noaa-goes18 bucket
Cadencesix granules per hour for both products (scan Mode 6, starts at :00/:10/…). No runs, no forecast hours: the builder fetches granules newer than the last published instant
LatencyDSRF lands on the bucket ~6–7 minutes after scan end — roughly 16 minutes after scan start; AODF is quicker at ~3.3 minutes after scan end
Granule sizestrack daylight on the disk: DSRF runs 9 MB (night) to 40 MB (full daylight), AODF 0.6–1 MB at night and 32–41 MB in daylight
Verified2026-08-10

Quirks:

  • The DSRF archive changes character in April 2024 (last legacy day 2024-04-16, first new day 2024-04-17, NOAA OSPO message MSG_20240307_1955): the Baseline algorithm’s hourly full-disk DSR on a 0.5° lat/lon grid was replaced by the Enterprise algorithm’s 10-minute product at 2 km on the ABI fixed grid. Much older documentation — including the PUG Volume 5 DSR chapter — describes the legacy product; the operative authorities are the file metadata and the Enterprise SRB ATBD v5.0 (Laszlo, Kim & Liu 2020).
  • AODF switched algorithms on 2024-02-06, when the Enterprise (EPS) aerosol retrieval became operational. The file format did not break the way DSRF’s did, but the retrieval did change — most consequentially the quantitative view-zenith limit, raised from 60° to 78.5°; what that means for a published value lives in the observation document reference. Older documentation describes the Baseline aerosol algorithm.
  • The chunk layout supports byte-ranged ingest [verified 2026-08-10, live]: both products’ value variables are gzip+shuffle uint16 in (24, 5424) chunks — full-row bands — and the reference deployment’s four-site catalogue spanned rows 470–481, exactly two value chunks plus two DQF chunks per granule. Reading only those over HTTP Range costs ~757 KB per AODF granule against 40.6 MB whole-file (54×) and ~849 KB against 39.7 MB for DSRF (47×) — about 230 MB/day for both products at full cadence instead of ~11 GB. The retired Python pipeline read that way (h5py on a seekable ranged reader, regression-tested bit-identical to the whole-file decode); the current builder deliberately downloads each granule whole — one fetch per granule, no fallback machinery — and pays the bytes for the simplicity.

ECMWF IFS open data — evaluated, not adopted

ECMWF’s open-data IFS offers a 15-day horizon (360 h at 00/12Z since cycle 50r1) under CC-BY-4.0. Two missing inputs ruled it out:

  • No surface heat fluxes are published. w* has no direct input. The physics would need a radiation-proxy flux: net solar radiation partitioned by an assumed Bowen ratio. That method produces a less defensible forecast than models that publish surface fluxes and requires a different product label.
  • Only four levels of the curated 1015–600 hPa band exist in the open-data set (925/850/700/600) — and at the founding mountain sites, 925 hPa is below the model terrain. Three usable levels do not define a sounding; interpolation would dominate the boundary-layer and stability estimates.

The 15-day horizon could support a labelled proxy-physics outlook. It cannot support the same profile contract as models that publish surface fluxes and a deeper pressure column.

RAP 13 km — evaluated, not adopted

NOAA’s Rapid Refresh survives the 2026-10-06 retirements (RRFSv1 replaces NAM, HREF, SREF, and HiresW only) and cycles hourly — to 21 h every hour and 51 h at 03/09/15/21Z, complete ≈ T+1:15–1:35 (verified 2026-08-08). Two findings decided against it:

  • The native wrfprs product uses NCEP-local GRIB template 32769 (rotated lat-lon, Arakawa non-E), which ecCodes cannot geolocate. The usable pair is awp130pgrb (grid 130, 13 km Lambert, sites ~1,000 km inside): the full 9-level curated band including omega and level dew point, plus the science set — but no heat fluxes, which live only in the awp130bgrb companion. Two files per hour for the contract.
  • Everything it publishes for this product, HRRR already publishes at 3 km; the only addition would be the 51 h tail on four cycles, and its own lifetime is bounded by RRFSv2 (MPAS engine, 2027–28).

The omission is a decision, not a blind spot: a feed-viable model whose job here is already done by a finer sibling on the same buckets.

ICON global — evaluated, not adopted

DWD’s global ICON (~13 km) is the one candidate that would add a non-North-American physics and data-assimilation lineage to the catalogue — a genuine cross-model disagreement signal, published as open data under CC-BY 4.0. Verified facts (2026-08-08):

  • Open data serves only the native icosahedral grid (R3B07), one bz2-compressed GRIB2 file per field, level, and step — no .idx, no regular-lat-lon global product, ~1-day retention (fetch-fresh only). ICON-EU and ICON-D2 do not cover BC. Sampling is tractable — DWD publishes time-invariant CLAT/CLON, so a cached nearest-cell index per site works — but adoption costs a new transport (bz2, thousands of per-field files, an unstructured-grid sampler), not new physics work.
  • 00/12Z run hourly to 78 h then 3-hourly to 180 h (06/18Z to 120 h); the 00Z 180 h file landed ≈ T+3:29.
  • The pressure-level set holds only 6 of the 9 curated band levels (925/900/850/800/700/600 — no 875/750/650).
  • Fluxes (ASHFL_S/ALHFL_S) are averages since model start — GFS/GEPS-style differencing, plus DWD’s positive-downward sign convention to verify and flip at build. Gust is VMAX_10M (hour-max family); layered cloud (CLCT/CLCL/CLCM/CLCH) exists.
  • No PBL height, no surface-based CAPE, no CIN (only CAPE_ML and CAPE_CON) — under the current contract’s surface-based pair, cape, cin, and pblHeight would all be declared false.

Not adopted for now: the feed poses no blocker, and whether the independent lineage justifies a transport of its own is a judgment the catalogue can revisit.

Licensing and attribution

  • ECCC (HRDPS, RDPS, GDPS, REPS, GEPS): used under the Environment and Climate Change Canada Data Server End-use Licence. Derived profiles carry the attribution requirement.
  • NOAA (HRRR, GFS, NAM, GOES-18 — and RAP/RRFS if adopted): U.S. government open data. Attribution is requested, and use implies no NOAA endorsement of this project.
  • ECMWF open data is CC-BY-4.0 — relevant only if an IFS-based leg is adopted later.
  • DWD open data is CC-BY 4.0 — relevant only if an ICON leg is adopted later.

Provider overviews: HRDPS, RDPS, GDPS, REPS, GEPS, HRRR, GFS, NAM, RRFS, and GOES.