Mohd Zamin Quadri

GitHubLinkedIn

All work

TUM project seminar

Uncertainty Quantification in Hydrology

A team seminar connecting HBV rainfall-runoff calibration, local and global sensitivity analysis, and input/output uncertainty propagation.

Role
Group contributor; individual ownership of assignment results is not claimed
Classification
Group coursework
Institution
Technical University of Munich
Inspect repository
Two perturbations of one calibrated event, on one scale. The rain barely moves it; the ruler the discharge was measured with moves it 356 times as far.The seminar's fitted stage-discharge rating curve, drawn from its own two blended power laws. Perturbing the precipitation across two thousand series barely moves the objective. The curve resets, and the same experiment is run on the water level instead: an identical fifty-centimetre interval is projected through the curve at base stage and at the peak, and comes out as a discharge band of 8.6 in one place and 338 in the other. Recalibration recovers almost none of it, and the loss from perturbing the measurement is 356 times the loss from perturbing the rain. No forecast, horizon or coverage claim is made anywhere.
Technical questionThe gauge is uncertain by the same 25 cm wherever the river is. What does that become in discharge, and why does the answer depend on where you measure?

Measurement uncertainty

±25 cm

Fixed. The same at 250 cm as at 560.

Discharge interval

8.63 m³/s

17.9 to 26.6 at a water level of 300 cm.

The error did not grow — the transformation amplified it. The curve is nearly flat at low water and steep at the top, so the same 50 cm of gauge uncertainty spans 8.633 m³/s at a base stage of 300 cm and 337.68 at 525. The local exponent runs from about 2.35 to 8.48 across that range. Nothing here is a forecast: it is a fixed measurement uncertainty pushed through a fitted stage-discharge relationship.

Evaluated from the seminar’s own fitted parameters. Source: results/assignment5/results_fiting_curve.txt
Water levelGauge uncertaintyDischarge intervalWidth
Low flow · 260 cm±25 cm12.3319.53 m³/s7.20
Base stage · 300 cm±25 cm17.9526.58 m³/s8.63
Peak stage · 525 cm±25 cm269.49607.17 m³/s338

01 / 12One eventA short, rainfall-dominated high-flow event, at an hourly step.

Model
HBV001aLumped conceptual rainfall-runoff
Time step
HourlyTemperature, precipitation, potential evapotranspiration
Event
One high-flow eventone catchment, one episode
Qtime
Perturb the rain2,000 precipitation series. NSE 0.907715 becomes 0.907298; 834 of them came out better than the reference by chance.
Qtime
Perturb the ruler2,000 series from moving the measured water level ±25 cm. NSE 0.907715 becomes 0.759226; 0 of them beat the reference.

Both panels are on the same discharge scale, and both bands are drawn at their measured widths. Moving the water level costs 356.1× more than moving the rainfall, because discharge is never measured directly — it is inferred from stage through a fitted curve whose local exponent rises from 2.35 to 8.48 as the river rises, so one fixed gauge error buys 39× more error at the flood peak than at baseflow. Refitting the model to each corrupted series recovers 5.76% of the loss and still never beats the reference: you cannot calibrate your way out of an error in the thing you are calibrating against.

The chain behind those two panels: HBV001a, a lumped conceptual rainfall-runoff model with 18 parameters, calibrated by Differential Evolution over 600 generations and 75,480 model evaluations; then sensitivity analysis, locally around that optimum and globally with Sobol indices under Saltelli sampling; then the two perturbation studies above. The two Sobol configurations disagree about which parameter dominates — sl0_fcy sampled narrowly against lrr_dre sampled across the full space — and their total indices sum to 1.856 rather than 1, so most of the variance sits in interactions rather than in any single parameter.

Calibrated baseline
NSE 0.907715
After precipitation noise
NSE 0.907298
After rating-curve error
NSE 0.759226
Rating curve fit
0.998705
  • Group courseworkThree contributors across five assignments; individual ownership of any single result is not claimed.
  • Course inputs are not redistributableThe forcing series, catchment area and the hmg package holding HBV001A are course-provided. The scientific runs cannot be reproduced from the public repository alone.
  • The event shape here is schematicNo observed hydrograph is reproduced. The rating curve, the perturbation and every metric are the repository's own; the trajectory they act on is a placeholder.
  • The README and the code disagreeThe README describes a plus/minus 15 cm water-level perturbation. The module bounds and the results file both record plus/minus 25 cm; 15 survives only as a stale default argument. The figures here follow the code.
  • Random error onlyThe precipitation study perturbs without systematic bias, which its own summary notes is the more consequential case and was not tested.
  • One event, one catchmentA single short high-flow event. Nothing here establishes that the same ordering holds for longer records or other catchments.

01Problem

Why this work exists

A calibrated hydrological model can still hide large uncertainty from forcing data, rating curves, parameters, and model structure.

02Contribution

What I can claim

Contributed within a three-person TUM seminar team to a progressive workflow covering differential-evolution calibration, sensitivity analysis, precipitation perturbation, and rating-curve uncertainty. Individual assignment ownership is not claimed.

Method

Where an interval comes from

An uncertainty band is not produced by widening a line. It is what disagreement looks like once it has been summarised.

  1. Simulate

    Several members are run from the same starting point under different assumptions.

  2. Diverge

    They agree near the start and separate through the middle of the horizon, which is where the modelled system is genuinely hardest.

  3. Summarise

    The spread is collapsed into a band. The band is a description of the disagreement, and it is only as honest as the ensemble that produced it.

  4. What this does not show

    An ensemble only explores the assumptions it was given. Agreement between members is not evidence of correctness - it can equally mean they share a blind spot.

03System

Workflow and decisions

  1. 01HBV baseline
  2. 02Parameter calibration
  3. 03Local sensitivity
  4. 04Global sensitivity
  5. 05Input and output uncertainty
  • Python
  • NumPy
  • SciPy
  • SALib
  • pandas
  • Matplotlib
  • LaTeX

04Evidence

What is actually versioned

Best seminar resultNSE 0.908

Versioned group-seminar result for the calibrated HBV baseline.

Central findingOutput uncertainty dominates

The seminar report finds rating-curve uncertainty more consequential than the tested precipitation noise.

05Quality controls

How the work is checked

  • Versioned reports, figures, and result artifacts
  • Explicit environment variables replace machine-specific data paths
  • Repository integrity checker validates key seminar artifacts
  • Team authorship and unavailable course inputs are documented

06Limitations

Where the evidence stops

  • Group coursework; individual ownership of each result is not established
  • Course-provided forcing data and the hmg package are not redistributable
  • Full scientific reruns require authorized course inputs

What this changed in my practice

Calibration quality cannot stand in for uncertainty analysis; observation and transformation errors can dominate parameter uncertainty.