Error running flopy.modflow.HeadObservation: ValueError: Can't cast from structure to non-structure, except if the structure only has a single field
Error running flopy.modflow.HeadObservation: ValueError: Can't cast from structure to non-structure, except if the structure only has a single field
我正在使用 Flopy 在 Python 2.7 中设置 MODFLOW 模型。我正在尝试通过 HOB 包添加头部观察。以下示例代码直接取自 https://modflowpy.github.io/flopydoc/mfhob.html:
处的函数文档
import flopy
model = flopy.modflow.Modflow()
dis = flopy.modflow.ModflowDis(model, nlay=1, nrow=11, ncol=11,
nper=2, perlen=[1,1])
obs = flopy.modflow.mfhob.HeadObservation(model, layer=0, row=5,
column=5,
time_series_data=[[1.,54.4],
[2., 55.2]])
将此示例代码用于函数,出现以下错误:
ValueError: Can't cast from structure to non-structure, except if the structure only has a single field.
当我尝试为我的模型创建头部观察时,我遇到了同样的错误,该模型处于稳态并且具有一些不同的输入值。不幸的是,我一直没能找到一个有效的例子来进行比较。有什么想法吗?
编辑:jdhughes 的代码很有魅力;但是我也忽略了将 Flopy 更新到最新版本——我先尝试更新 numpy,但直到我将 Flopy 从 3.2.8 更新到 3.2.9 才摆脱 ValueError。现在可以用了,谢谢!!!
您需要创建一个或多个 HeadObservation 类型的实例并将其传递给 ModflowHob
。下面显示了一个具有两个观察位置的示例。
# create a new hob object
obs_data = []
# observation location 1
tsd = [[1., 1.], [87163., 2.], [348649., 3.],
[871621., 4.], [24439070., 5.], [24439072., 6.]]
names = ['o1.1', 'o1.2', 'o1.3', 'o1.4', 'o1.5', 'o1.6']
obs_data.append(flopy.modflow.HeadObservation(mf, layer=0, row=2, column=0,
time_series_data=tsd,
names=names, obsname='o1'))
# observation location 2
tsd = [[0., 126.938], [87163., 126.904], [871621., 126.382],
[871718.5943, 115.357], [871893.7713, 112.782]]
names = ['o2.1', 'o2.2', 'o2.3', 'o2.4', 'o2.5']
obs_data.append(flopy.modflow.HeadObservation(mf, layer=0, row=3, column=3,
time_series_data=tsd,
names=names, obsname='o2'))
hob = flopy.modflow.ModflowHob(mf, iuhobsv=51, obs_data=obs_data)
将提交一个问题来更新文档和文档字符串。
我正在使用 Flopy 在 Python 2.7 中设置 MODFLOW 模型。我正在尝试通过 HOB 包添加头部观察。以下示例代码直接取自 https://modflowpy.github.io/flopydoc/mfhob.html:
处的函数文档 import flopy
model = flopy.modflow.Modflow()
dis = flopy.modflow.ModflowDis(model, nlay=1, nrow=11, ncol=11,
nper=2, perlen=[1,1])
obs = flopy.modflow.mfhob.HeadObservation(model, layer=0, row=5,
column=5,
time_series_data=[[1.,54.4],
[2., 55.2]])
将此示例代码用于函数,出现以下错误:
ValueError: Can't cast from structure to non-structure, except if the structure only has a single field.
当我尝试为我的模型创建头部观察时,我遇到了同样的错误,该模型处于稳态并且具有一些不同的输入值。不幸的是,我一直没能找到一个有效的例子来进行比较。有什么想法吗?
编辑:jdhughes 的代码很有魅力;但是我也忽略了将 Flopy 更新到最新版本——我先尝试更新 numpy,但直到我将 Flopy 从 3.2.8 更新到 3.2.9 才摆脱 ValueError。现在可以用了,谢谢!!!
您需要创建一个或多个 HeadObservation 类型的实例并将其传递给 ModflowHob
。下面显示了一个具有两个观察位置的示例。
# create a new hob object
obs_data = []
# observation location 1
tsd = [[1., 1.], [87163., 2.], [348649., 3.],
[871621., 4.], [24439070., 5.], [24439072., 6.]]
names = ['o1.1', 'o1.2', 'o1.3', 'o1.4', 'o1.5', 'o1.6']
obs_data.append(flopy.modflow.HeadObservation(mf, layer=0, row=2, column=0,
time_series_data=tsd,
names=names, obsname='o1'))
# observation location 2
tsd = [[0., 126.938], [87163., 126.904], [871621., 126.382],
[871718.5943, 115.357], [871893.7713, 112.782]]
names = ['o2.1', 'o2.2', 'o2.3', 'o2.4', 'o2.5']
obs_data.append(flopy.modflow.HeadObservation(mf, layer=0, row=3, column=3,
time_series_data=tsd,
names=names, obsname='o2'))
hob = flopy.modflow.ModflowHob(mf, iuhobsv=51, obs_data=obs_data)
将提交一个问题来更新文档和文档字符串。