earthkit-data
A format-agnostic Python interface for geospatial data
Decision gist · record as of 2026-08-14
Yes. earthkit-data is actively maintained, production-stable, has no known vulnerabilities, and solves a real problem for meteorology and climate workflows. The Apache-2.0 license is permissive. Install friction is low, though the 20 runtime dependencies (especially eccodes) may require time to resolve; conda installation is recommended. Worth installing if you work with GRIB, NetCDF, or other geospatial formats in scientific Python.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10+.
- eccodes and eccodeslib are compiled dependencies that may require system libraries (libeccodes); conda installation recommended for easier binary resolution.
- Low friction install with a pure-wheel distribution.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you must retain copyright and license notices in distributions.
last release 2026-07-20 (25 days) · last repo commit 2026-08-14 · 117 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 82,061 downloads/mo, #14,187 on PyPI
Alternatives
Verify before relying
pip install earthkit-data
import earthkit.data as ekd
data = ekd.from_source("sample", "test.grib")
arr = data.to_numpy()
df = data.to_pandas()
dataset = data.to_xarray()- Whether optional dependencies beyond the 20 listed runtime deps are needed for specific data formats or sources.
- Performance characteristics when handling large multi-file datasets or streaming scenarios.
- Compatibility matrix with specific GRIB/NetCDF versions or ECMWF data services.
What it is and what it does
earthkit-data is a Python library that abstracts away format differences in geospatial data, letting you load meteorological and climate datasets from multiple sources and export them to common scientific formats. It sits at the data-handling layer of the broader earthkit ecosystem, providing a consistent API whether you're reading GRIB files (via cfgrib and eccodes), NetCDF (via netcdf4), or other geospatial formats. The library is marked as Graduated under ECMWF's maturity guidelines, indicating production-ready status.
The package is designed for scientists and developers working with weather and climate data. It handles the complexity of format conversion and data access, letting you work with xarray Datasets, pandas DataFrames, or NumPy arrays depending on your workflow. With 20 runtime dependencies—including dask for lazy evaluation, xarray for labeled arrays, and ECMWF's own eccodes for GRIB handling—it brings together the scientific Python ecosystem's best tools for geospatial work.
Use it for
- Load GRIB or NetCDF meteorological data from ECMWF sources and convert to xarray Datasets for analysis.
- Batch process multiple climate model outputs in different formats into a unified pandas DataFrame.
- Export geospatial data between formats (GRIB to NetCDF, or to NumPy) for downstream modeling or visualization.
- Access remote weather data through earthkit-data's source abstraction without writing format-specific parsers.
- Integrate geospatial data pipelines into dask-based workflows for out-of-core processing.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
earthkit-data is actively maintained, production-stable, has no known vulnerabilities, and solves a real problem for meteorology and climate workflows. The Apache-2.0 license is permissive. Install friction is low, though the 20 runtime dependencies (especially eccodes) may require time to resolve; conda installation is recommended. Worth installing if you work with GRIB, NetCDF, or other geospatial formats in scientific Python.
Install
earthkit-data on PyPI
Before you install
Low friction install with a pure-wheel distribution. Active maintenance with a recent release (25 days old) and steady repository activity. Requires Python 3.10 or later and has 20 runtime dependencies including heavy scientific stacks (xarray, netcdf4, dask, eccodes), which may take time to resolve but are well-established packages.
Requires Python 3.10+. eccodes and eccodeslib are compiled dependencies that may require system libraries (libeccodes); conda installation recommended for easier binary resolution.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you must retain copyright and license notices in distributions.
Quickstart
pip install earthkit-data
import earthkit.data as ekd
data = ekd.from_source("sample", "test.grib")
arr = data.to_numpy()
df = data.to_pandas()
dataset = data.to_xarray()
Verify before relying
- Whether optional dependencies beyond the 20 listed runtime deps are needed for specific data formats or sources.
- Performance characteristics when handling large multi-file datasets or streaming scenarios.
- Compatibility matrix with specific GRIB/NetCDF versions or ECMWF data services.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 20 packagescfgribdaskdeprecationearthkit-utilseccodeseccodeslibeckitentrypointsfilelockjinja2jsonschemalru-dictmarkdownmultiurlnetcdf4pandaspdbufrpyyamltqdmxarray |
| Maintenance | Actively maintained 25 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 82,061 / month, #14,187 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: earthkit_data-1.1.0-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 › “climate data format conversion”
- earthkit-dataearthkit-data provides a unified Python interface to read, transform,…
- cf-unitscf-units provides units of measure as defined by the Climate and…
- cftimeConverts between calendar dates and numeric time values for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also earthkit-utils · earthkit-meteo · cfgrib · pygrib · eccodeslib · cdsapi · kerchunk · ecmwf-datastores-client · MetPy · copernicusmarine