资源简介
这是一个水文水资源学上的三层蒸发模式的蓄满产流模型(新安江模型)的python计算程序,本程序的运行需要结合本人上传的PEdata.xlsx文件,该excel文件包含了计算蓄满产流所需要的降水、蒸发能力数据。
代码片段和文件信息
import pandas as pd
wumwlmwdm=158520#上层土壤蓄水容量、下层土壤蓄水容量、深层土壤蓄水容量
wm=wum+wlm+wdm#流域土壤平均蓄水容量
wu0wl0wd0=02.220#上层土壤蓄水量初值、下层土壤蓄水量初值、深层土壤蓄水量初值
w0=wu0+wl0+wd0#流域平均土壤蓄水量初值
bkc=0.30.950.14#流域不均匀系数、蒸发折算系数、蒸发扩散系数
wmm=wm*(1+b)#最大土壤蓄水容量
filename=‘PEdata.xlsx‘
pedata=pd.read_excel(filenamesheet_name=‘Sheet1‘)#读取excel数据:时间、蒸发能力、降水
timelen=pedata.shape[0]#时段数,即数据行数(不包含表头)
t=list(pedata.iloc[:0])#日期
ep=list(pedata.iloc[:1])#日蒸发能力
p=list(pedata.iloc[:2])#日降水量
eu=[0]*timelen#上层蒸发
el=[0]*timelen#下层蒸发
ed=[0]*timelen#深层蒸发
e=[0]*timelen#日蒸发量
pe=[0]*timelen#扣除降水的蒸发量
dw=[0]*timelen#日土壤蓄水变量
r=[0]*timelen#产流
wu=[0]*(timelen+1)#上层蓄水量
wl=[0]*(timelen+1)#下层蓄水量
wd=[0]*(timelen+1)#深层蓄水量
w=[0]*(timelen+1)#日蓄水量
wu[0]=wu0
wl[0]=wl0
wd[0]=wd0
w[0]=w0
a=[0]*timelen#蓄满产流模型参数A
a[0]=wmm*(1-(1-w0/wm)**(1/(1+b)))
for i in range(timelen):
if wu[i]+p[i]>=ep[i]:#计算eu
eu[i]=ep[i]
else:
eu[i]=p[i]+wu[i]
if p[i]+wu[i]>=ep[i]:#计算el
el[i]=0
else:
if wl[i]>=c*wlm:
el[i]=(ep[i]-eu[i])*wl[i]/wlm
else:
if wl[i]>=c*(ep[i]-eu[i]):
el[i]=c*(ep[i]-eu[i])
else:
el[i]=wl[i]
if wu[i]+p[i] if wl[i] ed[i]=c*(ep[i]-eu[i])-el[i]
else:
评论
共有 条评论