Daily Archives: August 28, 2014

用ArcGIS读取GIMMS AVHRR NDVI 3g 数据

用ArcGIS读取GIMMS AVHRR NDVI 3g 数据

[email protected]

这个第三代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或别的编程语言自己写点代码来处理。