# Python-Hydrology-Tools **Repository Path**: wei-mao/Python-Hydrology-Tools ## Basic Information - **Project Name**: Python-Hydrology-Tools - **Description**: :droplet: This repository holds a list of open source Python packages interesting to Hydrologists - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-08-26 - **Last Updated**: 2023-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 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](https://github.com/pypa/warehouse/issues/5728) so we can start [collecting python packages](https://pypi.org/search/?q=&o=&c=Topic+%3A%3A+Scientific%2FEngineering+%3A%3A+Hydrology) 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](https://github.com/philippkraft/cmf) | Catchment Modelling Framework, a hydrologic modelling toolbox. | | [TopoFlow](https://github.com/peckhams/topoflow) | Spatial hydrologic model (D8-based, fully BMI-compliant). | | [VIC](https://github.com/UW-Hydro/VIC) | The Variable Infiltration Capacity (VIC) Macroscale Hydrologic Model. | | [Xanthos](https://github.com/JGCRI/xanthos)| Xanthos is an open-source hydrologic model, written in Python, designed to quantify and analyze global water availability.| | [WRF-Hydro](https://github.com/NCAR/wrf_hydro_py)| wrfhydrpy is a Python API for the WRF-Hydro modelling system. | | [EXP-HYDRO](https://github.com/sopanpatil/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](https://github.com/kratzert/RRMPG) | Rainfall-Runoff modelling playground. | | [LHMP](https://github.com/hydrogo/LHMP) | Lumped Hydrological Models Playground. | | [SMARTPy](https://github.com/ThibHlln/smartpy) | Python implementation of the rainfall-runoff model SMART | | [PyStream](https://github.com/martibosch/pystream) | Python implementation of the STREAM hydrological rainfall-runoff model. | | [HydrPy](https://github.com/hydpy-dev/hydpy) | A framework for the development and application of hydrological models based on Python. | | [Catchmod](https://pypi.org/project/pycatchmod/) | CATCHMOD is widely used rainfall runoff model in the United Kingdom. It was introduced by Wilby (1994).| | [wflow](https://github.com/openstreams/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](https://github.com/Unidata/MetPy) | MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data. | | [PyEto](https://github.com/woodcrafty/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](https://github.com/metoppv/improver) | IMPROVER is a library of algorithms for meteorological post-processing and verification. | | [MetSim](https://github.com/UW-Hydro/MetSim) | MetSim is a meteorological simulator and forcing disaggregator for hydrologic modeling and climate applications. | | [MELODIST](https://github.com/kristianfoerster/melodist)| MELODIST is an open-source toolbox written in Python for disaggregating daily meteorological time series to hourly time steps. | | [PyCat](https://github.com/wegener-center/pyCAT) | Climate Analysis Tool written in python | | [PySteps](https://github.com/pySTEPS/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. | Time Series (Analysis) ---------------------- | Project Name | Description | | ------- | ------ | | [Hydropy](https://github.com/stijnvanhoey/hydropy) | Analysis of hydrological oriented time series. | | [Pastas](https://github.com/pastas/pastas) | Analysis of hydrological time series using time series models. | | [Hydrostats](https://github.com/BYU-Hydroinformatics/Hydrostats) | Tools for use in comparison studies, specifically for use in the field of hydrology. | |[htimeseries](https://github.com/openmeteo/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](https://github.com/modflowpy/flopy) | The Python interface to MODFLOW. | | [Idfpy](https://github.com/tomvansteijn/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](https://github.com/utah-geological-survey/WellApplication) | Set of tools for groundwater level and water chemistry analysis. | | [TIMML](https://github.com/mbakker7/timml) | A Multi-Layer, Analytic Element Model. | | [TTim](https://github.com/mbakker7/ttim) | A Multi-Layer, Transient, Analytic Element Model. | | [PyHELP](https://github.com/cgq-qgc/pyhelp) | A Python library for the assessment of spatially distributed groundwater recharge and hydrological components with HELP. | GIS Related ----------- | Project Name | Description | | ------- | ------ | | [PcRaster](http://pcraster.geo.uu.nl/) | Is a collection of software targeted at the development and deployment of spatio-temporal environmental models. | | [PyGeoprocessing](https://pypi.org/project/pygeoprocessing/) | a Python/Cython based library that provides a set of commonly used raster, vector, and hydrological operations for GIS processing. | |[Pysheds](https://github.com/mdbartos/pysheds)|Simple and fast watershed delineation in python.| | [Lidar](https://github.com/giswqs/lidar) | Terrain and hydrological analysis based on LiDAR-derived digital elevation models (DEM).| Optimization, Uncertainty, Statistics ------------ | Project Name | Description | | ------- | ------ | | [LMFIT](https://github.com/lmfit/lmfit-py) | 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](https://github.com/thouska/spotpy) | A Statistical Parameter Optimization Tool for Python. | | [PyGLUE](http://code.activestate.com/pypm/pyglue/) | Generalised Likelihood Uncertainty Estimation (GLUE) Framework. | | [Pyemu](https://github.com/jtwhite79/pyemu) | python modules for model-independent uncertainty analyses, data-worth analyses, and interfacing with PEST(++). | | [HPGL](http://hpgl.github.io/hpgl/) | High Performance Geostatistics Library. | | [HydroErr](https://github.com/BYU-Hydroinformatics/HydroErr)| Goodness of Fit metrics for use in comparison studies, specifically in the field of hydrology. | | [Climate-indices](https://github.com/monocongo/climate_indices) | Climate indices for drought monitoring, community reference implementations in Python. | Data Collection --------------- | Project Name | Description | | ------- | ------ | | [HKVFEWSPY](https://github.com/HKV-products-services/hkvfewspy) | Connection to the Delft FEWS servers | | [Openradar](https://github.com/nens/openradar) | Library for processing a set of dutch, german and belgian precipitation radars into calibrated composites. | | [Ecohydrolib](https://github.com/selimnairb/EcohydroLib)| Libraries and command-line scripts for performing ecohydrology data preparation workflows. | | [Ulmo](https://github.com/ulmo-dev/ulmo/) | clean, simple and fast access to public hydrology and climatology data.| Miscellaneous ------------- | Project Name | Description | | ------- | ------ | | [ESMPY](https://www.earthsystemcog.org/projects/esmpy/) | Earth System Modeling Framework (ESMF) Python interface | | [PyHSPF](https://github.com/djlampert/PyHSPF) | Python extensions to the Hydrological Simulation Program in Fortran (HSPF).| | [PYWR](https://github.com/pywr/pywr) | spatial allocation tool | | [SPHY](https://github.com/WilcoTerink/SPHY) | Spatial Processes in HYdrology (SPHY) model | | [xsboringen](https://github.com/tomvansteijn/xsboringen) | (In Dutch) A python library for processing and plotting borehole and CPT data, developed for open data formats in the Netherlands. | | [PyMT](https://github.com/csdms/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](https://github.com/landlab/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](https://github.com/ThibHlln/eflowcalc)| Calculator of Streamflow Characteristics. | | [IRIS](https://github.com/SciTools/iris) | A powerful, format-agnostic, and community-driven Python library for analysing and visualising Earth science data. | | [Hydrointerp](https://github.com/mullenkamp/hydrointerp) | A Python package for interpolating hydrologic data. | | [EFlowCalc](https://github.com/ThibHlln/eflowcalc) | EFlowCalc is an open-source calculator of ecological streamflow characteristics in Python. | | [Hydrofunctions](https://github.com/mroberge/hydrofunctions) | A suite of convenience functions for working with hydrology data in an interactive Python session.| | [Shyft](https://gitlab.com/shyft-os) | Shyft is the open-source toolbox for the energy-market domain, funded and supported by Statkraft. |