Source file: unit_hydrograph.html
Converts a series of effective rainfall excess values (the rainfall that actually becomes runoff, after losses) into a Direct Runoff Hydrograph (DRH) for a watershed, using a given Unit Hydrograph (UH) via discrete convolution.
Discrete convolution of rainfall excess with the unit hydrograph:
DRH(t) = Σ [ P(j) × UH(t − j + 1) ]
Where:
- P(j) — effective rainfall excess in time-block j (mm)
- UH(k) — unit hydrograph ordinate at lag k (m³/s per mm of excess rainfall)
- DRH(t) — direct runoff discharge at time step t (m³/s)
This is the standard linear, time-invariant convolution model underlying unit hydrograph theory: each rainfall pulse produces a scaled and time-lagged copy of the unit hydrograph response, and the total runoff is the superposition (sum) of all these responses.
| Input | Notes |
|---|---|
Time interval (Δt) |
Duration represented by each time step, in hours |
Effective rainfall excess P |
Comma-separated list of rainfall-excess depths (mm), one value per time block |
Unit Hydrograph ordinates UH |
Comma-separated list of UH ordinates (m³/s per mm of excess rainfall), one per time step of the UH's duration |
Given m rainfall values and n UH ordinates, the output direct runoff hydrograph has:
drhLength = m + n − 1
Computed by the standard convolution sum, implemented as a nested loop:
for i in 0..m-1:
for j in 0..n-1:
drh[i + j] += P[i] × UH[j]
Each rainfall pulse P[i] is multiplied through the entire UH and added into the output array at the correspondingly shifted position — this is mathematically identical to the summation formula above.
Time values for each output row are computed as k × Δt.
Q, m³/s) at each time step (hr)Δt, per standard UH theory — the tool does not itself normalize or check the UH's unit depth.