《14-波段运算和波谱运算解析优秀PPT.ppt》由会员分享,可在线阅读,更多相关《14-波段运算和波谱运算解析优秀PPT.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ENVI/IDL14-14-波段运算与波谱运算波段运算与波谱运算刘海新河北工程高校资源学院 ENVI/IDL1 1、概述、概述ENVI ENVI 波段运算工具能够调用用户编写的程序进行定制的处理。波段运算波段运算工具能够调用用户编写的程序进行定制的处理。波段运算工具用来定义输入的波段或文件,并调用用户编写的函数,最终将结果输工具用来定义输入的波段或文件,并调用用户编写的函数,最终将结果输出到文件或是内存中。出到文件或是内存中。波段运算函数运用变量命名为波段运算函数运用变量命名为b1(B1),b2(B2)b1(B1),b2(B2)等等。通过在波段运算表达等等。通过在波段运算表达式窗口中输入函数名
2、和变量名就可以调用该波段运算函数。通过波段运算式窗口中输入函数名和变量名就可以调用该波段运算函数。通过波段运算对话框为变量赋值。对话框为变量赋值。上图通过三个波段的相加说明白波段运算的处理过程。表达式中的每一个上图通过三个波段的相加说明白波段运算的处理过程。表达式中的每一个波段都对应于一个输入的影像波段,对这三个波段求和并输出结果影像。波段都对应于一个输入的影像波段,对这三个波段求和并输出结果影像。这个表达式中的每个变量不仅可以对应于单一波段,也可以对应与一个文这个表达式中的每个变量不仅可以对应于单一波段,也可以对应与一个文件。例如:在表达式件。例如:在表达式b1+b2+b3 b1+b2+b3
3、 中,假如中,假如b1 b1 映射为文件而映射为文件而b2,b3 b2,b3 映射为单映射为单一波段则结果为一波段则结果为b1 b1 所对应的文件的全部波段分别和所对应的文件的全部波段分别和b2b2、b3 b3 进行求和。进行求和。14.114.1波段运算波段运算ENVI/IDL2 2、Band MathBand Math工具工具要在要在ENVI ENVI 中运用波段运算工具:选择中运用波段运算工具:选择Basic Tools Band MathBasic Tools Band Math。将出现。将出现Band Band Math Math 对话框,以上面的波段求和为例,说对话框,以上面的波段
4、求和为例,说明运用方法。明运用方法。输入输入b1+b2+b3b1+b2+b3,点击,点击add to listadd to list添加到以添加到以前的前的band math band math 表达式中,点击表达式中,点击okok弹出变弹出变量赋值对话框,如右图。量赋值对话框,如右图。留意,一旦一个波段选中,则另外所选波留意,一旦一个波段选中,则另外所选波段确定要与第一个波段具有相同的行列。段确定要与第一个波段具有相同的行列。14.114.1波段运算波段运算可用波段列表,用于变量的赋值可用波段列表,用于变量的赋值表达式中的变量以及赋值状况表达式中的变量以及赋值状况ENVI/IDL3 3、运用
5、波段运算须要满足、运用波段运算须要满足4 4 个基本条件:个基本条件:1 1)必需符合必需符合IDL IDL 语言书写波段运算表达式语言书写波段运算表达式所定义的处理算法或波段运算表达式必需满足所定义的处理算法或波段运算表达式必需满足IDL IDL 语法。不过,语法。不过,书写简洁的波段运算表达式无须具备书写简洁的波段运算表达式无须具备IDL IDL 的基本学问,但是假的基本学问,但是假如所感爱好的处理须要书写困难的表达式,建议学习用于波段如所感爱好的处理须要书写困难的表达式,建议学习用于波段运算的运算的IDL IDL 学问。学问。2 2)全部输入波段必需具有相同的空间大小)全部输入波段必需具
6、有相同的空间大小由于波段运算表达式是依据由于波段运算表达式是依据pixel-for-pixel pixel-for-pixel 原理作用于波段原理作用于波段的,因此输入波段在行列数和像元大小必需相同。的,因此输入波段在行列数和像元大小必需相同。14.114.1波段运算波段运算ENVI/IDL3 3)表达式中的全部变量都必需用)表达式中的全部变量都必需用BnBn(或(或bnbn)命名表达式中代)命名表达式中代表输入波段的变量必需以字母表输入波段的变量必需以字母“b”“b”或或“B”“B”开头,后跟开头,后跟5 5 位以位以内的数字。例如:对内的数字。例如:对3 3 个波段进行求和运算的有效表达式
7、可以个波段进行求和运算的有效表达式可以用以下用以下3 3 种方式书写:种方式书写:b1+b2+b3b1+b2+b3B1+B11+B111B1+B11+B111B1+b2+B3B1+b2+B34.4.波段运算表达式所生成的结果必需在行列数方面与输入波波段运算表达式所生成的结果必需在行列数方面与输入波段相同。段相同。14.114.1波段运算波段运算ENVI/IDL4 4、用于波段运算的、用于波段运算的IDL IDL 学问学问波段运算的强大功能是由波段运算的强大功能是由IDL IDL 的功能、速度和灵敏性所供应的。但是要娴的功能、速度和灵敏性所供应的。但是要娴熟运用波段运算功能,并不须要成为一个熟悉
8、熟运用波段运算功能,并不须要成为一个熟悉IDL IDL 编程的专家。下面的学编程的专家。下面的学问可以帮助娴熟运用波段运算功能并避开一些常常出现的问题。问可以帮助娴熟运用波段运算功能并避开一些常常出现的问题。1 1)数据类型数据类型IDL IDL 中的数学运算与简洁的运用计算器进行运算是有确定差别的。要重视中的数学运算与简洁的运用计算器进行运算是有确定差别的。要重视输入波段的数据类型和表达式中所应用的常数。每种数据类型输入波段的数据类型和表达式中所应用的常数。每种数据类型尤其是尤其是非浮点型的整型数据都包含一个有限的数据范围。例如:字节型数据表示非浮点型的整型数据都包含一个有限的数据范围。例如
9、:字节型数据表示的值仅为的值仅为0-2550-255,假如对两个字节型数据波段求和(,假如对两个字节型数据波段求和(b1+b2b1+b2)并且其值大)并且其值大于于255255,那么得到的结果将与期望值不等。当一个值大于某个数据类型所,那么得到的结果将与期望值不等。当一个值大于某个数据类型所能容纳的值的范围时,该值将会溢出(能容纳的值的范围时,该值将会溢出(overflowoverflow)并从头起先计算,例如:)并从头起先计算,例如:将字节型数据将字节型数据250 250 和和10 10 求和,结果为求和,结果为4 4。14.114.1波段运算波段运算ENVI/IDL类似的状况常常会在波段运
10、算中遇到,因为遥感影像通常会被存储为字节类似的状况常常会在波段运算中遇到,因为遥感影像通常会被存储为字节型或整型。要避开数据溢出,可以运用型或整型。要避开数据溢出,可以运用IDL IDL 中的一种数据类型转换功能对中的一种数据类型转换功能对输入波段的数据类型进行转换。例如:在对两个字节型图像波段求和时,输入波段的数据类型进行转换。例如:在对两个字节型图像波段求和时,假如运用假如运用IDL IDL 函数函数FIXFIX()将数据类型转换为整型,就可以得到正确的结()将数据类型转换为整型,就可以得到正确的结果。例如果。例如fixfix(b1b1)+b2+b2有人可能会问:既然浮点型数据可以表示全部
11、的数据值,为什么不在全部有人可能会问:既然浮点型数据可以表示全部的数据值,为什么不在全部的计算中都运用浮点型数据呢?这是因为一个数据所能表现的动态数据范的计算中都运用浮点型数据呢?这是因为一个数据所能表现的动态数据范围越大,它占用的磁盘空间越多。例如:字节型数据的一个像元仅占用围越大,它占用的磁盘空间越多。例如:字节型数据的一个像元仅占用1 1 个字节;整型数据的一个像元占用个字节;整型数据的一个像元占用2 2 个字节;浮点型数据的一个像元占用个字节;浮点型数据的一个像元占用4 4 个字节。浮点型结果将比整型结果多占用一倍的磁盘空间。关于个字节。浮点型结果将比整型结果多占用一倍的磁盘空间。关于
12、IDLIDL数数据类型的占用磁盘空间和数据范围的具体介绍,参考下表。据类型的占用磁盘空间和数据范围的具体介绍,参考下表。14.114.1波段运算波段运算ENVI/IDL2 2)IDL IDL 数据类型的动态变换数据类型的动态变换IDL IDL 的数据类型转换功能,例如:的数据类型转换功能,例如:fixfix()不是唯一对波段运算结果的数()不是唯一对波段运算结果的数据类型进行转换的方法。这是因为据类型进行转换的方法。这是因为IDL IDL 的数据类型是可以动态变换的,也的数据类型是可以动态变换的,也就是说就是说IDL IDL 能够将表达式中的数据类型转换为它在表达式中所遇到的最高能够将表达式中
13、的数据类型转换为它在表达式中所遇到的最高数据类型。由于一些数字(例如:小的整型数据)可以运用几种不同的数数据类型。由于一些数字(例如:小的整型数据)可以运用几种不同的数据类型表示出来,因此据类型表示出来,因此IDL IDL 必需制定某些默认规则对这些数据进行解译。必需制定某些默认规则对这些数据进行解译。例如:不包含小数点的数据,即使它仅包含字节型的动态范围,也将被解例如:不包含小数点的数据,即使它仅包含字节型的动态范围,也将被解译为整型数据。例如:假如想为一幅字节型数据图像加译为整型数据。例如:假如想为一幅字节型数据图像加5 5,并且运用如下,并且运用如下的波段运算表达式:的波段运算表达式:B
14、1+5B1+5数据数据5 5 将被说明为将被说明为2 2 个字节的整型数据,因此波段运算结果将被提升为整个字节的整型数据,因此波段运算结果将被提升为整型数据图像(占用字节型图像的两倍磁盘空间)。假如想保持结果为字节型数据图像(占用字节型图像的两倍磁盘空间)。假如想保持结果为字节型图像,可以运用数据类型计算函数型图像,可以运用数据类型计算函数bytebyte():():b1+byteb1+byte(5 5)或运用)或运用IDL IDL 中将整型数据转换为字节型数据的缩写:中将整型数据转换为字节型数据的缩写:b1+5Bb1+5B在数据后紧跟一个字母在数据后紧跟一个字母B B 表示将该数据解译为字节
15、型数据。假如在波段运表示将该数据解译为字节型数据。假如在波段运算表达式中常常运用常数,这些类似的缩写是很有用的。算表达式中常常运用常数,这些类似的缩写是很有用的。14.114.1波段运算波段运算ENVI/IDL3 3)留意操作依次留意操作依次在波段运算过程中,是依据数学运算符的优先级对表达式进行处在波段运算过程中,是依据数学运算符的优先级对表达式进行处理,而不是依据运算符的出现依次。运用圆括号可以更改操作依理,而不是依据运算符的出现依次。运用圆括号可以更改操作依次,系统最先对嵌套在表达式最内层的部分进行操作。具有相同次,系统最先对嵌套在表达式最内层的部分进行操作。具有相同优先级的运算符依据它们
16、在表达式中出现的依次进行操作。例如:优先级的运算符依据它们在表达式中出现的依次进行操作。例如:5+3*25+3*2考虑表达式(用常数代替波段)考虑表达式(用常数代替波段)求得的值为求得的值为1111,因为,因为乘号运算符的优先级高(乘号运算符的优先级高(5+35+3)*2*2 求得的值为求得的值为1616,因为圆括,因为圆括号变更了操作依次将优先级的依次与数据类型的动态变换结合起号变更了操作依次将优先级的依次与数据类型的动态变换结合起来时,假如操作不当,也将变更表达式的运算结果。要确保将表来时,假如操作不当,也将变更表达式的运算结果。要确保将表达式中的数据提升为适当的数据类型,从而避开数据的溢
17、出或在达式中的数据提升为适当的数据类型,从而避开数据的溢出或在处理整型除法时出现错误。例如,考虑如下示例:处理整型除法时出现错误。例如,考虑如下示例:floatfloat(5 5)+10/3 10/3 全部的常数都为整型,但全部的常数都为整型,但floatfloat()函数将结果转换为浮()函数将结果转换为浮点型数据,由于除号的优先级高于加号,因此先以整型数据进行点型数据,由于除号的优先级高于加号,因此先以整型数据进行除法运算,将结果与被转换为浮点型数据的除法运算,将结果与被转换为浮点型数据的5 5 相加得到一个浮点相加得到一个浮点型结果型结果8.08.0,而不是所期望的结果,而不是所期望的结
18、果8.38.3。假如是。假如是5+10/5+10/floatfloat(3 3),将数据类型转换函数移到除法运算中,将得到期,将数据类型转换函数移到除法运算中,将得到期望的结果望的结果8.38.3。14.114.1波段运算波段运算ENVI/IDL4 4)避开在所用的)避开在所用的IDL IDL 函数中同时调用全部图像数据函数中同时调用全部图像数据犹如其他全部犹如其他全部ENVI ENVI 程序一样,波段运算处理也是分块进行的。这意味着假如程序一样,波段运算处理也是分块进行的。这意味着假如被处理的图像大于在参数设置中被指定的局部(被处理的图像大于在参数设置中被指定的局部(tiletile)尺寸,
19、运算将被分解为)尺寸,运算将被分解为更小的部分,系统对每一部分进行单独处理,然后再重新组合起来。当运用的更小的部分,系统对每一部分进行单独处理,然后再重新组合起来。当运用的IDL IDL 函数同时须要调用全部图像数据时,由于波段运算表达式是对每一部分数函数同时须要调用全部图像数据时,由于波段运算表达式是对每一部分数据进行单独处理的,这种处理方法将会产生问题。据进行单独处理的,这种处理方法将会产生问题。例如,在运用求取数组中的最大值的例如,在运用求取数组中的最大值的IDL IDL 函数函数MAXMAX()时:()时:b1/maxb1/max(b1b1)假如波段运算是分块进行的,则每一个部分除以的
20、值是该部分的最大值,而不假如波段运算是分块进行的,则每一个部分除以的值是该部分的最大值,而不是整个波段的最大值。假如发觉波段运算结果中有较宽的水平条带,那很有可是整个波段的最大值。假如发觉波段运算结果中有较宽的水平条带,那很有可能是由于分块处理造成的,因为图像是水平分块的。要避开同时调用全部图像能是由于分块处理造成的,因为图像是水平分块的。要避开同时调用全部图像数据的数据的IDL IDL 函数还包括:函数还包括:MAXMAX、MINMIN、MEANMEAN、MEDIANMEDIAN、STDDEVSTDDEV、VARIANCE VARIANCE 和和TOTALTOTAL。在多数状况下,运用。在多
21、数状况下,运用BYTSCL BYTSCL 函数也比较困难,但是假如先知道了输入函数也比较困难,但是假如先知道了输入波段的数据范围,可以将波段的数据范围,可以将BYTSCL BYTSCL 函数与函数与MIN MIN 和和MAX MAX 关键字合并起来运用。关键字合并起来运用。14.114.1波段运算波段运算ENVI/IDL5 5)充分利用)充分利用IDL IDL 功能强大的数组运算符功能强大的数组运算符IDL IDL 的数组运算符不但便于运用而且功能强大。它们允许对图像中的每一个像的数组运算符不但便于运用而且功能强大。它们允许对图像中的每一个像元进行单独检验和处理,而且避开了元进行单独检验和处理
22、,而且避开了FOR FOR 循环的运用(不允许在波段运算中运循环的运用(不允许在波段运算中运用)。数组运算符包含关系运算符(用)。数组运算符包含关系运算符(LTLT、LELE、EQEQ、NENE、GEGE、GTGT)、)、Boolean Boolean 运运算符(算符(ANDAND、OROR、NOTNOT、XORXOR)和最小值、最大值运算符()和最小值、最大值运算符()。这些特殊的)。这些特殊的运算符对图像中的每个像元同时进行处理,并将结果返还到与输入图像具有相运算符对图像中的每个像元同时进行处理,并将结果返还到与输入图像具有相同维数的图像中。同维数的图像中。例如:要找出全部负值像元并用值例
23、如:要找出全部负值像元并用值-999-999 代替它们,可以运用如下的波段运算代替它们,可以运用如下的波段运算表达式:(表达式:(b1 lt 0b1 lt 0)*(-999-999)+(b1 ge 0b1 ge 0)*b1*b1关系运算符对真值(关系成立)返回值为关系运算符对真值(关系成立)返回值为1 1,对假值(关系不成立)返回值为,对假值(关系不成立)返回值为0 0。系统读取表达式(。系统读取表达式(b1 lt 0b1 lt 0)部分后将返还一个与)部分后将返还一个与b1 b1 维数相同的数组,其中维数相同的数组,其中b1 b1 值为负的区域值为值为负的区域值为1 1;其他部分值为;其他部
24、分值为0 0,因此在乘以替换值,因此在乘以替换值-999-999 时,相当于时,相当于只对那些满足条件的像元有影响。只对那些满足条件的像元有影响。其次个关系运算符(其次个关系运算符(b1 ge 0b1 ge 0)是对第一个的补充)是对第一个的补充找出那些值为正或找出那些值为正或0 0 的的像元,乘以它们的初始值,然后再加入替换值后的数组中。类似的运用数组运像元,乘以它们的初始值,然后再加入替换值后的数组中。类似的运用数组运算符的表达式为波段运算供应了很强的灵敏性。算符的表达式为波段运算供应了很强的灵敏性。14.114.1波段运算波段运算ENVI/IDL5 5、波段运算表达式典型例子、波段运算表
25、达式典型例子(1 1)避开整型数据除法避开整型数据除法当对整型数据波段进行除法运算时,运算结果不是被向当对整型数据波段进行除法运算时,运算结果不是被向上或向下取整,而是干脆被简洁地舍去(小数点后面的上或向下取整,而是干脆被简洁地舍去(小数点后面的数据被舍弃)。要避开这种状况发生,通常将数据类型数据被舍弃)。要避开这种状况发生,通常将数据类型提升为浮点型。提升为浮点型。b1/floatb1/float(b2b2)假如想将除法数据结果保持为整型,最好先将数据转换假如想将除法数据结果保持为整型,最好先将数据转换为浮点型进行除法运算,然后再将结果转换为所需的数为浮点型进行除法运算,然后再将结果转换为所
26、需的数据类型。例如:假如输入波段为字节型,想将结果取整据类型。例如:假如输入波段为字节型,想将结果取整并存储为整型数据,运用下面的表达式:并存储为整型数据,运用下面的表达式:fixfix(ceilceil(b1/floatb1/float(b2b2)14.114.1波段运算波段运算ENVI/IDL(2 2)避开整型运算溢出避开整型运算溢出整型数据包含一个动态的数据范围。假如波段运算将生整型数据包含一个动态的数据范围。假如波段运算将生成的数据相当大或相当小,无法以输入波段的数据类型成的数据相当大或相当小,无法以输入波段的数据类型表示出来,要留意提升相应的数据类型。例如:假如示表示出来,要留意提升
27、相应的数据类型。例如:假如示例表达式中的波段例表达式中的波段b1 b1 和和b2 b2 为字节型数据,生成结果的为字节型数据,生成结果的最大值可能为(最大值可能为(256*256256*256)=65,025=65,025。由于字节型数据所。由于字节型数据所能表示的最大值为能表示的最大值为255255,因此结果的数据类型只有被转,因此结果的数据类型只有被转换为换为16-bit16-bit无符号整型才能返回正确的值,否则,大于无符号整型才能返回正确的值,否则,大于255 255 的值将溢出,并记录一个错误的值。可以运用如下的值将溢出,并记录一个错误的值。可以运用如下表达式避开溢出表达式避开溢出u
28、nitunit(b1b1)*b2*b214.114.1波段运算波段运算ENVI/IDL(3 3)生成融合图像生成融合图像波段运算为多幅图像的融合供应了简洁的方法。例如:假如波段运算为多幅图像的融合供应了简洁的方法。例如:假如b1 b1 和和b2 b2 为字节型数据,下面的表达式将生成一幅新的字节图像,为字节型数据,下面的表达式将生成一幅新的字节图像,b2 b2 所占权重为所占权重为0.80.8,b1 b1 所占权重为所占权重为0.20.2。bytebyte(roundround(0.2*b10.2*b1)+(0.8*b20.8*b2)roundround为整型取为整型取整整(4 4)运用数组运
29、算符对图像进行选择性更改运用数组运算符对图像进行选择性更改波段运算为图像的选择性更改和来自多幅图像的数据结合供应了波段运算为图像的选择性更改和来自多幅图像的数据结合供应了简洁的方法。在下面的示例中,把两幅图像结合起来进行处理,简洁的方法。在下面的示例中,把两幅图像结合起来进行处理,从而从影像中消退云的影响。在图像从而从影像中消退云的影响。在图像b1 b1 中,像元值大于中,像元值大于200 200 的的像元被认为是云,希望用图像像元被认为是云,希望用图像b2 b2 中的相应像元对它们进行替换。中的相应像元对它们进行替换。(b1 gt 200b1 gt 200)*b2+*b2+(b1 le 20
30、0b1 le 200)*b1*b114.114.1波段运算波段运算ENVI/IDL下面的示例是一个较为困难的表达式,但是所运用的数组运算符与前面的示例下面的示例是一个较为困难的表达式,但是所运用的数组运算符与前面的示例大同小异。该表达式运用几个标准来生成一幅二进制掩膜图像,用于识别主要大同小异。该表达式运用几个标准来生成一幅二进制掩膜图像,用于识别主要为云的像元。该算法实际应用于从来自为云的像元。该算法实际应用于从来自AVHRR AVHRR 的经过定标的日间图像中生成云的经过定标的日间图像中生成云的掩膜图像。在该表达式中,的掩膜图像。在该表达式中,b4b4(热红外波段)值必需为负,或(热红外波
31、段)值必需为负,或b2b2(反射波段)(反射波段)值必需大于值必需大于0.65 0.65 并且并且b3 b3 和和b4b4(中红外和热红外波段)的差值必需大于(中红外和热红外波段)的差值必需大于15 15 度。度。由于关系运算符为真值(关系成立)返回由于关系运算符为真值(关系成立)返回1 1 值,因此生成的掩膜图像在有云处值,因此生成的掩膜图像在有云处值为值为1 1,在其他区域值为,在其他区域值为0 0。(b4 lt 0b4 lt 0)oror(b2 gt 0.65b2 gt 0.65)ANDAND(b3 b4b3 b4)gt 15gt 1514.114.1波段运算波段运算ENVI/IDL(5
32、 5)最小值和最大值运算符的运用最小值和最大值运算符的运用最小值和最大值运算符也是数组的基础运算符,但与关最小值和最大值运算符也是数组的基础运算符,但与关系运算符或系运算符或Boolean Boolean 运算符不同的是:它们不返还真值运算符不同的是:它们不返还真值或假值,而返还实际的最小值和最大值。在下面的示例或假值,而返还实际的最小值和最大值。在下面的示例中,对于图像中的每一个像元,中,对于图像中的每一个像元,0 0、b2 b2 或或b3 b3 中的最大中的最大值将被加到值将被加到b1 b1 中,该表达式确保加到中,该表达式确保加到b1 b1 中的值始终为中的值始终为正。正。b1+b1+(
33、0 b2 b30 b2 b3)14.114.1波段运算波段运算ENVI/IDLSpectral MatSpectral Mat功能是一种灵敏的波谱处理工具,它允许用数学表达式或功能是一种灵敏的波谱处理工具,它允许用数学表达式或IDL IDL 程程序对波谱(以及选择的多波段图像)进行处理。波谱可以来自一幅多波段图像序对波谱(以及选择的多波段图像)进行处理。波谱可以来自一幅多波段图像(即一个(即一个Z Z 剖面)、波谱库或剖面)、波谱库或ASCII ASCII 文件。假如已经打开了一幅或多幅图像,文件。假如已经打开了一幅或多幅图像,且波段数与其中一个显示的波谱的维数相匹配,这些图像也可以被处理。假
34、如且波段数与其中一个显示的波谱的维数相匹配,这些图像也可以被处理。假如波段数和波谱维数相匹配,波谱运算也可以将数学表达式应用到多波段图像的波段数和波谱维数相匹配,波谱运算也可以将数学表达式应用到多波段图像的全部波段中去。全部波段中去。留意:变量名必需以字母留意:变量名必需以字母“s”“s”或或“S”“S”开头,后面跟着开头,后面跟着5 5 个以内的数字字符。个以内的数字字符。S1S1可以是一条光谱曲线,也可以是一个多波段图像文件(其实是每个像素点的可以是一条光谱曲线,也可以是一个多波段图像文件(其实是每个像素点的z z剖面)剖面)留意:要进行波谱运算,必需在图表窗口中打开至少一个波谱。每个被处
35、理的留意:要进行波谱运算,必需在图表窗口中打开至少一个波谱。每个被处理的波谱必需被显示。波谱必需被显示。14.2 14.2 波谱运算波谱运算ENVI/IDL下面以下面以(s1+s2+s3)/3(s1+s2+s3)/3为例演示如何运用波谱计算为例演示如何运用波谱计算选择选择Spectral Spectral MathSpectral Spectral Math。将出现。将出现Spectral Math Spectral Math 对话框。假如正在处对话框。假如正在处理波谱或图像的一个二维数组,假定结果可以表达为一个矢量(一个一维数组)理波谱或图像的一个二维数组,假定结果可以表达为一个矢量(一个一维数组),则对话框允许应用任何有效的,则对话框允许应用任何有效的IDL IDL 数学表达式、函数或程序对波谱进行处理。数学表达式、函数或程序对波谱进行处理。具体的运算符如图所示具体的运算符如图所示14.114.1波段运算波段运算ENVI/IDL14.114.1波段运算波段运算可用波谱列表,用于变量的赋值可用波谱列表,用于变量的赋值表达式中的变量以及赋值状况表达式中的变量以及赋值状况结果输出可以为同样的窗口,也可以是新窗口结果输出可以为同样的窗口,也可以是新窗口假如在变量赋值时,选了了一个图像,则结果假如在变量赋值时,选了了一个图像,则结果为一个新图像为一个新图像