我正在处理一些tif文件,并且我必须根据.tif文件绘制温度和蔬菜索引之间的依存关系。这只是供参考。现在我的编程问题。我正在使用python 2.7(x64)。我有NumPy lib形式的大ndarray,包含温度和秒的值(具有相同大小的植被)。mergedmask
是我的掩码(与其他数组大小相同),其中False值表示它是有效数据。
maxTS = np.amax(toa[mergedmask==False])
minTS = np.amin(toa[mergedmask==False])
maxVI = np.amax(ndvi1[mergedmask==False])
minVi = np.amin(ndvi1[mergedmask==False])
在较高的变量中,我具有TS
(温度)和VI
(植被指数)的最小值和最大值。一切都好。我很开心。现在我必须在toa
和ndvi1
数组中找到坐标。所以我用这个:
ax,ay = np.unravel_index(ndvi1[mergedmask==False].argmin(),ndvi1.shape)
为了简化我的味精,我只关注于minVI
。高行返回2个索引。然后:
newMinVi = ndvi1[ax][ay]
应指定与newMinVi
相同的值minVi
。但事实并非如此。我检查像这样的附近索引ax-1, ax+1, ay-1,ay+1
,所有索引甚至都不接近我的minVi
值。您有什么想法可以让我的minVi价值与您相提并论吗?
ndvi1[mergedmask==False].argmin()
将为您提供in中最小值的索引ndvi1[mergedmask==False]
,即,索引到一个新数组中,对应于mergedmask
is的地方False
。
这里的问题是,这ndvi1[mergedmask==False]
实际上不是一个面具。它选择那些ndvi1
满足条件的值,然后将这些值组合到一个新的1D数组中。例如,检查是什么ndvi1[mergedmask==False].size
,然后将其与进行比较ndvi1.size
。
您可能想做的是创建一个真实的蒙版数组:
ndvi1_masked = np.ma.masked_array(ndvi1, (mergedmask==False))
ax, ay = np.unravel_index(ndvi1_masked.argmin(), ndvi1.shape)
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句