Skip to main content

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.

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)

Source distribution for MNiShed 3.3.0
File Size Uploaded
mnished-3.3.0.tar.gz 174.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for MNiShed 3.3.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

3.3.0 This release

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page