首页 > 代码库 > MODIS NDVI数据处理相关问题

MODIS NDVI数据处理相关问题

现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,将同一年份的某几个月,或者将某几年的数据放到同一文件夹里进行多期数据波段叠加,然后点击Pixel Locator,输入特定像元的位置,查看特定像元出的Z profile,此时看到,Envi做出的曲线图并不好看,可以将其导出为ASCII,然后在Excel中作图。