skillfed

earthkit-data

A format-agnostic Python interface for geospatial data

earthkit-data v1.1.0 82.1K downloads/30d#14,187 on PyPI117
Permissive license Apache-2.0 Active released

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

earthkit-data provides a unified Python interface to read, transform, and export geospatial data in multiple formats (GRIB, NetCDF, and others) for meteorology and climate applications.

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

pip

pip install earthkit-data

uv

uv add earthkit-data

poetry

poetry add earthkit-data

Installing earthkit-data

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.

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()

Requires Python 3.10+. eccodes and eccodeslib are compiled dependencies that may require system libraries (libeccodes); conda installation recommended for easier binary resolution.

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 — cfgrib, dask, deprecation, earthkit-utils, eccodes, eccodeslib, eckit, entrypoints, filelock, jinja2, jsonschema, lru-dict, markdown, multiurl, netcdf4, pandas, pdbufr, pyyaml, tqdm, xarray
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)

Evidence: earthkit_data-1.1.0-py3-none-any.whl

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

Tags

geospatial data handling pythongrib netcdf readermeteorological data interfaceclimate data format conversionxarray pandas data exportweather data processingformat-agnostic data loader
geospatial-datameteorologyclimate-science

More Scientific/Engineering packages