|
import flopy.utils.binaryfile as bf
|
import Base as base
|
import numpy as np
|
|
#给水度
|
water_u = 0.2
|
#研究区域面积平方米
|
water_F= float(5652 * 500 *500)
|
#有效计算单元格
|
water_invalid_cell =5652
|
#研究区域平方千米
|
water_F_KM= 680.250
|
|
pyq_cells_total =2721
|
|
|
#地下水蓄变量
|
def get_grd_storage(model_name,per1,per2):
|
arr = np.loadtxt(base.xs_mp_path, dtype=int)
|
pyq_cells=[]
|
k=0
|
for i in range(len(arr)):
|
for j in range(len(arr[i])):
|
if arr[i][j] == 1:
|
k+=1
|
pyq_cells.append((i,j))
|
|
dir = base.model_dir + model_name + "\\modflow.head"
|
|
if model_name=="202001_202212":
|
dir = base.baseModel2 + "\\modflow.head"
|
|
head = bf.HeadFile(dir)
|
alldata = head.get_alldata()
|
|
#初始水位数据
|
z_start = alldata[int(per1+1)*3-3,0,:,:]
|
#结束水位数据
|
|
z_end = alldata[int(per2+1)*3-1,0,:,:]
|
|
z_start[(z_start<=0)] = 0
|
z_end[(z_end<=0)] = 0
|
|
# z_start_avg = float(np.sum(z_start)/5652)
|
# z_end_avg = float(np.sum(z_end)/5652)
|
|
z_start_total = 0
|
z_end_total = 0
|
for item in pyq_cells:
|
i = item[0]
|
j = item[1]
|
z_start_total += z_start[i,j]
|
z_end_total += z_end[i,j]
|
|
z_start_avg = z_start_total/2721
|
z_end_avg = z_end_total/2721
|
|
#ΔW=100·(h1-h2)·μ·F/t
|
year = (per2+1-per1)/12
|
# print(year)
|
storage = 100 * (z_start_avg-z_end_avg) * water_u * water_F_KM /year
|
return storage
|
|
|
|
#相对均衡差 Q1
|
#Q总补-Q总排±ΔW=Χ
|
# Χ/Q总补 *100%
|
def get_grd_relative_equ(Q1, Q2,w):
|
x= ( Q1-Q2) + w
|
y = x/Q1
|
return y
|