hydrobm.benchmarks.bm_monthly_scaled_daily_mean_flow
- hydrobm.benchmarks.bm_monthly_scaled_daily_mean_flow(data, cal_mask, precipitation='precipitation', streamflow='streamflow')[source]
Calculate the daily mean flow scaled by monthly precipitation anomalies.
This benchmark combines the daily mean flow climatology with monthly precipitation scaling. For each month, it scales the daily mean flow pattern based on how much higher or lower that month’s total precipitation is compared to the long-term average for that month during the calibration period.
- Parameters:
- datapandas DataFrame
Input data containing precipitation and streamflow columns.
- cal_maskpandas Series
Boolean mask for the calibration period.
- precipitationstr, optional
Name of the precipitation column in the input data. Default is ‘precipitation’.
- streamflowstr, optional
Name of the streamflow column in the input data. Default is ‘streamflow’.
- Returns:
- bm_valspandas Series
Series containing monthly scaling factors for each year-month combination.
- qbmpandas DataFrame
Benchmark flow time series for the monthly scaled daily mean flow benchmark model.
Notes
The benchmark works as follows: 1. Calculate daily mean flow climatology from calibration period. 2. Calculate mean total monthly precipitation for each calendar month during calibration period. 3. For each month in the dataset, calculate total precipitation, compute scaling factor as month_precip / mean_total_monthly_precip_cal[month], and scale the daily mean flow pattern by this factor. 4. For months with zero calibration precipitation, scaling factor is set to 1.0.