flopy get_rc()不适用于旋转网格

时间:2019-04-05 17:21:37

标签: flopy

我正在如下设置我的模型空间参考:

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

我相信属性正确设置,因为我导出的Geotiff栅格已正确旋转。但是,我的get_rc()结果不正确。我传递的x,y对位于像元中心,对于未旋转的网格,结果非常理想。

我正在使用的方法调用(伪代码)是:

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

其中X和Y是numpy数组。

1 个答案:

答案 0 :(得分:0)

我们已经用连接到模型的通用模型网格对象替换了空间参考(SR),以便我们可以更广泛地支持flopy中的非结构化网格。这是一个如何在空间中注册模型的示例。对于您的特定情况,您将在加载后调用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对象也具有其他方法,例如相交,它将返回指定x和y点的像元信息。对于非结构化网格和其他类型的交叉点,这些方法将继续发展。