My attempt to list interesting open source python projects that can be used in the field of Hydrology. Suggestions as issues or pull requests are welcome!
UPDATE: The Pypa package authority has now added "Hydrology" as a classifier so we can start collecting python packages used by the hydrological community! If you are maintaining a python package, please add Topic :: Scientific/Engineering :: Hydrology
to your setup.py so people can find your package.
R.A. Collenteur, University of Graz.
Project Name | Description |
---|---|
CMF | Catchment Modelling Framework, a hydrologic modelling toolbox. |
TopoFlow | Spatial hydrologic model (D8-based, fully BMI-compliant). |
VIC | The Variable Infiltration Capacity (VIC) Macroscale Hydrologic Model. |
Xanthos | Xanthos is an open-source hydrologic model, written in Python, designed to quantify and analyze global water availability. |
WRF-Hydro | wrfhydrpy is a Python API for the WRF-Hydro modelling system. |
EXP-HYDRO | EXP-HYDRO is a catchment scale hydrological model that operates at a daily time-step. It takes as inputs the daily values of precipitation, air temperature, and potential evapotranspiration, and simulates daily streamflow at the catchment outlet. |
RRMPG | Rainfall-Runoff modelling playground. |
LHMP | Lumped Hydrological Models Playground. |
SMARTPy | Python implementation of the rainfall-runoff model SMART |
PyStream | Python implementation of the STREAM hydrological rainfall-runoff model. |
HydrPy | A framework for the development and application of hydrological models based on Python. |
Catchmod | CATCHMOD is widely used rainfall runoff model in the United Kingdom. It was introduced by Wilby (1994). |
wflow | wflow consists of a set of Python programs that can be run on the command line and perform hydrological simulations. The models are based on the PCRaster Python framework |
PyTOPKAPI | PyTOPKAPI is a BSD licensed Python library implementing the TOPKAPI Hydrological model (Liu and Todini, 2002). |
mhmpy | A Python-API for the mesoscale Hydrological Model. |
SuperflexPy | SuperflexPy: A new open source framework for building conceptual hydrological models |
NeuralHydrology | Python library to train neural networks with a strong focus on hydrological applications. |
DRYP | Dryland Water Partition model. |
LuKars | The LuKARS model is a lumped karst hydrological model to perform studies in karstic environments. |
SUMMA | A hydrologic modeling framework that can be used for the systematic analysis of alternative model conceptualizations with respect to flux parameterizations, spatial configurations, and numerical solution techniques |
Project Name | Description |
---|---|
MetPy | MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data. |
PyEto | PyETo is a Python library for calculating reference crop evapotranspiration (ETo), sometimes referred to as potential evapotranspiration (PET). The library provides numerous functions for estimating missing meteorological data. |
Improver | IMPROVER is a library of algorithms for meteorological post-processing and verification. |
MetSim | MetSim is a meteorological simulator and forcing disaggregator for hydrologic modeling and climate applications. |
MELODIST | MELODIST is an open-source toolbox written in Python for disaggregating daily meteorological time series to hourly time steps. |
PyCat | Climate Analysis Tool written in python |
PySteps | pySTEPS is a community-driven initiative for developing and maintaining an easy to use, modular, free and open source Python framework for short-term ensemble prediction systems. |
Evaporation | Calculation of evaporation and transpiration. |
rainymotion | Python library for radar-based precipitation nowcasting based on optical flow techniques. |
pyet | A python-package for calculating reference and potential evaporation. |
SPEI | A simple Python package to calculate and visualize some popular drought indices such as the SPI, SPEI and SGI. |
Project Name | Description |
---|---|
Pytesmo | python Toolbox for the Evaluation of Soil Moisture Observations. |
Phydrus | Python implementation of the HYDRUS-1D unsaturated zone model |
VS2DPY | Python implementation of the VS2D unsaturated zone model. |
pedon | Python package for (unsaturated) soil properties including pedotransfer functions. |
Project Name | Description |
---|---|
FloPy | The Python interface to MODFLOW. |
imod-python | Make massive MODFLOW models. |
Idfpy | A simple module for reading and writing iMOD IDF files. IDF is a simple binary format used by the iMOD groundwater modelling software. |
WellApplication | Set of tools for groundwater level and water chemistry analysis. |
TIMML | A Multi-Layer, Analytic Element Model. |
TTim | A Multi-Layer, Transient, Analytic Element Model. |
PyHELP | A Python library for the assessment of spatially distributed groundwater recharge and hydrological components with HELP. |
PyRecharge | Spatially distributed groundwater recharge and depletion modeling framework in Python |
Anaflow | A python-package containing analytical solutions for the groundwater flow equation |
WellTestPy | A python-package for handling well based field campaigns. |
HydroGeoSines | Signal In the Noise Exploration Software for Hydrogeological Datasets. |
nlmod | Python code to process, build and visualize MODFLOW models in the Netherlands. Model data is stored in a xarray Datasets and geopandas GeoDataFrames. |
Project Name | Description |
---|---|
Hydropy | Analysis of hydrological oriented time series. |
Pastas | Analysis of hydrological time series using time series models. |
Hydrostats | Tools for use in comparison studies, specifically for use in the field of hydrology. |
htimeseries | This module provides the HTimeseries class, which is a layer on top of pandas, offering a little more functionality. |
HydroAnalysis | Python package to calculate indices and metrics useful in the everyday job of a hydrologist. |
HydroPandas | Module for loading time series data into custom DataFrames |
traval | Tools for applying automatic error detection schemes to timeseries |
Project Name | Description |
---|---|
PcRaster | Is a collection of software targeted at the development and deployment of spatio-temporal environmental models. |
PyGeoprocessing | a Python/Cython based library that provides a set of commonly used raster, vector, and hydrological operations for GIS processing. |
Pysheds | Simple and fast watershed delineation in python. |
Lidar | Terrain and hydrological analysis based on LiDAR-derived digital elevation models (DEM). |
Project Name | Description |
---|---|
LMFIT | Non-Linear Least Squares Minimization, with flexible Parameter settings, based on scipy.optimize.leastsq, and with many additional classes and methods for curve fitting. |
SPOTpy | A Statistical Parameter Optimization Tool for Python. |
PyGLUE | Generalised Likelihood Uncertainty Estimation (GLUE) Framework. |
Pyemu | python modules for model-independent uncertainty analyses, data-worth analyses, and interfacing with PEST(++). |
HPGL | High Performance Geostatistics Library. |
HydroErr | Goodness of Fit metrics for use in comparison studies, specifically in the field of hydrology. |
Climate-indices | Climate indices for drought monitoring, community reference implementations in Python. |
HydroLM | The HydroLM package contains a class and functions for automating linear regressions OLS for hydrologists. |
PySDI | pysdi is a set of open source scripts that compute non-parametric standardized drought indices (SDI) using raster data sets as input data. |
xskillscore | Metrics for verifying forecasts. |
Project Name | Description |
---|---|
HKVFEWSPY | Connection to the Delft FEWS servers |
Openradar | Library for processing a set of dutch, german and belgian precipitation radars into calibrated composites. |
Ecohydrolib | Libraries and command-line scripts for performing ecohydrology data preparation workflows. |
Ulmo | clean, simple and fast access to public hydrology and climatology data. |
PyHIS | PyHIS is a python library for querying CUAHSI*-HIS** web services |
Wetterdienst | Python Toolset For Accessing Weather Data From German Weather Service |
Dataretrieval | dataretrieval is a Python package for obtaining USGS or EPA water quality data, streamflow data, and metadata directly from web services. |
Project Name | Description |
---|---|
ESMPY | Earth System Modeling Framework (ESMF) Python interface |
PyHSPF | Python extensions to the Hydrological Simulation Program in Fortran (HSPF). |
PYWR | spatial allocation tool |
SPHY | Spatial Processes in HYdrology (SPHY) model |
xsboringen | (In Dutch) A python library for processing and plotting borehole and CPT data, developed for open data formats in the Netherlands. |
PyMT | PyMT is an Open Source Python package that provides the necessary tools used for the coupling of models that expose the Basic Model Interface (BMI). |
Landlab | The Landlab project creates an environment in which scientists can build a numerical landscape model without having to code all of the individual components. |
EFlowCalc | Calculator of Streamflow Characteristics. |
IRIS | A powerful, format-agnostic, and community-driven Python library for analysing and visualising Earth science data. |
Hydrointerp | A Python package for interpolating hydrologic data. |
EFlowCalc | EFlowCalc is an open-source calculator of ecological streamflow characteristics in Python. |
Hydrofunctions | A suite of convenience functions for working with hydrology data in an interactive Python session. |
Shyft | Shyft is the open-source toolbox for the energy-market domain, funded and supported by Statkraft. |
Hydroshare | HydroShare is a collaborative website for better access to data and models in the hydrologic sciences. |
Hydrobox | hydrological preprocessing and analysis toolbox build upon pandas and numpy |
Wetland | wetland is a toolset for mapping surface water and wetland hydrological dynamics using fine-resolution aerial imagery within Google Earth Engine (GEE). |
iRONS | iRONS (interactive Reservoir Operation Notebooks and Software) is a python package that enables the simulation, forecasting and optimisation of reservoir systems. |
Mesas | Multiresolution Estimation of StorAge Selection functions. |
pydsstools | Python library for simple HEC-DSS functions. |
eWaterCycle | Platform to do computational hydrology using many of the above mentioned models |