IDL开发专题-IDL运算符与ENVI波段运算举例

上传人:飞*** 文档编号:29220958 上传时间:2018-01-22 格式:DOC 页数:10 大小:47.50KB
返回 下载 相关 举报
IDL开发专题-IDL运算符与ENVI波段运算举例_第1页
第1页 / 共10页
IDL开发专题-IDL运算符与ENVI波段运算举例_第2页
第2页 / 共10页
IDL开发专题-IDL运算符与ENVI波段运算举例_第3页
第3页 / 共10页
IDL开发专题-IDL运算符与ENVI波段运算举例_第4页
第4页 / 共10页
IDL开发专题-IDL运算符与ENVI波段运算举例_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《IDL开发专题-IDL运算符与ENVI波段运算举例》由会员分享,可在线阅读,更多相关《IDL开发专题-IDL运算符与ENVI波段运算举例(10页珍藏版)》请在金锄头文库上搜索。

1、运算符是各个语言中必不可少的部分,IDL 作为一种基于矩阵运算的语言,实际应用实际应用中运算符操作有很多的技巧。很多的时候一个语句能实现复杂的功能,这点在波段运算中能够体现出来。1 运算符1.1 数学运算符IDL 中的数学运算符有加(+) 、增运算(+) 、减(- ) 、减运算(- ) 、乘(*) 、除(/ ) 、幂() 、取余(mod) 、取小() 。1.1.1 增运算和减运算(+、- -)这两个运算跟 C 里面的是一样的;IDL var = 20IDL print,var+20IDL print,var21IDL var= indgen(2)IDL print,var+0 1IDL pri

2、nt,var1 21.1.2 幂运算( )IDL var = 2IDL print,var416IDL print,var532 IDL var = 2,3IDL print,var24 91.1.3 取余运算(mod)IDL var = 32IDL print,var mod 40IDL print,var mod 52IDL var = 2,3IDL print,var mod 20 11.1.4 取大和取小运算( 、 var = 32IDL print,var 3939IDL print,var var = 20,30IDL print,var 2525 301.2 逻辑运算符 IDL

3、中逻辑运算有几个:&, |, 和 。1.2.1&逻辑的与运算,如果表达式为真或非零则返回 1 否则返回 0。IDL PRINT, 5 & 2 1IDL PRINT, 5 & 0 0IDL PRINT, sd & d 1IDL PRINT, sd & 1IDL PRINT, sd & 01.2.2| 逻辑的或运算IDL PRINT, 5 | 2 1IDL PRINT, 5 | 0 1IDL PRINT, 0 | 0 0IDL IF (5 GT 3) | (4 GT 5) THEN PRINT, True True1.2.3逻辑的非运算IDL print,30IDL print,011.3 位运算

4、符IDL 中有四个位运算符:AND, NOT, OR, and XOR.。1.3.1 位加运算符(AND)IDL print,5 AND 640110 50111 60110 41.3.2 位取反运算符(NOT)IDL print,not 1-21.3.3 位或运算符(OR)IDL print,5 or 10150101 5 1010 101111 151.3.4 位与或运算符(XOR)IDL print,3 XOR 560011 30110 50110 61.4 关系运算符IDL 中的关系运算符包括 EQ、NE、GE、GT 、LE、LT 几个,关系运算符返回的是真“True”或假“False

5、”。1.4.1EQ(Equal to)等运算符,如果运算符两边相同则返回真,否则返回假;IDL print,2 EQ 2.01IDL var = 2,3IDL print,var eq 21 01.4.2NE(Not Equal to)不等运算符,如果运算符两边不等则返回真,否则返回假;IDL print,2 NE 2.00IDL print,2 NE 11 IDL var = 2,3IDL print,var ne 20 11.4.3 GE(Greater than or equal to)大于等于运算符,如果运算符两边左边大于等于右边则返回真,否则返回假;IDL print,2 GE 11

6、IDL var = 2,3IDL print,var ge 21 11.4.4 GT(Greater than)大于运算符,如果运算符两边左边大于右边则返回真,否则返回假;IDL print,2 GT 11IDL var = 2,3IDL print,var gt 20 11.4.5LE(Less than or equal to)小于等于运算符,如果运算符两边左边小于等于右边则返回真,否则返回假;IDL print,2 LE 10IDL print,2 LE 121IDL var = 2,3IDL print,var le 31 1 1.4.6 LT(Less than)小于运算符,如果运算

7、符两边左边大于右边则返回真,否则返回假;IDL print,2 LT 10IDL print,2 LT 121IDL print,2 LT 2 0IDL var = 2,3IDL print,var lt 31 0 1.4.6 数组间运算IDL a =2,3,5IDL b = 1,4,5IDL print,a GE b1 0 1IDL b = 1,4,5,6IDL print,a GE b1 0 1IDL print,a LE b0 1 11.5 数组运算符1.5.1#数组乘(列乘行)IDL PRINT, array11 2 12 -1 2IDL PRINT, array21 3 0 11 1

8、IDL PRINT, array1#array27 -1 72 -1 23 1 1.5.2#矩阵乘(行乘列)IDL PRINT, array11 2 12 -1 2IDL PRINT, array21 3 0 11 1IDL PRINT, array1#array22 64 71.6 其他运算符1.6.1 小括号()表达式组合和控制一系列表达式的优先级;IDL PRINT, 3 + 4 * 2 2 /2 11IDL PRINT, (3 + (4 * 2) 2 / 2) 351.6.2 中括号数组的连接或元素调用;IDL C = 0, 1, 3 IDL PRINT, C, 5 0 1 3 5ID

9、L PRINT, C2 31.6.3 条件表达式?:该运算符的用法是:value = expr1 ? expr2 : expr3 如果 expr1 是 true,那么 value 等于 expr2 否则 value = expr3. IDL A=6 & B=4 IDL print,(A GT B) ? A : B 61.6.4 对象方法调用符-oWindow-Draw1.6.5 指针引用符*指针调用符为*,调用格式为*指针变量。IDL point1 = ptr_New(34)IDL print,*point1342 运算符波段运算举例2.1 数据小于 0 的赋予 0 b102.2 数据值小于的

10、赋予-999(b1 LT 0)*-999+(b1 GE 0)*b12.3 三个波段求平均值,如该波段小于 0 则不参加运算。如某点 b1:4;b2:6;b3:0;那平均值 ave = (b1+b2+b3)/(1+1);( b10+b20+b30)/( (b1 ge 0) + (b2 ge 0)+(b3 ge 0) 1)2.4 两幅图像,图像 1 波段 b1 中的云部分(象元值大于 200)用图像 2 的波段 b2 代替(b1 GT 200)*b2+(b1 LE 200)*b12.5 波段分段赋值,如 B1 中小于 0 部分等于 0,b1中值在0,10之间赋为原数值的 100 倍,如果 b1 值

11、大于 10 则赋为原数值的 10 倍。 (b1 LE 0)*b10 +(b1 ge 0)and (b1 le 10)*b1*100+ (b1 gt 10)*b1*102.6 波段运算为图像的选择性更改和来自多幅图像的数据结合提供了简单的方法。在下面的示例中,把两幅图像结合起来进行处理,从而从图像中消除云的影响。在图像 b1中,像元值大于 200 的像元被认为是云,希望用图像 b2 中的相应像元对它们进行替换。(b1 gt 200)* b2 +(b1 le 200)* b1用类似的运算表达式,可以将一幅图像的黑色背景变成白色背景:(b1 eq 0)*255+(b1 gt 0)*b12.7 下面的

12、示例是一个较为复杂的表达式。该表达式使用几个标准来生成一幅二进制掩膜图像,用于识别主要为云的像元。该算法可以应用于经过定标的 AVHRR 日间图像中生成云的掩膜图像。在该表达式中,b4(热红外波段)值必须为负,或 b2(反射波段)值必须大于 0.65 并且 b3 和 b4(中红外和热红外波段)的差值必须大于 15 度。由于关系运算符为真值(关系成立)返回 1 值,因此生成的掩膜图像在有云处值为 1,在其他区域值为 0。(b4 lt 0)or(b2 gt 0.65)AND(b3 b4)gt 152.8 会做最大/最小合成,最大或者最小合成值通常是指从几个图像中取最大或者最小像元值重新生成一副新的图像,比如几个时相的温度、植被指数或者植被覆盖度的合成。如下为合成 9 个波段的最大合成值:b1b2b3b4b5b6b7b8b9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号