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