Need help with Python-Hydrology-Tools?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

183 Stars 51 Forks 64 Commits 1 Opened issues


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

Services available


Need anything else?

Contributors list

# 198,597
58 commits
# 190,912
1 commit

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

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.| | pyet | A python-package for calculating reference and potential evaporation. |

Unsaturated Zone

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

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

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

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.