产汇流理论是水文学的重要理论之一。本文给出了汇流计算的经典方法——时段单位线法的python计算程序。需要的基础数据是时段单位线和地面净雨过程。
'''这是一个时段为6h,时段个数为15的单位线推流计算程序'''
import numpy as np
num=15
ur=10#单位地面净雨量,通常取10mm
t=[i for i in range(1,num+1)]#时段序列
h=[24,23,3.2]#地面净雨过程
uh=[0,2,15,35,41,25,15,9,6,4,3,2,1,0]#时段单位线,长度比时段个数少1个
q=[0]*(num+1)#地面径流过程#长度比时段个数多1个
row=num-1+len(h)-1
clo=len(h)
matrix=np.zeros([row,clo])
for j in range(0,clo):
for i in range(0,num-1):
matrix[i-1+j,j]=h[j]/ur*uh[i-1]
for i in range(0,row):
q[i]=round(sum(matrix[i]),1)
print(q)
运行结果如下:
[0.0, 4.8, 40.6, 119.1, 183.7, 165.5, 106.6, 64.1, 39.9, 26.3, 18.3, 13.0, 8.0, 2.9, 0.3, 0.0]