Как узнать количество периодов стресса в симуляции MODFLOW 6? - PullRequest
1 голос
/ 08 апреля 2019

Я могу прочитать в существующей симуляции MODFLOW 6, используя flopy.mf6.MFSimulation.load.Теперь я хочу узнать, сколько у него периодов стресса в виде целого числа, определенного nper в пакете tdis.Какой самый простой способ сделать это?

1 Ответ

1 голос
/ 21 апреля 2019

Итак, вот хитрость: в классах flopy для MODFLOW 6 вся информация хранится в виде объектов, включая целые числа, массивы, числа с плавающей запятой и т. Д. Это дает нам некоторые приятные преимущества, но также делает некоторые синтаксиснемного сложно, хотя мы работаем над этим.

Вот очень простая модель:

import flopy
sim = flopy.mf6.MFSimulation()
tdis = flopy.mf6.ModflowTdis(sim, nper=10)
gwf = flopy.mf6.ModflowGwf(sim)
dis = flopy.mf6.ModflowGwfdis(gwf)

Если мы попытаемся получить nper, как это:

nper = tdis.nper
print(nper)

затем мы возвращаем repr, который выглядит следующим образом:

{internal}
(10)

Способ, которым мы получаем фактические данные, заключается в добавлении массива:

nper = tdis.nper.array
print(nper)
print(type(nper))

В этом случае мы получаемтребуемая информация:

10
<class 'int'>

Для скаляров мы рассматриваем изменение этого поведения, чтобы оно велось так, как вы думаете (возвращая значение напрямую), но мы еще не реализовали это.

...