Skip to main content

logo

HydroModPy

A Python toolbox for deploying catchment-scale shallow groundwater models.

Documentation DOI PyPI License: EPL-2.0 Python

HydroModPy v1.0: the version cited in the paper

This v1.0 branch is the version described in the technical note submitted to Hydrology and Earth System Sciences (EGUsphere preprint, 2026). It is the reference cited by the paper and is kept up to date with fixes, so the paper link always points to a working v1.0.

HydroModPy v2 is the actively developed version on the main branch, with new features and a redesigned interface.

Link
Paper (preprint) https://doi.org/10.5194/egusphere-2026-868
v1.0 documentation https://docs.hydromodpy.fr/v1.0/
v2 documentation (latest) https://docs.hydromodpy.fr/main/
Forum (Google Group) https://groups.google.com/g/hydromodpy

Presentation

HydroModPy was initiated in 2018 to streamline the setup and deployment of hydrogeological models in catchments across the crystalline basement regions of Normandy and Brittany (France). The platform integrates multiple open-source libraries (e.g., FloPy, WhiteboxTools), providing a unified and reproducible framework that is easily accessible to the scientific community. The development of HydroModPy is driven by two main objectives:

First, it automates the extraction and discretization of watersheds from Digital Elevation Models (DEMs) and enriches them with key hydrogeological datasets (e.g., piezometry, hydrography, geology) compiled from local, national, and global databases. This workflow ensures a standardized and reproducible approach for building and running simulation ensembles across multiple catchments using consistent input data.

Second, it facilitates the visualization, analysis, and comparison of outputs from the different modelling components integrated within the platform. Beyond research applications, HydroModPy also serves as an educational tool, enabling students and researchers to explore hydrogeological modelling workflows in a practical and reproducible environment.

Authors

Alexandre Gauvain [1,2], Ronan Abhervé [1,3,4], Bastien Boivin [1], Alexandre Coche [1], Martin Le Mesnil [1], Tristan Babey [1], Enzo Maugan [1], Théa Touzeau [1], Imene Issolah [11], Clément Roques [3], Camille Bouchez [1], Jean Marçais [5], Sarah Leray [6], Etienne Marti [6], Etienne Bresciani [7], Ronny Figueroa [3], Mathias Pélissier [3], Simon Carlier [3], Luca Guillaumot [8], Rock S. Bagagnan [1], Camille Vautier [1], Laurent Longuevergne [1], June Sallou [9], Johan Bourcier [10], Benoit Combemale [11], Philip Brunner [3], Luc Aquilina [1], Jean-Raynald de Dreuzy [1].

  • [1] Geosciences Rennes -- UMR 6118, CNRS, Université de Rennes, Rennes, France
  • [2] Laboratoire de Météorologie Dynamique (LMD), CNRS, Sorbonne Université, Paris, France
  • [3] Centre for Hydrogeology and Geothermics (CHYN), Université de Neuchâtel, Neuchâtel, Switzerland
  • [4] UMR SAS 1069, INRAE, Centre Bretagne-Normandie, Rennes, France
  • [5] UR RiverLy, INRAE, Centre Lyon-Grenoble Auvergne-Rhône-Alpes, Villeurbanne, France
  • [6] Pontificia Universidad Católica de Chile, Santiago, Chile
  • [7] Instituto de Ciencias de la Ingeniería, Universidad de O'Higgins, Rancagua, Chile
  • [8] BRGM - French Geological Survey, F-45060 Orléans, France
  • [9] INF, Wageningen University & Research, Wageningen, Netherlands
  • [10] ISA/LIUPPA, Université de Pau et des Pays de l'Adour, Pau, France
  • [11] Inria, IRISA, CNRS, Université de Rennes, Rennes, France

Installation

The recommended way to install HydroModPy is with pip from PyPI. A conda environment is also provided for the full scientific stack.

Prerequisites

  • Python 3.11 to 3.13.
  • Important: your local path should not contain white spaces, to stay compatible with the MODFLOW-MODPATH suite.

Install with pip (recommended)

Install HydroModPy from PyPI:

# without Spyder and JupyterLab
pip install "hydromodpy==1.0.*"     # latest 1.0.X, never 1.1 nor 2.0
# including Spyder and JupyterLab
pip install "hydromodpy[ide]==1.0.*"

The ==1.0.* specifier always resolves to the latest 1.0.X patch and never crosses over to the v2 series. Use ==1.0.0 only to pin one exact release.

MODFLOW, MODPATH and MT3DMS binaries ship with the package. The PyHELP binary downloads itself on the first call to the corresponding module.

Install with conda

Ready-to-use environment files live in the install/ directory (clone the repository first, see "Get the source code" below):

  • env_hydromodpy.yml: full runtime stack, including Spyder.
  • env_hydromodpy_pkg.yml: same stack, then runs pip install -e .. to expose the cloned repository as an editable package.
  • env_hydromodpy_light.yml: minimal headless stack (no IDE, no 3D viewer).
  • requirements-docker-light.txt: pip requirements for a light Docker/server image.
# from the repository root
conda env create -f install/env_hydromodpy.yml
conda activate hydromodpy

Get the source code

Needed for the conda environments above and for development (editable) installs.

  • Option 1: download the .zip archive directly from the GitHub project.
  • Option 2: clone the repository with a Git client such as GitHub Desktop.
  • Option 3: use the command line:
git clone https://github.com/HydroModPy/HydroModPy.git
cd HydroModPy
git checkout v1.0

For development (editable) mode from the clone:

pip install -e .

Launch HydroModPy

HydroModPy v1.0 was primarily developed for use with Spyder, so we recommend launching it from this IDE:

  1. Activate the environment:
conda activate hydromodpy
  1. Open Spyder or Jupyter:
spyder
# or
jupyter notebook
  1. Import HydroModPy in Python:
import hydromodpy
from hydromodpy import Watershed

# Check version
print(hydromodpy.__version__)

Examples

Run the example scripts in examples/ in this order:

00_quick_test_of_wide_hydromodpy_capabilities
01_simplified_example_presented_in_the_paper
02_basic_features_and_overview_of_possibilities
03_hydrographic_network_in_steady_state
04_streamflow_intermittence_in_transient
05_piezometry_in_a_heterogeneous_coastal_aquifer
06_particle_tracking_and_residence_times
07_analytical_solution_for_streamflow_recession
08_exponential_distribution_of_residence_times
09_transport_model_for_an_agricultural_catchment
10_coupling_with_land_surface_model_pyhelp
11_run_from_scratch_without_plots

The same examples are available as notebooks in the documentation.

Documentation

The v1.0 documentation is built and published automatically to https://docs.hydromodpy.fr/v1.0/ on every update of the v1.0 branch.

Publications

Papers published using HydroModPy:

Bagagnan, R. S., Abhervé, R., Laverman, A. M., & Vautier, C. (2026). Groundwater controls on legacy antibiotics and pesticides in an intensive agricultural headwater catchment. Journal of Hydrology, 66. https://doi.org/10.1016/j.jhydrol.2026.135118

Abhervé, R., Roques, C., de Dreuzy, J.-R., Van Der Veen, T., Dumaine, L., Chatton, E., Brunner, P., Aquilina, L., & Servière, L. (2025). Projected climate change impacts on groundwater-surface water connectivity in a compartmentalized mountain headwater bedrock aquifer. Water Resources Research, 61(10). https://doi.org/10.1029/2025WR040083

Floriancic, M. G., Abhervé, R., Bouchez, C., Martinez, J. J., & Roques, C. (2024). Evidence of Groundwater Seepage and Mixing at the Vicinity of a Knickpoint in a Mountain Stream. Geophysical Research Letters, 51. https://doi.org/10.1029/2024GL111325

Le Mesnil, M., Gauvain, A., Gresselin, F., Aquilina, L., & de Dreuzy, J.-R. (2024). Characterizing coastal aquifer heterogeneity from a single piezometer head chronicle. Journal of Hydrology, 642. https://doi.org/10.1016/j.jhydrol.2024.131859

Abhervé, R., Roques, C., De Dreuzy, J.-R., Datry, T., Brunner, P., Longuevergne, L., & Aquilina, L. (2024). Improving calibration of groundwater flow models using headwater streamflow intermittence. Hydrological Processes, 38(6). https://doi.org/10.1002/hyp.15167

Abhervé, R., Roques, C., Gauvain, A., Longuevergne, L., Louaisil, S., Aquilina, L., & de Dreuzy, J.-R. (2023). Calibration of groundwater seepage against the spatial distribution of the stream network to assess catchment-scale hydraulic properties. Hydrology and Earth System Sciences, 27(17), 3221-3239. https://doi.org/10.5194/hess-27-3221-2023

How to cite

If HydroModPy supports your work, please cite the technical note:

Gauvain, A., Abhervé, R., Boivin, B., Coche, A., Le Mesnil, M., Babey, T., Maugan, E., Touzeau, T., Issolah, I., Roques, C., Bouchez, C., Marçais, J., Leray, S., Marti, E., Bresciani, E., Figueroa, R., Pélissier, M., Carlier, S., Guillaumot, L., Bagagnan, R. S., Vautier, C., Longuevergne, L., Sallou, J., Bourcier, J., Combemale, B., Brunner, P., Aquilina, L., and de Dreuzy, J.-R. (2026). Technical note: HydroModPy (V1.0.0) - a Python toolbox for deploying catchment-scale shallow groundwater models. EGUsphere [preprint]. https://doi.org/10.5194/egusphere-2026-868

License

HydroModPy is released under the Eclipse Public License v2.0 (EPL-2.0). See LICENSE.

Contact

For any question regarding HydroModPy, please contact:

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hydromodpy-1.0.0.tar.gz (26.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hydromodpy-1.0.0-py3-none-any.whl (26.8 MB view details)

Uploaded Python 3

File details

Details for the file hydromodpy-1.0.0.tar.gz.

File metadata

  • Download URL: hydromodpy-1.0.0.tar.gz
  • Upload date:
  • Size: 26.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hydromodpy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c6de21d2aad681450c95d1001b764d4d8e62065050d3f70604c8aefed1ba4d44
MD5 d5743307672a72b352b386a921f2e859
BLAKE2b-256 50b9e78cd9950db3c6d194c8280caa7e8dd81fd994f7d08795106d4928644f70

See more details on using hashes here.

Provenance

The following attestation bundles were made for hydromodpy-1.0.0.tar.gz:

Publisher: publish.yml on HydroModPy/HydroModPy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hydromodpy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: hydromodpy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 26.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hydromodpy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55b2899d4d046c5d68b926a9ab0cd2532d4ca766db404f57f186e7816928fb8f
MD5 8312c4320288e8c1619adb208648f5ec
BLAKE2b-256 6a1007d47bd37b5fc0038628a55024d48be0ea4b41136db3bcb25ba9ad48189b

See more details on using hashes here.

Provenance

The following attestation bundles were made for hydromodpy-1.0.0-py3-none-any.whl:

Publisher: publish.yml on HydroModPy/HydroModPy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page