水文预报三层蒸发模型与径流划分python程序

该博客介绍了使用Python进行水文预报的方法,通过三层蒸发模型(WU、WL、WD)和径流划分,结合pandas库处理数据。文章详细展示了如何读取CSV数据,计算各层蒸发、总蒸发、潜在蒸发、产流等,并进行水源分配的步骤。最后,结果经过校核并写回CSV文件。
摘要由CSDN通过智能技术生成

"""

import pandas as pd
import math

# 设定初始值
WUM = 20
WLM = 60
WDM = 40
b = 0.3
C = (1 / 6)
FC = 2.5
WM = WUM + WLM + WDM
WMM = WM * (1 + b)

# 读取原始数据
df = pd.read_csv("10月.csv", index_col='月份')
df = df.fillna(0)

for i in range(1, len(df) + 1):

# 计算WU,WL,WD
if i == 1:
df["WU"][i] = WUM
df["WL"][i] = WLM
df["WD"][i] = WDM


else:
dw = df["PE"][i - 1] - df['R'][i - 1]
df["WU"][i] = df["WU"][i - 1] + dw
df["WL"][i] = df["WL"][i - 1]
df["WD"][i] = df["WD"][i - 1]
if df["WU"][i] < 0:
df["WL"][i] = df["WL"][i - 1] + df["WU"][i]
df["WU"][i] = 0
df["WD"][i] = df["WD"][i - 1]
if df["WL"][i] < 0:
df["WD"][i] = df["WD"][i - 1] + df["WL"][i]
df["WL"][i] = 0
df["WU"][i] = 0
if df["WD"][i] < 0:
df["WL"][i] = 0
df["WU"][i] = 0
df["WD"][i] = 0

if df["WU"][i] > WUM:
df["WL"][i] = df["WU"][i] - WUM + df["WL"][i - 1]
df["WU"][i] = WUM
df["WD"][i] = df["WD"][i - 1]
if df["WL"][i] > WLM:
df["WD"][i] = df["WL"][i] - WLM + df["WD"][i - 1]
df["WL"][i] = WLM
df["WU"][i] = WUM
if df["WD"][i] > WDM:
df["WL"][i] = WLM
df["WU"][i] = WUM
df["WD"][i] = WDM

# 计算蒸发E
if df["WU"][i] + df["P"][i] >= df["EP"][i]:
df["EU"][i] = df["EP"][i]
df["EL"]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值