ENVI用户指南目录及NDVI

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ENVI⽤户指南⽬录及NDVI
ENVI⽤户指南
第⼀章:ENVI 概述(2)
第⼆章⽂件存取与显⽰(12)
第三章:ENVI 交互功能(52)
第四章:基本⼯具(132)
第五章:Utilities (⼯具)(152)
第六章:Transforms (变换) (202)
第七章:Filtering (滤波)(223)
第⼋章:Classification (分类)(237)
第九章:配准和镶嵌(258)
第⼗章:Spectral Tools (光谱⼯具)(285)
第⼗⼀章:Radar Tools (雷达⼯具)(319)
第⼗⼆章:System 功能(343)
148.波段数学(Band Math)
Band Math TM功能允许你处理导致单个波段输出的复杂表达式。

这些数学表达式也可以应⽤于⼀个多波段⽂件中的所有波段,providing “File Math”。

关于使⽤波段数学的更多信息,请参阅ENVI Programmer’s Guide 第29 页的“Band Math Basics”。

可利⽤波段数学功能(Available Band Math Functions)
Band Math 功能为⽤户提供⼀个灵活的图像处理⼯具,其中许多功能是⽆法在任何其它的图像处理系统中获得的。

该功能的能⼒与IDL 语⾔的能⼒直接相关。

可⽤的函数包括但不仅限于表4-2 中列出的数学表达式。

表4-2: ⼀些可⽤的波段数学函数。

注意
⼀些有效的IDL 表达式要求整个输⼊数组存在于内存中,它可以不必与ENVI tiling 操作相兼容。

Band Math 对话框
1. 选择Basic Tools > Band Math.
将出现Band Math 对话框。

假如运算结果是⼀个⼆维数组,它将接受任何有效的IDL 数学表达式、函数或程序。

2. 在标签为“E nter an expression:” 的⽂本框内,输⼊变量名(将被赋值到整个图像波段或可能应⽤到⼀个多波段⽂件中的每个波段)和所需要的数学运算符。

变量名必须以字符“b”或“B” 开头,后⾯跟着 5 个以内的数字字符。

实例:
若你想计算三个波段的平均值,数学⽅程式:
(float(b1)+float(b2)+float(b3))/3.0
可以输⼊到⽂本框中。

该表达式中使⽤的三个变量,“b1”是第⼀个变量,“b2”是第⼆个变量,“b3”是第三个变量。

注意,在本
例中,IDL 的浮点型函数⽤来防⽌计算时出现字节溢出错误。

3. ⼀旦⼀个有效的表达式被输⼊,点击“OK”处理。

将出现Variable/Band Name Pairings 对话框。

请参见以下部分。

·要重新使⽤、保存或取消任何以前应⽤的数学表达式:
1. 点击显⽰在“Previous Expression:” 列表中的任何表达式,把它导⼊到“Enter an expression:” ⽂本区中。

2. ⼀旦被导⼊,点击“OK”,把该表达式应⽤到⼀组新的波段。

将出现Variable/Band Name Pairings 对话框。

请见下列的详细向导。

·要把表达式保存到⼀个输出⽂件,点击“Save”,然后当出现Enter Output Filename 对话框时,键⼊输出⽂件名。

为了保持⼀致,输出⽂件名应该指定扩展名为.exp 。

·要恢复原先保存的表达式,点击“Restore”,然后选择适当的⽂件名。

该表达式将显⽰在“Previous Expression:” 列表中。

·要清除所有原先的表达式,点击“Clear”。

图4-13: Band Math 对话框。

Variable/Band Name Pairings 对话框
Variable/Band Name Pairings 对话框允许你从⼀个输⼊波段列表中,把波段赋值给输⼊在“E nter an expression:” ⽂本框中的变量。

·要把⼀个值赋给原先实例中的变量“b1”:
1. 在标签为“Variables used in expression:”的⽂本框内,点击表达式“B1”。

2. 在标签为“可利⽤波段列表:” 的列表中,点击所需要的波段。

注意,⼀旦第⼀个波段被选择,只有那些相同空间⼤⼩的波段被显⽰在波段列表中。

3. 按照同种⽅法,为“B2”、“B3”等赋予⼀个值。

·要把⼀个多波段图像赋值给⼀个或所有变量:
1. 点击“Map variable to Input file”。

2. 使⽤标准的ENVI ⽂件选择步骤,选择⼀个⽂件(这可视为“File Math”)。

所选择的⽂件可以是光谱⼦集,但是若⼀个以上的⽂件被使⽤,它们必须有相同的波段数。

通过数学表达式修改的⽂件数学(file math),⼀个多波段输出图像产⽣。

3. ⼀旦所有变量被定义,标准的ENVI 输出对话框显⽰在Variable/Bands Pairings 对话框的底部。

·要选择⼀个空间⼦集:
1. 点击“Spatial Subset”。

2. 将出现标准的File Spatial Subset 对话框(第145 的“Standardized ENVI Spatial Subsetting”)。

系统默认值被设置为处理整个空间场景。

·要把结果输出到⼀个⽂件或内存,选择“File” 或“Memory”切换按钮。

·若选择输出到⼀个⽂件,键⼊⼀个输出⽂件名,或使⽤“Choose” 按钮选择⼀个⽂件名,然后点击“OK”。

结果图像被显⽰在可利⽤波段列表中。

运⽤IDL 程序和波段数学功能
由于ENVI 为你提供对IDL 性能的访问,你可以使⽤内置的IDL 功能部件的能⼒、IDL ⽤户函数,或书写你⾃⼰的程序执⾏⾃定义的操作。

这些函数的唯⼀要求是它们接受⼀个或多个图像阵列作为输⼊,并且它们输出⼀个单波段⼆维数组的计算结果。

这些函数必须保存在IDL 路径列表内的⼀个⽬录下,以便它们将⾃动编译。

通过使⽤ENVI 主菜单System
下拉菜单下的Compile Module选项(见ENVI Programmer’s Guide第23 页的“Incorporating New Routines”),也可以对它们进⾏编译。

以下是⽤户波段数学功能的⼀些简单的实例。

要获得更多关于使⽤波段数学执⾏⽤户⾃定义程序的信息,请参阅ENVI Programmer’s Guide 第29 页的“Band Math Basics”和ENVI ⽤户函数指南。

波段数学⽤户函数 1
下⾯的实例是⼀个⾮常简单的⾃定义波段数学函数,它把两个波段相加。

下⾯的程序⽂本可以在⼀个⽂本编辑器中输⼊,并⽤⽂件名user_bm1.pro 来保存:
实例:
FUNCTION user_bm1,b1,b2
RETURN,b1+b2
END
要从Band Math “Enter an expression:”⽂本框中调⽤该函数,使⽤语法:
user_bm1(b1,b2)
波段数学⽤户函数 2
下⾯的实例是⼀个⾃定义的波段数学函数,它把⼀个变量的数据类型转换为字节型,并将数值倒置(inverts the values)。

下⾯的程序⽂本可以在⼀个⽂本编辑器中输⼊,并⽤⽂件名user_bm2.pro保存:
实例:
FUNCTION user_bm2, b1
lut = 255 - BINDGEN(256)
b1 = BYTSCL(b1)
b1 = lut(b1)
RETURN, b1
END
要从Band Math “Enter an expression:”⽂本框中调⽤该函数,使⽤语法:user_bm2(b1)
波段数学⽤户函数 3
下⾯的实例是⼀个⾃定义的波段数学函数,当b1⾮零时,它⽤变量b2 的值代替变量b1。

这⼀函数对分类图象⾮常有⽤,它⽤于将另⼀幅图象的像元代替分类的像元。

下⾯的程序⽂本可以在⼀个⽂本编辑器中输⼊,并⽤⽂件名user_bm3.pro 来保存:
实例:
FUNCTION user_bm3, b1, b2
b1 = (b1 NE 0)*b2
RETURN, b1
END
要从Band Math “Enter an expression:”⽂本框中调⽤该函数,使⽤语法:user_bm3(b1,b2)
波段数学⽤户函数 4
下⾯的实例是⼀个⾃定义的波段数学函数,它计算归⼀化差值植被指数(Normalized Difference Vegetation
Index,NDVI),并把它缩放到字节数据范围。

注意,“min”和“max”关键字在函数中是必需的,以确保同样的最⼩和最⼤值被⽤于缩放⼀个tiled图像中所有的tiles。

对于变量b1,应该使⽤⼀个0.8 µm 附近的红外图像波段,⽽对于变量b2,应该使⽤⼀个0.6 µm 附近的“红”波段。

下⾯的程序⽂本可以在⼀个⽂本编辑器中输⼊,并保存为user_bm4.pro:
实例:
FUNCTION user_bm4, b1,b2
b1=bytscl ((float(b1) - b2) / (float(b1)+b2), min=-1.0,max=1.0)
RETURN, b1
END
要从Ban d Math “Enter an expression:”⽂本框中调⽤该函数,使⽤语法:user_bm4(b1,b2)
拉伸数据(Stretch Data)
Stretch Data 选项允许你执⾏⽂件-⽂件的对⽐度拉伸。

数据拉伸功能是⽤于更改⼀个给定输⼊⽂件数据范围的⼀种灵活⽅法。

你可以完全控制输⼊和输出直⽅图,以及输出数据类型(字节型、整型、浮点型等)。

关于交互式拉伸的信息,请见第187 页的“Interactive Stretching”。

1. 选择Basic Tools > Stretch Data.
出现Data Stretching Input File 对话框。

使⽤该对话框,通过使⽤标准的ENVI 输⼊⽂件⼩部件选择输⼊的数据⽂件。

2. 从标签为“Select Input File”的列表中,选择⼀个⽂件名。

该⽂件特征的细节,显⽰在标签为“File Information:” 的⽂本⼩部件内。

3. ⼀旦被选择,你可以⽤标准⽅式点击适当的⼦集按钮,选择⼀个空间或光谱⼦集。

4. ⼀旦⽂件被选择并按需要构造了⼦集,点击“OK” ,继续。

出现Data Stretching 对话框。

5. 在标签为“Min”和“Max”的⽂本框中,分别输⼊所需要的最⼩和最⼤值,控制输⼊数据的范围。

6. 使⽤窗⼝顶部的切换按钮,按百分⽐或按数值(by value)来选择数值。

7. 通过选择适当的切换按钮,选择拉伸类型(“Linear”、“E qualize”(直⽅图均衡)、“Gaussian” 和“Square Root”)。

8. 在“Output Data” 标签下的“Min” 和“Max”⽂本⼩部件内,设置输出数据范围。

在这⾥输⼊的值必须和从“Data Type” 菜单选择的数据类型的范围相匹配。

若输⼊了溢出值,低值将被⾃动地纠正到所选择数据类型的最⼩值,⾼值被⾃动地纠正到最⼤值。

9. 从“D ata Type” 菜单,选择适当的数据类型(byte < 字节型> ,integer < 整型> ,unsigned integer < ⽆符号整型> ,long integer < 长整型> ,unsigned long integer < ⽆符号长整型> ,floating point < 浮点型> ,double precision < 双精度型>
,complex < 复型> 或double complex < 双精度复型>。

图4-14: Data Stretching 对话框。

10. 在标签为“Output Filename” 的⽂本⼩部件中,键⼊输出⽂件名,然后按回车键。

11. ⼀旦所有的参数被正确地输⼊,点击“OK” ,启动处理。

若不存在所选择的输⼊⽂件的统计信息⽂件,在数据拉伸前,先计算图像的统计信息,并且当⼀个滑动条从0 到100%移动时,⼀个标签为“I mage Statistics” 的⼩窗⼝显⽰处理完成量的百分⽐。

若⼀个统计信息⽂件已经存在(或⼀旦图像的统计信息已经被计算),另⼀个标签为“Data Sretching” 的⼩窗⼝显⽰数据拉伸完成量的百分⽐。

221. NDVI(归⼀化差值植被指数)
NDVI(Normalized Difference Vegetation Index) 是⼀个普遍应⽤的植被指数,将多光谱数据变换成唯⼀的图像波段显⽰植被分布。

NDVI 值指⽰着像元中绿⾊植被的数量,较⾼的NDVI 值预⽰着较多的绿⾊植被。

NDVI 变换可以⽤于AVHRR、Landsat MSS、Landsat TM、SPOT 或AVIRIS 数据,也可以输⼊其他数据类型的波段来使⽤。

更多的信息,请参阅下列参考书:
Jensen, J. R., 1986. Introductory Digital Image Processing, Prentice-Hall, New Jersey, 379 p.
1 选择Transforms > NDVI (Vegetation Index)。

2 出现NDVI Calculation Input File 窗⼝时,选择输⼊⽂件。

(若需要)⽤标准ENVI ⽂件选择程序输⼊⽂件或空间⼦集。

3 点击“OK”。

4 通过点击“Input File Type”下拉菜单,⽤NDVI Calculation Parameters 对话框,说明你已经输⼊的⽂件类型(TM, MSS, AVHRR 等)。

⽤于计算NDVI的波段将⾃动输⼊到“Red”和“Near IR”⽂本框。

·要计算下拉菜单中没有列出的传感器类型的NDVI,在“Red”和“Near IR”⽂本框⾥输⼊需要的波段数。

5 ⽤“Output Data Type”下拉菜单选择输出类型(字节型或浮点型)。

6 选择输出到“File”或“Memory”。

·若选择输出到“File”,在标有“Enter Output Filename”的⽂本框⾥键⼊要输出的⽂件名;或⽤“Choose”按钮选择⼀个输出⽂件名。

7 点击“OK”开始计算NDVI 变换。

变换正在进⾏时,屏幕上出现⼀条状态信息。

完成时,ENVI 将NDVI 波段名输⼊到Available Bands List 中,在那⾥可以⽤标准ENVI ⽅法显⽰。

相关文档
最新文档