/Python-Hydrology-Tools

:droplet: This repository holds a list of open source Python packages interesting to Hydrologists

Open Source Python Packages in Hydrology

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.

Hydrological Models

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

Meteorological tools

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.

Time Series (Analysis)

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.

Groundwater

Project Name Description
Flopy The Python interface to MODFLOW.
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.

GIS Related

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

Optimization, Uncertainty, Statistics

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.

Data Collection

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.

Miscellaneous

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).
Ladlab 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.