SCS method (CN, UH, convolution)¶
HDAT uses an SCS-style event model for catchments above the configured area threshold.
Excess rainfall (CN method)¶
Given curve number \(CN\) and rainfall depth \(P\) (mm):
\[
S = \frac{2540}{CN} - 25.4
\]
At each cumulative time step with cumulative rainfall \(P_t\):
\[
P_{e,t} =
\begin{cases}
0 & \text{if } P_t \le 0.2S \\
\frac{(P_t - 0.2S)^2}{(P_t + 0.8S)} & \text{otherwise}
\end{cases}
\]
Unit hydrograph scaling (legacy behavior)¶
Given timestep \(t_s\) (minutes), time of concentration \(T_c\) (minutes), and catchment area \(A_{ha}\) (ha):
\[
t_p = \frac{t_s}{2} + 0.6T_c
\]
\[
q_p = 2.08 \cdot \frac{(A_{ha}/100)}{(t_p/60)}
\]
Legacy computation then builds a discrete unit hydrograph by sampling a normalized UH lookup by \(r=t/t_p\) and scaling by \(q_p\).
Convolution hydrograph¶
Let \(\Delta P_{e,i}\) be incremental excess rainfall per timestep and \(U_j\) unit hydrograph ordinates.
Legacy convolution sums:
\[
Q(t) += U(j)\cdot \Delta P_e(i) \quad \text{where } t=i+j
\]
Peak discharge:
\[
Q_{peak} = \max_t Q(t)
\]
Engineering notes¶
- Store and expose the time series used for audit: rainfall increments, excess increments, UH, and convolution results.
- Ensure timestep alignment and truncation rules match legacy behavior (including forcing ordinates to zero outside the valid range).