http://i4.tietuku.com/84ea2afa5841517a.png
整个区域具有40x40的网格网络,我想提取紫色区域内的数据。换句话说,我想将管理边界之外的数据屏蔽到np.nan中。
我标记了网格编号,然后将特定的数组数据选择到np.nan中。
http://i4.tietuku.com/523df4783bea00e2.png
value[0,:] = np.nan value[1,:] = np.nan . . . .
有人可以告诉我一种更容易实现目标的方法吗?
在这里找到了 可以将栅格数据绘制到shapefile中的答案,但是数据本身没有改变。
步骤1.栅格化shapefile
创建一个可以确定坐标点是否(x, y)在该区域中的函数。有关如何将shapefile栅格化为与目标蒙版相同尺寸的数组的更多详细信息,请参见此处。
(x, y)
def point_is_in_mask(mask, point): # this is just pseudocode return mask.contains(point)
步骤2.创建您的面具
mask = np.zeros((height, width)) value = np.zeros((height, width)) for y in range(height): for x in range(width): if not point_is_in_mask(mask, (x, y)): value[y][x] = np.nan