ECMWF (ECMWF)

Upstream: ECMWF open data (IFS, AIFS deterministic and ensemble) via the ecmwf-opendata Python client. Coldcast uses the 00 UTC cycle only after applying delay and reference time (see README / model settings).

Transport: coldcast.sources.ecmwf_nwp.download() uses ecmwf.opendata.Client with threading; not the generic HTTP downloader.

Auth: Follow ECMWF’s current open-data policy; defaults typically use public endpoints.

CLI: coldcast download ecmwf (aliases: ecmwf_nwp, ECMWF_NWP) with --model selecting the product (e.g. IFS_DET, ERA5, ERA5_LAND).

Settings: YAML block ECMWF with default_model and one nested mapping per product. Open-data forecasts (IFS, AIFS, …) use keys such as ecmwf_model, stream, ensemble options, lead_time, delay, parameters. CDS reanalysis products ERA5 and ERA5_LAND use the fields documented under ERA5 (ERA5) and ERA5-Land (ERA5_LAND). A legacy top-level key ECMWF_NWP with the same structure is still accepted. Optional clip_to_bbox / clip_bbox on forecast products are reserved / documentation-only until integrated with GRIB post-processing—they are not passed through to ecmwf.opendata downloads today.

Shared clip presets: Bundled YAML uses anchors so multiple models can reuse the same clip_bbox mapping without repeating it verbatim.

Code: coldcast.sources.ecmwf_nwp