Skip to content

gwmod/nlmod

Repository files navigation

nlmod

nlmod Codacy Badge Codacy Badge PyPI version Documentation Status

Python package to build, run and visualize MODFLOW 6 groundwater models in the Netherlands.

nlmod was built to allow users to write scripts to quickly download relevant data from publicly available sources, and build and post-process groundwater flow and transport models at different spatial and temporal scales to answer specific geohydrological questions. Scripting these steps, from downloading data to building groundwater models, makes models more reproducible and transparent.

The functions in nlmod have four main objectives:

  1. Create and adapt the temporal and spatial discretization of a MODFLOW model using an xarray Dataset (nlmod.dims).
  2. Download and read data from external sources, project this data on the modelgrid and add this data to an xarray Dataset (nlmod.read).
  3. Use data in an xarray Dataset to build modflow packages for both groundwater flow and transport models using FloPy (nlmod.sim, nlmod.gwf and nlmod.gwt for Modflow 6 and nlmod.modpath for Modpath).
  4. Visualise modeldata in Python (nlmod.plot) or GIS software (nlmod.gis).

More information can be found on the documentation-website: https://nlmod.readthedocs.io/.

Installation

Install the module with pip:

pip install nlmod

nlmod has the following required dependencies:

  • flopy
  • xarray
  • netcdf4
  • rasterio
  • rioxarray
  • affine
  • geopandas
  • owslib
  • hydropandas
  • shapely
  • pyshp
  • rtree
  • matplotlib
  • dask
  • colorama
  • joblib

There are some optional dependecies, only needed (and imported) in a single method. Examples of this are bottleneck (used in calculate_gxg), geocube (used in add_min_ahn_to_gdf), h5netcdf (used for hdf5 files backend in xarray), scikit-image (used in calculate_sea_coverage). To install nlmod with the optional dependencies use:

pip install nlmod[full]

When using pip the dependencies are automatically installed. Some dependencies are notoriously hard to install on certain platforms. Please see the dependencies section of the hydropandas package for more information on how to install these packages manually.

Getting started

If you are using nlmod for the first time you need to download the MODFLOW executables. You can easily download these executables by running this Python code:

import nlmod
nlmod.download_mfbinaries()

After you've downloaded the executables you can run the Jupyter Notebooks in the examples folder. These notebooks illustrate how to use the nlmod package.