cfgrib
Python interface to map GRIB files to the NetCDF Common Data Model following the CF Convention using ecCodes.
Decision gist · record as of 2026-08-14
Yes. cfgrib is actively maintained, has no known vulnerabilities, and solves a specific problem: reading GRIB meteorological files. Install friction is low (pure Python wheel), and the Apache License Version 2.0 is permissive. The main prerequisite—eccodes binary library—is well-documented and available via conda-forge. Suitable for weather data analysis, climate research, and meteorological data pipelines.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- The eccodes binary library must be installed on your system; cfgrib is a Python wrapper around it.
- Run `python -m cfgrib selfcheck` to verify your setup.
- Low friction: pure Python wheel with four runtime dependencies (attrs, click, eccodes, numpy).
License · maintenance · safety
Apache License Version 2.0 (permissive) — Apache License Version 2.0 (permissive): you may use, modify, and distribute cfgrib freely in commercial and private projects, provided you include a copy of the license and do not hold the authors liable.
last release 2025-09-30 (318 days) · last repo commit 2026-07-08 · 459 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 929,155 downloads/mo, #4,706 on PyPI
Alternatives
Verify before relying
pip install cfgrib
import cfgrib
ds = cfgrib.open_dataset('file.grib')
print(ds)- Whether coordinate system and gridType handling limitations affect your specific GRIB files.
- Performance characteristics for larger-than-memory datasets in your deployment environment.
- Completeness of GRIB 1 and 2 support for heterogeneous files beyond the documented Beta status.
- Compatibility with the engine interface for integration with external data tools.
What it is and what it does
cfgrib is a Python interface that translates GRIB meteorological data files into datasets following the NetCDF Common Data Model and CF Conventions. It wraps the ECMWF ecCodes library to decode GRIB 1 and 2 files and expose their contents as labeled, multi-dimensional arrays with coordinates and attributes. The package reads data lazily and efficiently, supporting both memory-constrained and larger-than-memory workflows through integration with dask. It also provides low-level access to arbitrary GRIB keys via backend options, coordinate translation to custom data models, and a command-line utility for converting GRIB to NetCDF.
Development status is Beta for reading; writing support is Alpha/Broken. The main constraint is that eccodes (a compiled C library) must be installed separately on your system. The package depends on attrs, click, eccodes, and numpy.
Use it for
- Decode ERA5 or other GRIB-formatted weather reanalysis data for climate analysis.
- Merge multiple GRIB files into a single dataset for batch processing.
- Process larger-than-memory meteorological datasets with distributed computation.
- Convert GRIB files to NetCDF format via the command-line utility.
- Read custom GRIB keys and translate coordinates to domain-specific naming conventions.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
cfgrib is actively maintained, has no known vulnerabilities, and solves a specific problem: reading GRIB meteorological files. Install friction is low (pure Python wheel), and the Apache License Version 2.0 is permissive. The main prerequisite—eccodes binary library—is well-documented and available via conda-forge. Suitable for weather data analysis, climate research, and meteorological data pipelines.
Install
cfgrib on PyPI
Before you install
Low friction: pure Python wheel with four runtime dependencies (attrs, click, eccodes, numpy). Actively maintained with recent commits and no known vulnerabilities. Requires eccodes binary library installed separately; the package provides a selfcheck command to verify system setup.
The eccodes binary library must be installed on your system; cfgrib is a Python wrapper around it. Run `python -m cfgrib selfcheck` to verify your setup.
License in practice
Apache License Version 2.0 (permissive): you may use, modify, and distribute cfgrib freely in commercial and private projects, provided you include a copy of the license and do not hold the authors liable.
Quickstart
pip install cfgrib
import cfgrib
ds = cfgrib.open_dataset('file.grib')
print(ds)
Verify before relying
- Whether coordinate system and gridType handling limitations affect your specific GRIB files.
- Performance characteristics for larger-than-memory datasets in your deployment environment.
- Completeness of GRIB 1 and 2 support for heterogeneous files beyond the documented Beta status.
- Compatibility with the engine interface for integration with external data tools.
Package facts
| License | Apache License Version 2.0 permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesattrsclickeccodesnumpy |
| Maintenance | Actively maintained 318 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 929,155 / month, #4,706 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: cfgrib-0.9.15.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “grib to netcdf conversion”
- cfgribcfgrib maps GRIB meteorological data files to the NetCDF Common Data…
- earthkit-dataearthkit-data provides a unified Python interface to read, transform,…
- kerchunkKerchunk extracts metadata from chunked, compressed data formats…
Give your agent the search over MCP, or paste the wish link into any chat.
More Information Analysis packages
A drop-in replacement for Python's standard `re` module that adds advanced regex features like nested sets, fuzzy matching, lookaround in conditionals, and full Unicode case-folding while maintaining backward compatibility.
pyarrow provides Python bindings to Apache Arrow's C++ libraries for efficient columnar data processing, serialization, and interoperability with pandas, NumPy, and other Python ecosystem tools.
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Snowpark Python provides APIs to query and process data directly in Snowflake without moving data to your local system, with support for both native Snowpark and pandas-compatible interfaces.
Install it if you use Snowflake and want to process data without moving it to your application layer.
See also eccodes · eccodeslib · pdbufr · pygrib · earthkit-data · netCDF4 · liac-arff · herbie-data · cf-xarray · h5netcdf