the Creative Commons Attribution 4.0 License.
the Creative Commons Attribution 4.0 License.
HydroModPy: A Python toolbox for deploying catchment-scale shallow groundwater models
Abstract. In response to the growing demand for groundwater flow models, we present HydroModPy, an open-source toolbox designed to automate their deployment at the catchment scale. Built on top of the MODFLOW-enabling FloPy library, HydroModPy combines the robust WhiteboxTools toolbox for geospatial analysis and the well-validated MODFLOW code for groundwater modeling. This Python-based toolbox streamlines the construction, calibration, and analysis of unconfined aquifer models while adhering to FAIR (Findable, Accessible, Interoperable, and Reusable) principles. It enhances model reproducibility through editable Python code, supports multi-site deployment, and provides compatibility with alternative groundwater flow solvers. Furthermore, it integrates pre- and post-processing functionalities to simplify workflows. The toolbox enables catchment delineation and hydrological feature extraction from DEMs, followed by semi-automatic model construction and advanced visualization of hydraulic head and flow results. Users can choose from predefined aquifer structures and hydraulic properties such as exponential decay of hydraulic conductivity and porosity with depth or import complex 3D geological models. HydroModPy outputs can be exported in standard formats (e.g., raster, shapefile, netCDF), including water table elevation, water table depth, groundwater storage, groundwater-dependent hydrographic network and streamflow rates, and subsurface residence times. HydroModPy is tailored for the deployment in diverse geomorphological and hydrological settings, enabling the testing and exploration of aquifer models under varying recharge conditions. Its deployment capabilities are demonstrated in complex shallow basement and crystalline aquifers, where topography and geology primarily govern groundwater flow dynamics from hillslope to catchment scales. As an open-source toolbox, HydroModPy is designed for the community and actively encourages contributions from its users. It supports research in hydro(geo)logy and land and water management, while also providing valuable opportunities for teaching and education.
- Preprint
(1699 KB) - Metadata XML
- BibTeX
- EndNote
Status: final response (author comments only)
-
RC1: 'Comment on egusphere-2024-3962', Anonymous Referee #1, 24 Jan 2025
The manuscript Gauvain et al. presents a groundwater modeling toolbox HydroModPy. While the toolbox and its description are certainly of great interest to the community, the current quality of the paper makes it hard to understand its value.
First, I do not understand why this paper was submitted to HESS. I suggest resubmitting it to GMD. I also suggest that the authors consider submitting the framework itself to the Journal of Open-Source Software (JOSS) for a thorough review of the code and documentation quality. I mention this explicitly since the code example provides a bad example of well-written code (see my notes below).
I further suggest that the authors more clearly motivate what this toolbox should be used for and how it is similar to existing frameworks within the hydrogeology and hydrology communities. I wonder if it could enable model coupling to further bridge the hydrogeology and hydrology communities.
I also suggest that the authors substantially change the specific discussion of the model examples in France. It currently serves no purpose in explaining the modeling toolbox. Instead, it seems like an attempt by the authors to get a peer-reviewed article on multiple groundwater models as a side-product of a software article. I don’t understand why Table 1 and Figure 4 are necessary and how they help to explain or evaluate the functionality of the toolbox.
In its current state, the article seems rushed and could benefit from a much more focused approach to the toolbox's actual value. I suggest the authors focus on improving the manuscript before resubmitting it to GMD instead of HESS.
0: Is there a growing demand, or do you simply suspect there is one?
31: That is something FloPy also was capable of. What is the addition of this toolbox?
34: What does “advanced” mean exactly?
60: What qualifies as a systematic approach?
62: Could you expand on these categories a bit? The following examples do not provide much information if one is unfamiliar with the tools.
65: What advanced software? Is the software already part of the original modeling tools, or are there other libraries or modeling tools? Please be more specific.
67: This sentence is convoluted as it is unclear how the first part links to the second. Further, Zipper et al. talk about a web portal that makes models accessible, not a modeling platform or program.
71: What about:
https://ngwa.onlinelibrary.wiley.com/doi/10.1111/gwat.12654
https://www.sciencedirect.com/science/article/pii/S1364815216311331
https://gmd.copernicus.org/articles/15/5371/2022/gmd-15-5371-2022.html
https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2021WR031753
https://gmd.copernicus.org/articles/12/2463/2019/
https://doi.org/10.1016/j.envsoft.2020.104728
?
75: Hydrogeology?
80: Is building groundwater models based on catchment boundaries is a good idea? Groundwatersheds are not necessarily the same. What is the motivation here precisely?
99: Unnecessary technical detail. Also, why do you implement that as a static method and not through the object's constructor? (btw. it seems that has been updated in your gitlab – please make sure this is consistent with the paper and a specific version)
Code:
“W”, “K”, “Sy” are not a good variable name. This solidifies bad practices. Why is the initialization of parameters and inputs (recharge) called “update”? Why did the parameters change suddenly (269)? And why are you resetting the same parameters in each loop? If you are using the same parameters why not initialize them outside of the loop – same for the particle tracking settings? Code line 249: Needs code comment.
I propose first to submit the code to JOSS to get feedback on your code quality and possibilities for community engagement.
125: What kind of databases are these? What kind of regions are they covering? For what regions is no data available? What does the user need to do to supply their own data? What kind of data format and resolution is necessary? Can data be mixed from various sources? How is the spatial and temporal consistency of the data checked?
132: Fig. 2a is not referenced.
168: Again, why did you make this choice?
Section 3.2 and Table 1: I do not understand why this section is necessary. You are utilizing existing modeling software, which has been tested in other publications, and the particular example region you are modeling is irrelevant to describing the package. I understand that an example region is necessary to demonstrate the use of the package, but how the catchments are then modeled massively depends on the data you are using and the assumptions you are making, which is an entirely different kind of assessment that requires an in-depth analysis.
365: Reference error. Is that referencing Fig. 5? Because I could not find another reference. IF that is the case, this is a much better example than your current table. Why not use existing models to showcase how easy or complicated it is to build these models and how they differ?
Citation: https://doi.org/10.5194/egusphere-2024-3962-RC1 -
RC2: 'Comment on egusphere-2024-3962', Benjamin Mary, 07 Feb 2025
# HydroModPy: A Python toolbox for deploying catchment-scale shallow groundwater models
I appreciate the authors' motivation to develop HydroModPy and promote FAIR principles in hydrogeology. Providing open tools is valuable, and I'm thankful to the authors for this initiative!
However, the article is highly technical and feels more like a software report than a research paper, which does not fully fit HESS. Moreover, the manuscript's roadmap is unclear due to many technical considerations, making it hard to see the main contribution. The paper seems to present many ideas, but they appear somewhat scattered and not sufficiently organized. For example, the mention of 3D geology (with GEMpy) in the abstract is great, but it feels like a separate topic that deserves its article to fully explore its integration with HydroModPy. In my opinion, a single well-explained concept would be more effective than many touched on briefly.
Another critical point is that, from my perspective, while the manuscript emphasizes tool constraints, I believe calibration challenges are more related to subsurface data limitations. Expanding on this aspect would strengthen the paper. I strongly suggest rewriting the introduction to better explain the role of hydrogeological models, their strengths, and current challenges. Unless the tone shifts from a technical report to a scientific study with clear innovation and impact, I do not recommend it for HESS.
After my first review, I have a few initial thoughts/minor comments to share, as I found some parts a bit challenging:
##Highlights
- "Collection of data" – What do you mean by collection? This term typically refers to field data acquisition. Would preprocessing be more appropriate here?
- The third highlight is too long—consider shortening it if possible.## Abstract
- "Users can choose from predefined aquifer structures and hydraulic properties such as exponential decay of hydraulic conductivity and porosity with depth or import complex 3D geological models." – Is this statement accurate?
## Keywords
- Ensure consistency throughout the manuscript—use either watershed or catchment, but not both.
## Introduction
- L51: For HESS, I would expect a broader and more general introduction, covering the context of use and groundwater-related challenges. Currently, the manuscript jumps directly into model library descriptions, which is more suited for a technical journal (agreed with Reviewer 1).
- L63: "They can be classified into three categories: those that facilitate execution, those that provide coupling, and those that automate deployment." – This sentence needs rephrasing for clarity and better English.
- After L70: The authors mention automatizing the development of models, but it remains unclear what they mean by this.
- L77: The statement "We propose various approaches for implementing hydraulic properties, ranging from homogeneous to complex and heterogeneous fields (Orth et al., 2015)." appears abruptly and is confusing. Consider providing context.
## Watershed Extraction and Model Domain Definition
- The authors dedicate an entire section to watershed extraction. However, there is nothing particularly innovative here, especially since it relies on an external library (WhiteBoxTools). Either justify its importance and innovation in more detail or replace it with something the authors developed, such as aquifer structures and hydraulic properties.
## Section 4.1
- L343: Thanks for the reference, this is an interesting quote!
- L369: What exactly is meant by a critical zone approach? define the concept first.
## Section 4.2
- This section is clearly out of scope for HESS—see Reviewer 1's comment regarding JOSS or JOSE journals.
- L409: pyHELP has not been updated since 2012. Why do the authors emphasize its integration?
## Overview and Conclusions
- L432: "The Python HydroModPy toolbox allows users to build and calibrate hydrogeological models at the catchment scale. It has been developed to facilitate the deployment of catchment models over large areas." – These two sentences are redundant; consider rewording.
- L438: What is meant by localized? Are the authors referring to a single catchment versus multiple catchments?
- L441–450: Itemizing examples in the conclusion is not appropriate. Please consider relocating them elsewhere in the manuscript.
- L450: The statement "We believe that HydroModPy is relevant to investigate hydrological dynamics under varying forcing at different scales, such as changing climatic conditions or land use." is vague. Instead of stating a belief, provide concrete evidence demonstrating its relevance.
## Data Availability
- I suggest removing the following section, as it is unnecessary:"The installation of HydroModPy, as outlined in the documentation, involves checking system requirements, installing Git if necessary, cloning the repository, switching to the stable branch, navigating to the installation folder, and executing the appropriate script for setting up the environment on either Linux or Windows."
Citation: https://doi.org/10.5194/egusphere-2024-3962-RC2
Model code and software
HydroModPy code Alexandre Gauvain and Ronan Abhervé https://gitlab.com/Alex-Gauvain/HydroModPy/
Viewed
HTML | XML | Total | BibTeX | EndNote | |
---|---|---|---|---|---|
365 | 87 | 7 | 459 | 4 | 3 |
- HTML: 365
- PDF: 87
- XML: 7
- Total: 459
- BibTeX: 4
- EndNote: 3
Viewed (geographical distribution)
Country | # | Views | % |
---|
Total: | 0 |
HTML: | 0 |
PDF: | 0 |
XML: | 0 |
- 1