售后网站开发需求文档,台州市建站公司,安徽省建设部网站官网,做网站推广的方法同频率放大法求设计洪水过程线需要首先统计典型洪水过程线的洪水参数#xff0c;如洪峰流量及峰现时间、最大1d、3d、5d、7d洪量及起讫时间。如果典型洪水过程线的时间步长不均匀#xff0c;那么最大n日洪量就是一个难题#xff0c;需要首先重采样为等时间间隔的洪水过程线。…同频率放大法求设计洪水过程线需要首先统计典型洪水过程线的洪水参数如洪峰流量及峰现时间、最大1d、3d、5d、7d洪量及起讫时间。如果典型洪水过程线的时间步长不均匀那么最大n日洪量就是一个难题需要首先重采样为等时间间隔的洪水过程线。以下给出针对于一场不均匀时间间隔的典型洪水过程线计算最大n日洪量及起讫时间的python程序该程序由AI提示词训练得出。
输入文件格式为 import pandas as pd# 读取Excel文件
file_path 典型洪水数据.xlsx
df pd.read_excel(file_path)# 将历时转换为小时并将流量列转换为数值类型
df[历时h] df[历时h].astype(float)
df[流量m3/s] df[流量m3/s].astype(float)# 创建时间序列索引
df[时间] pd.to_timedelta(df[历时h], unith)
df.set_index(时间, inplaceTrue)# 重采样为每小时数据如果原始数据不是每小时记录一次
df_resampled df.resample(H).mean().interpolate(methodlinear)# 计算每小时的洪量单位亿立方米
df_resampled[洪量亿m3] df_resampled[流量m3/s] * 3600 / 1e8 # 3600秒转换为小时除以1e8转换为亿立方米# 计算最大一日洪量24小时
window_1_day 24
rolling_sum_1_day df_resampled[洪量亿m3].rolling(f{window_1_day}H).sum()
max_1_day_flood rolling_sum_1_day.max()
max_1_day_index rolling_sum_1_day.idxmax()
start_time_1_day max_1_day_index - pd.Timedelta(hourswindow_1_day - 1)
end_time_1_day max_1_day_index# 计算最大三日洪量72小时
window_3_days 72
rolling_sum_3_days df_resampled[洪量亿m3].rolling(f{window_3_days}H).sum()
max_3_days_flood rolling_sum_3_days.max()
max_3_days_index rolling_sum_3_days.idxmax()
start_time_3_days max_3_days_index - pd.Timedelta(hourswindow_3_days - 1)
end_time_3_days max_3_days_index# 计算最大五日洪量120小时
window_5_days 120
rolling_sum_5_days df_resampled[洪量亿m3].rolling(f{window_5_days}H).sum()
max_5_days_flood rolling_sum_5_days.max()
max_5_days_index rolling_sum_5_days.idxmax()
start_time_5_days max_5_days_index - pd.Timedelta(hourswindow_5_days - 1)
end_time_5_days max_5_days_index# 计算最大七日洪量168小时
window_7_days 168
rolling_sum_7_days df_resampled[洪量亿m3].rolling(f{window_7_days}H).sum()
max_7_days_flood rolling_sum_7_days.max()
max_7_days_index rolling_sum_7_days.idxmax()
start_time_7_days max_7_days_index - pd.Timedelta(hourswindow_7_days - 1)
end_time_7_days max_7_days_index# 创建结果DataFrame
results {指标: [最大一日洪量, 一日洪量开始历时, 一日洪量结束历时,最大三日洪量, 三日洪量开始历时, 三日洪量结束历时,最大五日洪量, 五日洪量开始历时, 五日洪量结束历时,最大七日洪量, 七日洪量开始历时, 七日洪量结束历时],值: [f{max_1_day_flood:.2f} 亿立方米, start_time_1_day.total_seconds() / 3600, end_time_1_day.total_seconds() / 3600,f{max_3_days_flood:.2f} 亿立方米, start_time_3_days.total_seconds() / 3600, end_time_3_days.total_seconds() / 3600,f{max_5_days_flood:.2f} 亿立方米, start_time_5_days.total_seconds() / 3600, end_time_5_days.total_seconds() / 3600,f{max_7_days_flood:.2f} 亿立方米, start_time_7_days.total_seconds() / 3600, end_time_7_days.total_seconds() / 3600]
}
df_results pd.DataFrame(results)# 将结果和重采样后的数据输出到新的Excel文件
with pd.ExcelWriter(洪水计算结果.xlsx) as writer:df_results.to_excel(writer, sheet_name计算结果, indexFalse)df_resampled.to_excel(writer, sheet_name重采样数据)print(计算完成结果已输出到洪水计算结果.xlsx文件中。) 输出文件如下