[!IMPORTANT] This software is Graduated and subject to ECMWF's guidelines on Software Maturity.
earthkit-hydro is a Python library for common hydrological functions. It is the hydrological component of earthkit.
Main Features
- Catchment delineation
- Catchment-based statistics
- Directional flow-based accumulations
- River network distance calculations
- Upstream/downstream field propagation
- Bifurcation handling
- Custom weighting and decay support
- Support for PCRaster, CaMa-Flood, HydroSHEDS, MERIT-Hydro and GRIT river network formats
- Compatible with major array-backends: xarray, numpy, cupy, torch, jax, mlx and tensorflow
- GPU support
- Differentiable operations suitable for machine learning
Installation
For a default installation, run
pip install earthkit-hydro
Developer instructions:
For a developer setup (includes linting and test libraries), run
conda create -n hydro python=3.12
conda activate hydro
conda install -c conda-forge rust
git clone https://github.com/ecmwf/earthkit-hydro.git
cd earthkit-hydro
pip install -e .[dev]
pre-commit install
Note: this project is a mixed Rust-Python project with a pure Python fallback. To handle this, the behaviour of the install is based on an environmental variable USE_RUST, with the following behaviour
Not set or any other value (default behaviour): Attempts to build with Rust and if failure, skips and falls back to pure Python implementation.USE_RUST=0: Builds pure Python implementation.USE_RUST=1: Builds with Rust and fails if something goes wrong.
Licence
SPDX-FileCopyrightText: 2026- European Centre for Medium-Range Weather Forecasts (ECMWF)
SPDX-License-Identifier: Apache-2.0
See LICENSE for the full licence text, including ECMWF's intergovernmental notice.
Citing
If you use earthkit-hydro in your work, please consider citing
Morrison, O. M. and Carton de Wiart, C.: Introducing earthkit-hydro: an efficient graph-based library for scalable hydrological modelling and analysis, EGU General Assembly 2026, Vienna, Austria, 3–8 May 2026, EGU26-11233, https://doi.org/10.5194/egusphere-egu26-11233, 2026.
@inproceedings{Morrison2026,
author = {Morrison, Ois{\'\i}n M. and Carton de Wiart, Corentin},
title = {Introducing earthkit-hydro: an efficient graph-based library for scalable hydrological modelling and analysis},
booktitle = {EGU General Assembly 2026},
year = {2026},
series = {EGU General Assembly Conference Abstracts},
volume = {EGU26-11233},
address = {Vienna, Austria},
month = may,
doi = {10.5194/egusphere-egu26-11233},
url = {https://doi.org/10.5194/egusphere-egu26-11233}
}
Metadata
Release files for earthkit-hydro 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| earthkit_hydro-1.4.0.tar.gz | 4.2 MB | Details |
Built distributions (wheels)
Total release size: 12.5 MB
Release files / earthkit_hydro-1.4.0.tar.gz
| Download URL | earthkit_hydro-1.4.0.tar.gz |
|---|---|
| Size | 4.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
533677c1a61432882c9c509de4a277738879568f79c0be4b775e49acd93f8507
|
|
BLAKE2b-256 checksum How to use checksums |
3bc460313e3f7f69a9f534cf115ecf6bf1cebd71292e35f0827ceadd01cdea0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-py3-none-any.whl
| Download URL | earthkit_hydro-1.4.0-py3-none-any.whl |
|---|---|
| Size | 94.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d8be01b2dedd1a8e62c30de6d6527e0f93118bbb7e8814f4f6e135e3d271d78d
|
|
BLAKE2b-256 checksum How to use checksums |
5fb57e8c2e5d95aa0e388cb4a2efec8a8bcf2c71d7dc3203d01e004e7aafaf5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp314-cp314-win_amd64.whl
| Download URL | earthkit_hydro-1.4.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 345.6 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
49ba6e8bd0dfc8d60a0a84c057ce1903ed405448c365f3227a20f3dbf2e3a973
|
|
BLAKE2b-256 checksum How to use checksums |
dfa20d8f2f678a4986bcfdb3dd154f6365414e0429a0af793655de75e3e887ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp314-cp314-win32.whl
| Download URL | earthkit_hydro-1.4.0-cp314-cp314-win32.whl |
|---|---|
| Size | 335.5 kB |
| Tags | CPython 3.14 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
4f0422595875cfd0ae016324bd07606b8167202275d59c6d1fa4032ffd70bb98
|
|
BLAKE2b-256 checksum How to use checksums |
4ff31d4dbe74d49bdf0e286542c3a40f0770e7b69d5b70847f8f34b106b6e825
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | earthkit_hydro-1.4.0-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 511.1 kB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
da1cdc6b702567896a1fcff3b0a9453c8c9f3253e8fa6ca8ec10fca54e8ee233
|
|
BLAKE2b-256 checksum How to use checksums |
660a58ddeb3e0ca47c4261c30b8e25e7561e8a57f5b26c1c15c4d90e479560c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | earthkit_hydro-1.4.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 455.9 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cdfb01de0021af7d606a82ec56d46e56831c7abd9f5b910fa2e9076ca3b5a89c
|
|
BLAKE2b-256 checksum How to use checksums |
e4dd15dc4f97639d2348b332f97f6f354bee09e4bb5c1575e19458e57d083d24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp313-cp313-win_amd64.whl
| Download URL | earthkit_hydro-1.4.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 335.6 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
82a3b4f7c736c16e230d19c062d309b4b76c5d213724222d0acafdf6007847ba
|
|
BLAKE2b-256 checksum How to use checksums |
b04cc267233da250ec0e61d4cfc3bbeb429d090e98a837eb14d53d3a8eb2595d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp313-cp313-win32.whl
| Download URL | earthkit_hydro-1.4.0-cp313-cp313-win32.whl |
|---|---|
| Size | 329.6 kB |
| Tags | CPython 3.13 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
d3ae1e9093a202f1297abe4d028a5dd1ba78d41b6d2435da4af97565551688ba
|
|
BLAKE2b-256 checksum How to use checksums |
2f2ad170a4a4849fa672bce8a48015cb84fd1a6cfd1cd1c92bec22942bfc38a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | earthkit_hydro-1.4.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 509.9 kB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0c205276a719c1262ecf22a50c60e94e81e3f7257223cd3133b2b288a715d115
|
|
BLAKE2b-256 checksum How to use checksums |
45d7e6767ed0a7db11e829fa5a3ea25804a895b767328a43ec1678962649460f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | earthkit_hydro-1.4.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 454.9 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5f9b917bcc4f7077db6aa0bb7e30f1cee76fdd39f507e2a84a10404a89df26c3
|
|
BLAKE2b-256 checksum How to use checksums |
41ddcb087ec7a59c7a1683c8a9f575577ee08599ba277f67fae4bcb05861c894
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp312-cp312-win_amd64.whl
| Download URL | earthkit_hydro-1.4.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 336.1 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a0b09e67ecbee479d87857f9f9b8568eefb05b49c1119da9ab9828cd2009cd0e
|
|
BLAKE2b-256 checksum How to use checksums |
4c8dda397c032d3df701bfeccaa93b1eafe0493658dd29fb8d0473e3434cc2d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp312-cp312-win32.whl
| Download URL | earthkit_hydro-1.4.0-cp312-cp312-win32.whl |
|---|---|
| Size | 329.7 kB |
| Tags | CPython 3.12 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
4269889aa271ab14b77a67372ddcb63cde5519a8a1d992243a6449ce853ad8f5
|
|
BLAKE2b-256 checksum How to use checksums |
d32179638db8884f19418e326abc2e0bdc0b7e598c27616e829c98eae13389dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | earthkit_hydro-1.4.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 509.9 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9f97e083dd2eedc0898483736ed962e1158209a6656df1273528564ca3f2d1ff
|
|
BLAKE2b-256 checksum How to use checksums |
1ba329cd1dc29e73c46fef0a4f1456487d233dbbbe4c200aaa021a29d46338f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | earthkit_hydro-1.4.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 455.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5c99c43f5a5119833ecb1ece0331e7b62d2182be43e7532fe735bf21e20cf32f
|
|
BLAKE2b-256 checksum How to use checksums |
79a60fccfceea968b3745f08984e375776d2a2186774626ac5a02c4296ef97a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp311-cp311-win_amd64.whl
| Download URL | earthkit_hydro-1.4.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 339.6 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e98985effce1ab607939c32e81f44576daff2622d2769c8391be6cac330a2e43
|
|
BLAKE2b-256 checksum How to use checksums |
d5e8792e1f5d1cc31619d6bfc2bc647a8d3ff7ff5c3e20ddc22d5c5658dbd410
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp311-cp311-win32.whl
| Download URL | earthkit_hydro-1.4.0-cp311-cp311-win32.whl |
|---|---|
| Size | 333.0 kB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
d49c9a6707980fc85ae2b1fc7907fa79214d70131160fa0e50ec24e711acac9a
|
|
BLAKE2b-256 checksum How to use checksums |
d21a5eec73873aeb04631ca79c7cb20d0cea61b1b41f037b7021461ed5173f9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | earthkit_hydro-1.4.0-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 514.2 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0021b8d4aeee210c145416a6a107483a42e5305103c3a1ba35ae7fb3af40d2e9
|
|
BLAKE2b-256 checksum How to use checksums |
0584c405081af36bb0dd1526f023a940d79dec8d8218c68c33a88f1cfd3bbc68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | earthkit_hydro-1.4.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 459.2 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
81f69c11e97923e303cb810c3457c6931508aaefa3beeaeb6ab905a729df3f99
|
|
BLAKE2b-256 checksum How to use checksums |
c7129a2324d8202a400a02db0e647e02921fcce9a0e64a2495b9b53e1ff6f26a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp310-cp310-win_amd64.whl
| Download URL | earthkit_hydro-1.4.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 339.7 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8d20908574d4553ff2b980e5dd05e165f4e997b50451faf9919cd86702434247
|
|
BLAKE2b-256 checksum How to use checksums |
5944718c94ce5bcb3bdb541411b21088972bca0c5f374e5f8cdc0df82c7698b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp310-cp310-win32.whl
| Download URL | earthkit_hydro-1.4.0-cp310-cp310-win32.whl |
|---|---|
| Size | 333.1 kB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
c2398b88e7b4608cbaf6683155b1d3a2fbcd1beb0c9701651cf25f8093079f1a
|
|
BLAKE2b-256 checksum How to use checksums |
bda2db6b68792bbd645b63c8a80b57d810d9010d619aee53a51020cc23bae73e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | earthkit_hydro-1.4.0-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 514.6 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ec45f0b022213044899ca294387d717cb9d08f755f0d55145f0f3b0582d34a48
|
|
BLAKE2b-256 checksum How to use checksums |
c90bb026221ae774303088c41e18d889f0da64f2ff2861bab8f410c59c5376ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / earthkit_hydro-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | earthkit_hydro-1.4.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 459.5 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1efd88833581126a213d283134213de0aef51f1e88aa43056841b752802a5ab6
|
|
BLAKE2b-256 checksum How to use checksums |
93a184d06bbbd6a76c9e22ea2088c37180efae2fdfe5baa2e1d2cb000e434c3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|