Skip to content
/ nlmod Public

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

License

Notifications You must be signed in to change notification settings

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
  • bottleneck

There are some optional dependecies, only needed (and imported) in a single method. Examples of this are geocube, rasterstats (both used in nlmod.util.zonal_statistics), h5netcdf (used for hdf5 files backend in xarray), scikit-image (used in nlmod.read.rws.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

Start with the Jupyter Notebooks in the examples folder. These notebooks illustrate how to use the nlmod package.