ENVI中从图像中获取指定点的像素值

0
分享 2016-05-29
在定量反演中,我们经常需要将实地测量数据与图像上的像素值一一对应起来,用于解算模型。
下面在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这样将实地调查的点位置信息加载到图像中
 
图:导入实测点

(1) 在ROI TOOL中,选择File->Output ROIs to ASCII。选择比值植被指数图像。
(2) 在Output ROIs to ASCII Parameters面板中,选择ROI点,单击Edit Output ASCII Form,在输出内容设置面板中(如下图),选择ID、经纬度(Geo Location)、和波段像元值(Band Values)。
 
图:导出点的反演值

这样就将水面调查点与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 0.8787
2 31.459780 120.177606 0.8352
3 31.428208 120.345769 0.6475
4 31.371164 120.270438 0.6086
5 31.330756 119.976618 0.8571
6 31.330354 120.123804 0.7880
7 31.333266 120.256719 0.6136
8 31.321980 120.210091 0.5879
9 31.254781 120.048005 0.5501

我们发现,导出来的经纬度与输入实测点的经纬度不完全一致,这是因为一般影像中像元的坐标是取中心点的经纬度,而我们实测的点位不一定恰好对应着影像像元的中心点,所以当输入的经纬度与影像上单个像元的经纬度不一致时,就会采用就近原则,与最临近的像素点匹配,输出该点的经纬度坐标。如环境小卫星的空间分辨率是30米,换算成经纬度在几秒的范围。
将相应的像素值导入Excel表中,与实测值一一对应。
注:ENVI中利用ROI Tool导出的像元信息是按照从上到下,从左到右的“Z”字形顺序,因此我们导入的实测点最好事先进行排序,这样导入Excel表中就方便多了,不用一个个根据经纬度手动调整。

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

文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0101dqte.html

0 个评论

要回复文章请先登录注册