我尝试加载(如果存在),更新并在flopy中写入新的输入文件。我尝试了很多事情,但是我做不到。这是我的代码:
rchFile = os.path.join(modflowModel.model_ws, "hydrogeology.rch")
info = modflowModel.get_nrow_ncol_nlay_nper()
if "RCH" in modflowModel.get_package_list():
rchObject = ModflowRch.load(rchFile, modflowModel)
rchData = rchObject.rech
else:
rchData = dict()
for ts in range(info[3]):
rchData[ts] = np.zeros((info[0], info[1]))
for feat in iterator:
for ts in range(info[3]):
currValue = "random value"
rchData[ts][feat["row"]-1, feat["column"]-1] = currValue
rchObject = ModflowRch(modflowModel, nrchop=3, ipakcb=None, rech=rchData, irch=0, extension='rch', unitnumber=None, filenames="hydrogeology.rch")
rchPath = os.path.join(modflowModel.model_ws, 'rch.shp')
rchObject.export(f=rchPath)
# rchObject.write_file()
# modflowModel.add_package(rchObject)
modflowModel.write_input()
modflowModel
是和flopy.modflow.Modflow
对象。代码末尾的注释是我尝试编写更新的新输入但不起作用的行。
答案 0 :(得分:2)
当您说它不起作用时,您究竟会遇到什么错误?我通常用flopy修改强制包,如下所示:
m = flopy.modflow.Modflow.load()
for kper in range(m.nper):
arr = m.rch.rech[kper].array
arr *= 0.8 # or something
m.rch.rech[kper] = arr
答案 1 :(得分:0)
我发现了我的错误。 modflowModel.write_input()
运作良好。加载模型对象Modflow.load(...)
时出现问题。现在,我可以在需要的地方加载模型。因为如果我再加载另一个py等,可能会使我model_ws
感到困惑。