用ArcGIS读取GIMMS AVHRR NDVI 3g 数据
这个第三代NDVI数据,文件名类似于geo82dec15a.n07-VI3g ,增加.bsq扩展名,比如geo82dec15a.n07-VI3g.bsq。
然后建立一新文件,文件名与ndvi文件名一致(不包括.bsq),扩展名为 .hdr,如geo82dec15a.n07-VI3g.hdr。把此.hdr与nvdi文件放在一起。.hdr是个文本文件,内容包括:
nrows 4320
ncols 2160
nbands 1
nbits 16
pixeltype SIGNEDINT
byteorder M
layout bsq
在arcgis里就可以以栅格的形式打开。不过遗憾的是,由于ndvi 3G文件好像写数据的次序与arcgis不一样,所以读出来是倒置的。
在ArcGIS里做一个栅格transpose rotate,就是正确的图像。然后增加正确的坐标信息,在正确位置下,坐标信息如下:
upper-left-lat: 90.0-1/24
upper-left-lon: -180.0+1/24
lower-right-lat: -90.0+1/24
lower-right-lon: 180.0-1/24
Geographic Lat/Lon
pixel-size: 1/12=0.0833 degrees
因ndvi3g读过来的数据中包括flag信息。用raster algebra计算ndvi时,用以下公式,
ndvi = rounddown(ndvi3g / 10) / 1000
标志flag
flagW = ndvi3g – rounddown(ndvi3g / 10) * 10 + 1
(注意栅格运算时,操作符之间是必要有空格的。)
标志含义
The meaning of the FLAG:
FLAG = 7 (missing data)
FLAG = 6 (NDVI retrieved from average seasonal profile, possibly snow)
FLAG = 5 (NDVI retrieved from average seasonal profile)
FLAG = 4 (NDVI retrieved from spline interpolation, possibly snow)
FLAG = 3 (NDVI retrieved from spline interpolation)
FLAG = 2 (Good value)
FLAG = 1 (Good value)
由于Arcgis需要多个操作,建议用Matlab或别的编程语言自己写点代码来处理。
Pingback: 将Global AVHRR NDVI 3g转换为ESRI ASCII Grid栅格的Matlab代码 | 老屋前的苦楝树