我正在计算图像的NDVI索引。 NDVI应该给出介于0和1之间的值,但是我会得到更大的值。我的数据是[5000,5000,3]数组,NDVI计算的重要频段是第二和第四。我的阵列中的所有条目都是正面的。我的代码是:
nu=imarray[:,:,3]-imarray[:,:,1]
de=imarray[:,:,3]+imarray[:,:,1]
NDVI=div0(nu,de)
imarray是我的数组, nu 是分子, de 是分母。我使用来自denis's的this question优秀的div0函数,它将分子除以分母,但将潜在的0/0设置为等于0.插入以下打印语句进行调试:
print np.amax(NDVI)
print np.amin(NDVI)
给出
38.1372781065
0.0
即。索引介于0和38之间,而不是介于-1和1之间。从数学角度看这似乎没什么意义,所以有人知道我在这里编程错误吗?
提前致谢:)