資源簡介
這是一個水文水資源學上的三層蒸發模式的蓄滿產流模型(新安江模型)的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:
???????????????
評論
共有 條評論