Skip to content

Changelog

Changelog


v2.1.1 — 2026-04-11

  • Small documentation edits.
  • Update build system to hatchling and pyproject.toml

v2.1.0 — 2026-04-11

  • Routing state, parameters (k, x), channel state, and all numba kernel scratch buffers now use float32 instead of float64. Reduces memory half, speeds up the inner routing loop.
  • Fused the sparse matrix-vector multiply and forward-substitution into a single loop for modest speed gain.
  • Better use of type aliases to reduce total number of annotations and improve readability.

v2.0.1 — 2026-03-10

  • Adds pyarrow to dependencies which is included by conda installs as a pandas dependency but not in pip.

v2.0.0 — 2026-03-09

  • Replaced Muskingum class with 3 separate classes Muskingum, RapidMuskingum, and UnitMuskingum.
  • New class Muskingum is channel routing only with no runoff-transformation.
  • New class RapidMuskingum is a reimplementation of the previous Muskingum class with routing and runoff transformation.
  • New class UnitMuskingum is a new implementation of unit hydrograph runoff transformation and channel routing.
  • Introduced Configs dataclass replacing the untyped config dictionary to centralize and validate configs.
  • Merged connectivity_file into params_file (single-file network definition).
  • Changed grid weights format from CSV to netCDF with proportion column.
  • Simplified channel state files from two columns (Q, R) to one column (Q).
  • Added topological sort validation on routing parameters.
  • Added types.py and significantly improved type annotations and static checking coverage.
  • Expanded runoff.py functions for Voronoi diagrams and grid weight computations.
  • Renamed numerous config keys (see migration guide).
  • Removed conversion utilities for RAPID inputs.
  • Several new tutorials, references, and examples in the docs.
  • Routing now uses numba JIT-compiled forward substitution replacing the scipy sparse linear solver.
  • Headwater streams are excluded from the matrix solve in UnitMuskingum, reducing the system size roughly in half.
  • Progress tracking uses tqdm at the file iteration level for RapidMuskingum and UnitMuskingum.
  • Increased minimum Python version to 3.12.
  • Added dependency on numba.

v1.3.0 — 2025-08-06

  • Added support for routing runoff ensembles.

v1.2.3 — 2025-05-01

  • Removed volume calculation keyword argument.

v1.2.2 — 2025-04-23

  • Fixed catchment volume calculation to use the correct area column.

v1.2.1 — 2025-03-14

  • Fixed bug where the time variable name argument was not applied correctly.

v1.2.0 — 2025-02-27

  • Improved efficiency of catchment volume computations.

v1.1.0 — 2025-01-21

  • Switched to a direct solver for the Muskingum linear system.

v1.0.3 — 2025-01-17

  • Renamed _MuskingumCunge to _Muskingum.
  • Added metrics.py module.
  • Refactored runoff.py.
  • Various bug fixes and documentation updates.

v1.0.2 — 2024-09-24

  • Guaranteed consistent sort order for adjacency matrix construction.

v1.0.1 — 2024-08-19

  • Fixed input_type config value not being set correctly.

v1.0.0 — 2024-08-17

  • Initial stable release.
  • Code cleanup and documentation restructuring.