在定量反演中,我们经常需要将实地测量数据与图像上的像素值一一对应起来,用于解算模型。

下面在ENVI 5.x中的Classic界面中介绍实现过程,ENVI4.8及之前版本操作步骤类似。

注:以实测叶绿素浓度为例子

第一步:整理采样点实测数据

为了将水面调查点与实测叶绿素浓度在空间上一一对应起来。实地调查数据包括:水面调查点的经纬度、叶绿素含量。以三列或者四列形式保存为.txt文件,以下格式:

序号   纬度       经度       chla实测含量(mg/L)
1   31.516334   120.182215       0.0531
2   31.457170   120.041978       0.0535
3   31.459692   120.177602      0.0496
……

第二步:获取图像上的像素值

  有些文档中的称为获取采样星上数据。这里的图像是一个比值植被指数图像。

(1)在display中显示比值图像,选择overlay->Region Of Interest 打开ROI Tool。

(2)在ROI Tool中,选择ROI_Type->Input Points from ASCII,选择文本格式的实地调查数据反演点.txt。注意参数选择:

x:选择经度;y:选择纬度;
These point comprise:Individual Points;

投影坐标(Select Map Based Projection):Geographic Lat/Lon;

注:投影坐标与实测数据中坐标值的投影参数保持一致。

(3)设置好投影信息后,单击OK这样将实地调查的点位置信息加载到图像中

ENVI java调用 envi的cursor value_sed


图:导入实测点

(1)在ROI TOOL中,选择File->Output ROIs to ASCII。选择比值植被指数图像。

(2)在Output ROIs to ASCII Parameters面板中,选择ROI点,单击Edit Output ASCII Form,在输出内容设置面板中(如下图),选择ID、经纬度(Geo Location)、和波段像元值(Band Values)。

ENVI java调用 envi的cursor value_txt文件_02


图:导出点的反演值

这样就将水面调查点与BNIR/BRED对应的值导出来了,如下:

; ENVI Output of ROIs (5.1) [Sun Mar 30 16:49:16 2014]
; Number of ROIs: 1
; File Dimension: 2182 x 2336
;
; ROI name: Region #1
; ROI rgb value: {255, 0, 0}
; ROI npts: 38
; ID       Lat        Lon     B1
  1  31.457258 120.041982 
  2  31.459780 120.177606 
  3  31.428208 120.345769 
  4  31.371164 120.270438 
  5  31.330756 119.976618 
  6  31.330354 120.123804 
  7  31.333266 120.256719 
  8  31.321980 120.210091 
  9  31.254781 120.048005

我们发现,导出来的经纬度与输入实测点的经纬度不完全一致,这是因为一般影像中像元的坐标是取中心点的经纬度,而我们实测的点位不一定恰好对应着影像像元的中心点,所以当输入的经纬度与影像上单个像元的经纬度不一致时,就会采用就近原则,与最临近的像素点匹配,输出该点的经纬度坐标。如环境小卫星的空间分辨率是30米,换算成经纬度在几秒的范围。

将相应的像素值导入Excel表中,与实测值一一对应。

注:ENVI中利用ROI Tool导出的像元信息是按照从上到下,从左到右的“Z”字形顺序,因此我们导入的实测点最好事先进行排序,这样导入Excel表中就方便多了,不用一个个根据经纬度手动调整。

ENVI java调用 envi的cursor value_数据_03


图:像素值与实测值一一对应并建立关系模型