HydroLearn
From Precipitation to Streamflow Ensembles
From Precipitation to Streamflow Ensembles
Problem statement
Every hydrological forecast starts from a rainfall estimate, and every rainfall estimate is wrong by some amount. Gauge networks are sparse, radar beams overshoot the rain, satellite retrievals miss shallow storms. Feed a single “best estimate” rainfall series into a hydrologic model and you get a single streamflow answer that quietly inherits all of that hidden error, then presents itself to the duty officer with false confidence.
The honest alternative is an ensemble: many equally plausible rainfall series, each consistent with what we know about how the precipitation product errs. This module shows you how to build that rainfall ensemble with a compact, defensible error model, push every member through a hydrologic model, and turn the resulting cloud of hydrographs into a probability statement a flood duty officer can act on: “the chance of exceeding the flood threshold rises through the storm and peaks near X percent.”
Short description
Learn to represent rainfall uncertainty as a mean-preserving multiplicative ensemble, propagate it through the HyMOD rainfall-runoff model, read the resulting streamflow ensemble as spaghetti plots, fan charts, and exceedance probabilities, and attribute the spread to its sources. The hands-on activities use two Python notebooks on the Leaf River catchment (Mississippi, USA), with every quoted number reproducible from fixed random seeds.
Audience
Early-career forecasters and hydrometeorologists at National Meteorological and Hydrological Services who need to move from single-value to probabilistic flood guidance.
Estimated effort
About 1.5 hours total (1 to 1.5 hour range). Self paced.
| Section | Estimated time |
|---|---|
| About page (read on enrolment) | 5 min |
| Section 1, Introduction | 5 min |
| Section 2, Precipitation uncertainty | 30 to 35 min (includes Learning Activity 1) |
| Section 3, Streamflow ensembles | 30 to 35 min (includes Learning Activity 2) |
| Section 4, Authentic task | 15 min |
| Total | 85 to 95 min |
Prerequisites
- Basic hydrologic vocabulary (precipitation, runoff, streamflow) and comfort reading a hydrograph.
- Working knowledge of Python (numpy, matplotlib), enough to run a Jupyter notebook end-to-end and edit a parameter value.
- Basic probability vocabulary (probability, percentile, exceedance).
No prior experience with ensembles, error models, or HyMOD is required, and no other module in this series is required.
What you will be able to do by the end
- Explain why precipitation is usually the dominant source of uncertainty in flood forecasting.
- Generate a mean-preserving, temporally correlated rainfall ensemble and defend the choice of its two parameters (error magnitude \(\sigma\), persistence \(\rho\)).
- Verify that an ensemble adds spread without adding or removing water on average.
- Propagate a rainfall ensemble through a hydrologic model and read the streamflow cloud as spaghetti, percentile bands, and fan charts.
- Convert ensemble members into a daily probability of exceeding a flood threshold and brief it with its basis stated.
- Attribute ensemble spread to rainfall vs. parameter uncertainty, and identify behavioral members after the event.
Course card image suggestion
A two-panel figure from Notebook 2, Section 3: fan chart of the streamflow ensemble on top (percentile bands in orange, observed flow in black, flood threshold band in red), the daily exceedance-probability series below. Place the module title across the top.
Credits
Module developed by Mohamed Abdelkader (University of Iowa) for the WMO capacity-building project, building on planning input from the module team. References are listed at the end of each section.