波谱运算(Spectral Math)工具

0
分享 2016-06-10
ENVI Spectral Math是一种灵活的波谱处理工具,可以用数学表达式或IDL程序对波谱曲线(以及选择的多波段图像)进行处理。波谱曲线可以来自一幅多波段图像的Z剖面、波谱库或ASCII文件。
如图15.5为波谱运算的简单示意图——求三个波谱曲线的和。在表达式s1+s2+s3中(波谱运算中的变量是以s开头),可以分别给s1、s2、s3指定为一条波谱曲线,得到的结果是一条波谱曲线(x值与s1、s2、s3一样,y值是三者之和);也可以s1是一个多波段图像文件(其实是每个像素点的Z-剖面),s2和s3分别是两条波谱曲线,得到的结果是一个与输入的多波段图像一样波段数和行列数的图像。

图15.5波谱运算示意图
下面以求表达式(s1+s2+s3)/3为例介绍Band Math工具的使用。
(1) 在主菜单中,选择File->Open Image File,打开一个TM数据并在Display中显示。
(2) 在Display的主图像窗口中,右键选择Z profile(Spectrum),Spectral Profile面板,选择Options->Collect Spectra,在TM图像上收集几个波谱曲线。
(3) 在主菜单中,选择Spectral->Spectral Math,打开Spectal Math面板(图15.6)。
(4) 在文本框Enter an expression中输入:(s1+s2+s3)/3。单击OK按钮,打开Variable to Spectra Pairings 面板(图15.7)。

图15.6 Spectal Math面板
(5) 在Variable to Spectra Pairings 面板中为每个变量指定值。Variables used in expression列表中选择S1 - [undefined],在Available Spectra List中显示打开的波谱选择,为其选择第一个。
(6) 同样的方法为s2和s3选择相应的波谱曲线。
(7) 输出结果(Output Result to):New Window
(8) 单击OK执行,结果是一条波谱曲线。

图15.7 Variable to Spectra Pairings 面板
如果为其中一个变量(如s1)选择一个图像文件,在Variable to Spectra Pairings 面板上单击Map Variable to Input File按钮,选择一个图像文件,运算结果是一幅图像(图15.8)。

图15.8 选择图像文件作为变量
在波谱运算中也可以使用IDL的数组运算符,以及数据类型转换函数。详细如表15.4所示。
表15.4 波谱运算常用函数和运算符(括号中所示)

在波谱运算中也可以使用IDL程序和函数,操作步骤与波段运算基本一样。如下自定义函数格式。
FUNCTION sm_func, s1, [s2,..., sn, parameters and keywords]
processing steps
RETURN, result
END
摘自《ENVI遥感图像处理方法》科学出版社 2010
文章来源:http://blog.sina.com.cn/s/blog_764b1e9d01010a5s.html

0 个评论

要回复文章请先登录注册