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. |
| 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. |
| Project Name | Description |
|---|---|
| Pytesmo | python Toolbox for the Evaluation of Soil Moisture Observations. |
| Phydrus | Python implementation of the HYDRUS-1D unsaturated zone model |
| 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. |
| 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. |
| 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. |