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-drivenCalibratorwith 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.
Metadata
Release files for MNiShed 3.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mnished-3.3.0.tar.gz | 174.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mnished-3.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 305.0 kB
Release files / mnished-3.3.0.tar.gz
| Download URL | mnished-3.3.0.tar.gz |
|---|---|
| Size | 174.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
52b99d80f7d32754354f5de5f5f451d278c63300b5ba1002ae64c8ce297e5b59
|
|
BLAKE2b-256 checksum How to use checksums |
797e804504b053943f8b6e476e0ae9f1c23d14bc6375b3aee8ef06504a068831
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency logRelease files / mnished-3.3.0-py3-none-any.whl
| Download URL | mnished-3.3.0-py3-none-any.whl |
|---|---|
| Size | 130.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fffaa24c5754621cda862af0b7890b011da97cb822e20cd3e12917c34e21e8c5
|
|
BLAKE2b-256 checksum How to use checksums |
14563169cbf3ae93f6c7eb03e4ad0f25fbad63b19fd2cb00a259c12ae599b6e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency log