flopy get_rc () не работает для повернутой сетки - PullRequest
0 голосов
/ 05 апреля 2019

Я устанавливаю пространственную привязку модели следующим образом:

m = flopy.modflow.Modflow.load(nam, verbose=True,load_only=['dis'])
x_offset = 963091.522224#x lower limit (SW corner)
y_offset = 9280278.473164#y lower limit (SW corner)
rot = 35.0# CCW
m.sr.xll = x_offset#x lower limit (SW corner)
m.sr.yll = y_offset#y lower limit (SW corner)
m.sr.rotation = rot

Я полагаю, что свойства установлены правильно, так как экспортируемые мной геотиф растры корректно вращаются. Тем не менее, мои результаты для get_rc () не подходят. Пары x, y, которые я прохожу, находятся в клеточных центрах, результаты были идеальными с необращенными сетками.

Используемый мной вызов метода (код Psuedo):

(r,c) = m.sr.get_rc(X,Y)

, где X и Y - массивы

1 Ответ

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

Мы заменили пространственную привязку (SR) на общий объект сетки модели, который прикреплен к модели, чтобы мы могли более широко поддерживать неструктурированные сетки во флопе. Вот пример того, как зарегистрировать вашу модель в космосе. Для вашего конкретного случая вы бы вызвали метод set_coord_info после загрузки.

import flopy
m = flopy.modflow.Modflow()
dis = flopy.modflow.ModflowDis(m)
xoff = 963091.522224
yoff = 9280278.473164
angrot = 35.
m.modelgrid.set_coord_info(xoff=xoff, yoff=yoff, angrot=angrot)
m.modelgrid.plot()

Все последующие участки и экспорты теперь будут использовать эту информацию о георегистрации.

enter image description here

Объект modelgrid также имеет другие методы, такие как intersect, которые будут возвращать информацию о ячейке для указанной точки x и y. Эти методы будут продолжать развиваться для неструктурированных сеток и других типов пересечений.

...