Skip to main content

Lumped-parameter watershed hydrological model

Project description

DOI Documentation Status PyPI version Tests

MNiShed

Watershed hydrological model

MN = Minnesota · Mni = water (Dakota) · Mini = small (lumped) · Shed = watershed

MNiShed is a lumped, daily-timestep conceptual hydrological model. It routes precipitation through an optional snowpack stage and then through a cascade of one or more reservoirs (soil zone, groundwater, etc.), producing streamflow. A basin can be split into parallel sub-catchments — including open-water lakes — to represent contrasting hydrologic zones. Evapotranspiration is either read from a data file or computed with the Thornthwaite–Chang 2019 equation, optionally reshaped by a growing-degree-day vegetation-phenology coefficient, and scaled to close the long-run water balance. The model follows the CSDMS Basic Model Interface (BMI), and ships with a fast in-process calibration stack and post-fit diagnostics.


Read the full documentation on ReadTheDocs


Features

  • Process options — snowpack (degree-day melt, rain-on-snow), frozen ground, a configurable reservoir cascade (power-law or linear recession), tile drainage (two formulations), PDM saturation-excess, and direct runoff.
  • Parallel sub-catchments & lakes — split a basin into zones with independent physics; open-water lake elements with a threshold stage–discharge outlet, direct precipitation minus evaporation, and a bidirectional lake↔groundwater exchange.
  • Evapotranspiration — measured or Thornthwaite–Chang, with an optional growing-degree-day vegetation-phenology coefficient and water-balance closure.
  • Calibration — fast in-process calibration (build-once ScoringModel, config-driven Calibrator with declarative parameter targets), multi-window/decadal objectives, and SPOTPY (SCE-UA, DREAM) or Dakota drivers.
  • Analysis — post-fit parameter-identifiability diagnostics (likelihood profiles, a curvature eigenspectrum, ridges), a seasonal mass-balance diagnostic, Brutsaert–Nieber recession analysis, and data-driven priors.
  • Performance & interoperability — an optional Numba JIT time loop (verified identical to pure Python) and a CSDMS BMI wrapper.

Installation

pip install mnished

To install from source for development:

git clone https://github.com/MNiMORPH/MNiShed.git
cd MNiShed
pip install -e '.[bmi,jit]'   # optional extras: bmi, jit, docs, lint

The optional extras are bmi (CSDMS BMI wrapper), jit (Numba JIT acceleration), docs (build the documentation), and lint (Ruff).

Quick start

Python API

import mnished

b = mnished.Buckets()
b.initialize('config.yml')
b.run()
b.compute_NSE(verbose=True)
b.plot()

Command-line interface

mnished -y config.yml

See the Quick Start guide for the configuration file format and input data requirements.

Citation

If you use MNiShed, please cite it using the metadata in CITATION.cff or via the Zenodo record:

Wickert, A. D. (2026). MNiShed: Watershed hydrological model. https://doi.org/10.5281/zenodo.6787390

Contact

Please report bugs and request features via GitHub Issues.

Project details


Download files

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

Source Distribution

mnished-3.2.0.tar.gz (155.6 kB view details)

Uploaded Source

Built Distribution

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

mnished-3.2.0-py3-none-any.whl (119.0 kB view details)

Uploaded Python 3

File details

Details for the file mnished-3.2.0.tar.gz.

File metadata

  • Download URL: mnished-3.2.0.tar.gz
  • Upload date:
  • Size: 155.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mnished-3.2.0.tar.gz
Algorithm Hash digest
SHA256 42b2f94ce93392122e707f356ce096e4d4d5ba405bee4eee4fc3ef5582cf2b41
MD5 79b1b88704d797ca709a759456ea44eb
BLAKE2b-256 224e50a46e47c0b390966a65389894e01abdfabeeb39b38fa7496fbb2f9a2ad1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mnished-3.2.0.tar.gz:

Publisher: publish.yml on MNiMORPH/MNiShed

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

File details

Details for the file mnished-3.2.0-py3-none-any.whl.

File metadata

  • Download URL: mnished-3.2.0-py3-none-any.whl
  • Upload date:
  • Size: 119.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mnished-3.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0193db3f52e6f5dacb65e3bbb6d0fad5806e97ceab124d74fa472a8b55808b65
MD5 15fb82d95211248390ab25bb0d68e475
BLAKE2b-256 1eb339edc08f3380d83ccf311f7c3fe4115c4f2ce2cd10a51292c74a0b2ac330

See more details on using hashes here.

Provenance

The following attestation bundles were made for mnished-3.2.0-py3-none-any.whl:

Publisher: publish.yml on MNiMORPH/MNiShed

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page