波段运算(bandmath)工具中常用的函数
分享
BandMath工具能够方便的执行图像中各个波段的加、减、乘、除、三角函数、指数、对数等数学函数计算,也可以使用IDL编写的函数。BandMath工具使用函数都是基于IDL的数据组运算符。
IDL的数组运算符使用方便且功能强大。它们可以对图像中的每一个像元进行单独检验和处理,而且避免了FOR循环的使用(不允许在波段运算中使用)。数组运算符包含关系运算符(LT、LE、EQ、NE、GE、GT)、Boolean运算符(AND、OR、NOT、XOR)和最小值、最大值运算符(<、>)。这些特殊的运算符对图像中的每个像元同时进行处理,并将结果返还到与输入图像具有相同维数的图像中。例如:要找出所有负值像元并用值-999代替它们,可以使用如下的波段运算表达式:
(b1 lt 0)*(-999)+(b1 ge 0)* b1
关系运算符对真值(关系成立)返回值为1,对假值(关系不成立)返回值为0。系统读取表达式(b1 lt 0)部分后将返还一个与b1维数相同的数组,其中b1值为负的区域返回值为1;其他部分返回值为0,因此在乘以替换值-999时,相当于只对那些满足条件的像元有影响。第二个关系运算符(b1 ge 0)是对第一个的补充——找出那些值为正或0的像元,乘以它们的初始值,然后再加入替换值后的数组中。这个用法可以扩展到两个图像中,比如图像1中值大于220(有云部分)用图像2中对应的像素值代替,其余保留图像1中的值,表达式就可以写成:
(b1 lt 220)*b2+(b1 le 220)* b1
类似的使用数组运算符的表达式为波段运算提供了很强的灵活性。下表中描述了BandMath工具中常用的IDL数组操作函数,详细介绍,请参阅《IDL Reference Guide》。
文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0100zi01.html
IDL的数组运算符使用方便且功能强大。它们可以对图像中的每一个像元进行单独检验和处理,而且避免了FOR循环的使用(不允许在波段运算中使用)。数组运算符包含关系运算符(LT、LE、EQ、NE、GE、GT)、Boolean运算符(AND、OR、NOT、XOR)和最小值、最大值运算符(<、>)。这些特殊的运算符对图像中的每个像元同时进行处理,并将结果返还到与输入图像具有相同维数的图像中。例如:要找出所有负值像元并用值-999代替它们,可以使用如下的波段运算表达式:
(b1 lt 0)*(-999)+(b1 ge 0)* b1
关系运算符对真值(关系成立)返回值为1,对假值(关系不成立)返回值为0。系统读取表达式(b1 lt 0)部分后将返还一个与b1维数相同的数组,其中b1值为负的区域返回值为1;其他部分返回值为0,因此在乘以替换值-999时,相当于只对那些满足条件的像元有影响。第二个关系运算符(b1 ge 0)是对第一个的补充——找出那些值为正或0的像元,乘以它们的初始值,然后再加入替换值后的数组中。这个用法可以扩展到两个图像中,比如图像1中值大于220(有云部分)用图像2中对应的像素值代替,其余保留图像1中的值,表达式就可以写成:
(b1 lt 220)*b2+(b1 le 220)* b1
类似的使用数组运算符的表达式为波段运算提供了很强的灵活性。下表中描述了BandMath工具中常用的IDL数组操作函数,详细介绍,请参阅《IDL Reference Guide》。
文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0100zi01.html
0 个评论
相关问题
- 求ArcGISMXD批量导出图片工具?
- arcgis api for javascript 4.0版本中找不到draw工具,如何实现拉框查询、几何查询?
- 请问在ArcGIS 10.1 Desktop中,用计算字段工具对地理坐标系(经纬度)数据计算面积,算出的面积是什么面积?这个面积是怎么计算出来的?
- Engine调用GP工具的两种方式的用法
- ArcMap中提取波段信息的方法
- 请问如何在C# ArcEngine开发中调用GP工具处理后将数据保存到到任意位置?并读取?
- 为什么自定义的gp工具不自动将输出结果添加到图层里面?
- ArcGIS Runtime SDK for Android加载本地影像时,如何对RGB波段进行调整?
- Engine调用gp工具MultipleRingBuffer报“对 COM 组件的调用返回了错误 HRESULT E_FAIL”错误?
- 【Desktop】工具错误码-000200 : 构建地图上下文时出错。参考比例尚未定义。
- C#调AnalyseTools中的Near工具报对COM组件调用返回错误HRESULT E_FAIL异常