hydroflow
A distributed, physics-based hydrological + hydrodynamic model. hydroflow turns a bare-earth DEM and a rain event into a routed flood hydrograph — Variable Source Area runoff, Green-Ampt infiltration and impervious shedding, feeding grid-based kinematic / diffusive-wave / Muskingum–Cunge channel routing, with optional GPU acceleration and Google Earth Engine forcing.
📖 Documentation
Full docs, guides and API reference → pyhydroflow.readthedocs.io
Learn the science interactively → the hydroflow course
Installation
pip install hydroflow # core (CPU)
pip install "hydroflow[gpu]" # + CuPy/CUDA acceleration
pip install "hydroflow[gee]" # + Google Earth Engine forcing
Quick example
from hydroflow import Config, run_pipeline
cfg = Config(DEM_PATH="dem.tif", OUTPUT_DIR="results/",
OUTPUT_POINT=(27.632, 85.293)) # (lat, lon) of the outlet
cfg.update_output_paths()
run_pipeline(cfg, stages=("process_dem", "routing")) # → results/hydrograph.csv
Or from the command line:
hydroflow init-config -o run.yaml # template config
hydroflow run -c run.yaml # process_dem + routing
What it offers
- DEM → watershed — reproject, pit-fill, D8 flow direction/accumulation and
delineation (
pyshedsorpyflwdir). - Runoff generation —
none · coefficient · raster · scs_cn · vsa_opm; VSA saturation-excess + Green-Ampt + impervious as composable mechanisms. - Flood routing — kinematic, diffusive-wave, or Muskingum–Cunge, with always-on mass-balance checking.
- Satellite forcing — optional IMERG rainfall, SERVES soil deficit, SoilGrids, LULC/LCZ via Google Earth Engine (degrades gracefully offline).
- CPU / GPU — one code path (NumPy or CuPy), automatic CPU fallback.
- Three interfaces — Python API, a
hydroflowCLI, and a QGIS plugin, all driven by oneConfigobject.
Links
- Documentation: https://pyhydroflow.readthedocs.io
- Interactive course: https://sauravbhattarai19.github.io/hydroflow/
- Source & issues: https://github.com/SauravBhattarai19/hydroflow
License
MIT © Saurav Bhattarai. Based on the One-Parameter Model of Pradhan & Ogden (2010).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hydroflow-0.1.0.tar.gz.
File metadata
- Download URL: hydroflow-0.1.0.tar.gz
- Upload date:
- Size: 112.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edeef815fb414a6300cbccdc12407e6ccb8ca123f7e335d7f1c63a59b8bed44a
|
|
| MD5 |
cf1b91e255b3efea7f3690dbbd4023ee
|
|
| BLAKE2b-256 |
5aec1469b48a37068fb91d6ba0d420790ffc0a01c33ccf1f1b19afe7d32f355a
|
File details
Details for the file hydroflow-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hydroflow-0.1.0-py3-none-any.whl
- Upload date:
- Size: 126.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bf2d1a29f502ca211e9cc9223fc4248decb400779b9ddd93b481a6deb91192e
|
|
| MD5 |
e0aaffe39bef3c07760dd317e94ceb33
|
|
| BLAKE2b-256 |
51a9e6b2ffdd8ef40f4d81113eb6b0e6a4f36785c8ad7a42c8967ed3b4aa06dc
|