environmentaltools.processes.precipitation_to_flow
- environmentaltools.processes.precipitation_to_flow(data, info)[source]
Convert precipitation time series to streamflow using SCS Curve Number method.
Transforms rainfall data into runoff hydrographs using the NRCS (formerly SCS) Curve Number method with unit hydrograph theory. Accounts for soil moisture conditions, infiltration, and routing.
- Parameters:
data (pd.Series or pd.DataFrame) – Precipitation time series with datetime index
info (dict) –
Dictionary with watershed and model parameters:
- lonfloat
Main river length (km)
- slopefloat
Main river slope (m/m)
- areafloat
Watershed area (km²)
- cn2float
SCS Curve Number for average moisture conditions (0-100)
- k_acfloat, optional
Aquifer storage constant (hours). Default: 360
- f_absfloat, optional
Absorption factor. Default: 1
- rainning_patternstr, optional
SCS precipitation pattern ID. Default: ‘1_24h’
- eventsbool, optional
Whether data contains discrete events. Default: False
- freq_raw_datastr, optional
Frequency of raw data (‘D’, ‘H’, etc.). Default: ‘D’
- dtfloat, optional
Time step (hours). Default: 1
- modelstr
Concentration time model: ‘SCS’, ‘Temez’, ‘Kirpich’, ‘Kirpich-natural_slope’
- Returns:
DataFrame with computed hydrological variables including: - pr : Distributed precipitation - cumulative : Cumulative precipitation by events - cn : Dynamic curve number - net_pr : Effective precipitation (runoff) - sup_flow : Surface flow (m³/s) - base_flow : Base flow (m³/s) - total_flow : Total streamflow (m³/s) - infiltration : Infiltrated water depth - Mass balance statistics
- Return type:
pd.DataFrame
- Raises:
ValueError – If required parameters are missing or if concentration time model is not recognized