Skip to content

HOLMES

HydrOLogical Modeling Educational Software

HOLMES is a web-based hydrological modeling tool designed for teaching operational hydrology. Developed at Université Laval, Québec, Canada.


Features

  • Guided Modeling Pipeline: stations → weather → model → calibration → simulation → projection, with an interactive station map — every step documented in the user guide
  • Twenty Hydrological Models: from GR4J to SACRAMENTO, all documented in the concepts section
  • Snow Modeling: CemaNeige degree-day model with multi-elevation band support
  • Automatic Calibration: SCE-UA and DDS optimization algorithms
  • Climate Projections: ClimEx and ESPO-G6-R2 scenarios fetched per station
  • High Performance: Rust-powered computational engine with Python integration

Quick Start

Install HOLMES (Python ≥ 3.12):

pip install holmes-hydro

Start the dashboard:

holmes run

Open your browser at http://127.0.0.1:8000.

On startup the server downloads the prebuilt dataset from the repository's data release, so no credentials are needed. The CLI also provides holmes experiment to run batch calibration experiments; holmes download and holmes package are maintainer commands to rebuild and package the datasets.

User guide Concepts Changelog


Architecture Overview

HOLMES uses a three-tier architecture:

Layer Technology Purpose
Frontend Vanilla JavaScript, D3.js, Leaflet Interactive web interface
Backend Python, Starlette, Uvicorn API routing, data loading, orchestration
Compute Rust (holmes-rs), PyO3 High-performance numerical models

Communication between frontend and backend uses WebSockets for real-time updates during calibration.


License

HOLMES is released under the MIT License.