我在矢量shapefile上创建了一个遮罩,然后创建了另一个放大到相关区域的遮罩。我对这个新掩码的问题是掩码区域是我想要的位,所以我需要以某种方式反转它。 (请注意,我将numpy导入为np )
这是我用于第二个面具的代码:
catchment_mask = gmask[minrow:minrow+nrow, mincol:mincol+ncol]
catchment_mask = np.where(catchment_mask == 1, 1., np.nan)
我已尝试使用此代码对其进行反转,但它已将掩码应用于整个区域:
inverse_catchment_mask = (np.logical_not(catchment_mask))
我真的很感激任何建议!
答案 0 :(得分:0)
如果您的cachement_mask
由布尔值(真/假)组成,那么基于logical_not
的解决方案将按预期工作
但是你的面具由1
或NaN
组成,所以你必须更仔细地反转它。例如:
inverse_cachement_mask = np.where(np.isnan(cachement_mask), 1, np.nan)
这将创建原始蒙版的反转,交换1
和NaN
值。