最近开始计算植被覆盖度,首先就得弄明白NDVI的具体含义并对其进行计算。
MODIS NDVI产品数据免费下载: http://reverb.echo.nasa.gov/reverb/
现NDVI产品数据处理过程中遇到以下问题:
问题1: NDVI是归一化植被指数,它的取值范围是-1—1,如何理解?
方法 : 对于陆地表面覆盖来说,云、雨、雪在可见光比近红外波段有较高的反射作用,所以NDVI为负值;岩石、裸土的NDVI一般为0;有植被覆盖的地方一般大于0。
问题2: 导入ENVI进行查看,发现未拼接重投影之前影像数据范围为-3000—0.99880,拼接重投影之后影像数据范围在-3000—9988。是数据值发生了改变吗?
方法 : ENVI — Basic Tool — Preprocessing — Data-Specific Utilities — View HDF Attribute
(在envi里面查看NDVI波段参数)
可以发现它的有效值范围为(-2000—10000),因此数据值-3000是无效值,其他的值是乘以了10000这个系数(scale_factor),因此在拼接重投影过程中ndvi值并没有发生变化。还有些值如32767等表示有云 。
问题3: 按上面所述,它的根本值没有发生改变,但是毕竟一部分数值已经扩大了啊,怎么处理比较合理?
方法 : ENVI — Basic Tools — Band Math
(波段运算,把负值去掉)
在弹出的对话框Band Math中,Enter an expression: (b1 lt 0)*0+(b1 ge 0)*(b1*0.0001)。
这个公式意思就是:要是值小于0 就乘以0,使其变为0;同时,值大于等于0的话就乘以0.0001这个系数。
这样就OK了。关于B1 代表 所选的那个影像。
问题4: 如何通过NDVI来计算植被覆盖度?
方法 : 一般都是用的像元二值模型。利用NDVI值得到植被覆盖度。
公式: fc = (NDVI - NDVIsoil)/( NDVIveg - NDVIsoil)
取 NDVIsoil = NDVImin, NDVIveg = NDVImax。
(1)得到NDVI数据
(2)查出NDVI影像的最大最小值: 在scroll 窗口右键 — Quick Statistics
对于最小值,由于是计算植被覆盖度,植被的NDVI应该是大于0 ,因此应该选择大于0的最小值。
对于最大值,最大值不是1(红光波段反射率不等于0),因此应该选择数量大于0值小于1的最大值。
注意: 最大最小值提取需要设置置信度。如果置信度是0, 则NDVImin取所有像元中最小的值,NDVImax取所有像元中最大的;如果取置信度是1 ,则NDVImin取像元中像元值累计概率1%附近的像元值,NDVImax取99%附近的那个像元值(注意是像元值的累积概率:累计概率=累积像元个数/总像元个数),同理其他也一样。
问题: 置信度如何获得?
(3)波段计算: Basic Tool — Band match
输入计算公式: float((b1-minb1)/(maxb1-minb1))
问题5: 如何查看NDVI数据的“波谱曲线”(也就是spectral profile)呢?
方法 : Basic Tool — Layer Stacking
多期数据波段叠加,然后查看Z profile