The rational method postulates a simple proportionality between peak discharge, $q_{pk}$, and rainfall intensity, $p^*$:
$$ q_{pk} = \varepsilon_R \cdot C_R \cdot A_D \cdot p^* $$Obviously the results obtained with the method are highly sensitive to the value chosen for CR; values range from 0.05 for gently sloping lawns up to 0.95 for highly urbanized areas of roofs and pavement.
The rational method is widely used in urban drainage design, but Pilgrim and Cordery (1992) caution that there are typically few data available to guide the selection of CR, and that CR for a given watershed may vary widely from storm to storm due to differing antecedent conditions.
Also called NRCS curve number procedure. NRCS = Natural Resources Conservation Service - USDA
$$ Q^* = P^* = \frac{\left( P-S_{I} \right)^2}{P-S_I+S_{max}} $$The initial abstraction $S_I$ is usually approximated as $0.2\cdot S_{max}$, therefore:
$$ Q^* = P^* = \frac{\left( P-0.2\cdot S_{max} \right)^2}{P+0.8\cdot S_{max}} $$$$ S_{max} = 25.4\left(\frac{1000}{CN}-10\right) $$The number 25.4 is a conversion factor from inches to millimeters.
The curve number (CN) is a function of the ability of soils to infiltrate water, land use, and the soil water conditions at the start of a rainfall event (antecedent soil water condition). To account for the infiltration character- istics of soils, the NRCS has divided soils into four hydrologic soil groups, which are defined as follows (NRCS, 1984):
There are also three categories for Antecedent Soil Moisture Condition (AMC):
See the table below to find curve numbers for AMC II:
P=21
ratio = 4.17e4/2.61e5
CN=86
Smax = 25.4 * (1000/CN - 10)
Pmin = 0.2 * Smax
Qstar = 0.0
if P > Pmin:
Qstar = (P - 0.2*Smax)**2 / (P+0.8*Smax)
Qstar/P
0.14270006393832066
ratio
0.15977011494252874
Qstar / P
0.9148811393863234
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
def Qstar_f(pe, CN):
# Smax = 25.4*(1000/CN - 10)
Smax = (1000/CN - 10)
# Smax = (1000/CN - 10) / 25.4
Qstar = (pe - 0.2*Smax)**2 / (pe+0.8*Smax)
return Qstar
pe = np.linspace(0,8,101)
# plt.plot(pe, Qstar_f(pe, 35))
plt.plot(pe, Qstar_f(pe, 50))
# plt.plot(pe, Qstar_f(pe, 85))
[<matplotlib.lines.Line2D at 0x7fd8b0e66610>]
8*25.4
203.2