ecmwf-opendata
A package to download ECMWF open data
What it is and what it does
ecmwf-opendata is a Python client for downloading meteorological forecast data from ECMWF's open data repositories. It wraps the MARS language query interface to let you request specific meteorological fields (like mean sea level pressure, temperature, wind) at chosen forecast steps and pressure levels, then downloads the matching GRIB2 data into a local file. The package supports multiple data sources: ECMWF's direct servers, AWS, Google Cloud, and Azure, with automatic fallback capability when one source is congested.
The client provides three main methods: retrieve() to download selected fields matching your request, download() to fetch entire data files ignoring field filters, and latest() to check the most recent available forecast without downloading. It supports both physics-driven (IFS) and data-driven (AIFS) forecast models at 0.25 degree resolution, with optional request reordering to control output field order or minimize HTTP requests. The package is designed for users downloading subsets of data; downloading full daily datasets (726 GiB) is possible but may be more efficient via direct file access.
Use it for:
- Download specific meteorological fields like temperature or pressure for a region to feed into local analysis or visualization.
- Retrieve ensemble forecast members for probabilistic weather prediction workflows.
- Automate daily forecast data ingestion for operational weather applications or research.
- Query the latest available forecast metadata without downloading full data files.
- Access data-driven AI forecast models (AIFS) alongside traditional physics-based forecasts for comparison.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Downloads ECMWF open meteorological data using a request-based interface with MARS language selectors, supporting multiple cloud sources and data models.
Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive Apache 2.0 license. Install it if you need to programmatically download ECMWF open meteorological data; the request-based interface and multi-cloud support make it the standard tool for this task. Be aware that direct ECMWF access is rate-limited to 500 simultaneous connections, so consider cloud mirrors if you hit congestion.
Install
ecmwf-opendata on PyPI
pip
pip install ecmwf-opendatauv
uv add ecmwf-opendatapoetry
poetry add ecmwf-opendataInstalling ecmwf-opendata
Before you install
Low install friction with a single runtime dependency (multiurl). Active maintenance with recent release 15 days ago and 337 repository stars.
License in practice
Apache License 2.0 permits commercial and private use with permissive terms; you may use, modify, and distribute the software freely provided you include the license notice.
Quickstart
pip install ecmwf-opendata
from ecmwf.opendata import Client
client = Client()
result = client.retrieve(
step=240,
type="fc",
param="msl",
target="data.grib2",
)
print(result.datetime)
Requires network access to ECMWF servers or configured cloud provider (AWS, Google Cloud, Azure); data availability is 7-9 hours after forecast start time.
Verify before relying
- Whether the package handles authentication automatically or requires credentials for cloud sources.
- Performance characteristics when downloading large numbers of fields or whole data files.
- Compatibility with GRIB2 processing libraries beyond download functionality.
Package facts
| License | Apache License Version 2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — multiurl |
| Maintenance | actively maintained — 15 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 240,921/month — #8,892 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ecmwf_opendata-0.3.34-py3-none-any.whl
Keywords: tool
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
ecmwf-api-clientPython client for accessing ECMWF's IFS…
permissive · top 15,000 on PyPI
herbie-dataHerbie downloads numerical weather prediction…
permissive · top 15,000 on PyPI
AEMET-OpenDataPython client for the AEMET OpenData Rest API…
copyleft · top 15,000 on PyPI
AI-WQ-packageSupports participation in the ECMWF AI Weather…
permissive · top 15,000 on PyPI
eccodeslibeccodeslib provides Python bindings to decode…
unclear · top 5,000 on PyPI
ecmwf-datastores-clientPython client for the ECMWF Data Stores Service…
permissive · top 15,000 on PyPI
dwdwfsapiRetrieves weather warnings, bio-weather…
permissive · top 15,000 on PyPI
eccodesReads and writes GRIB and BUFR meteorological…
permissive · top 5,000 on PyPI
earthkit-meteoComputes meteorological quantities (potential…
permissive · top 15,000 on PyPI
earthkit-utilsProvides shared utilities and helper functions…
permissive · top 15,000 on PyPI