资源简介

这是一个水文水资源学上的三层蒸发模式的蓄满产流模型(新安江模型)的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:
               

评论

共有 条评论

相关资源