IDL开发专题-IDL运算符与ENVI波段运算举例.doc_第1页
IDL开发专题-IDL运算符与ENVI波段运算举例.doc_第2页
IDL开发专题-IDL运算符与ENVI波段运算举例.doc_第3页
IDL开发专题-IDL运算符与ENVI波段运算举例.doc_第4页
IDL开发专题-IDL运算符与ENVI波段运算举例.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运算符是各个语言中必不可少的部分,IDL作为一种基于矩阵运算的语言,实际应用实际应用中运算符操作有很多的技巧。很多的时候一个语句能实现复杂的功能,这点在波段运算中能够体现出来。1运算符1.1数学运算符 IDL中的数学运算符有加(+)、增运算(+)、减(-)、减运算(-)、乘(*)、除(/)、幂()、取余(mod)、取小()。1.1.1增运算和减运算(+、- -) 这两个运算跟C里面的是一样的; IDL var = 20 IDL print,var+ 20 IDL print,var 21 IDL var= indgen(2) IDL print,var+ 01 IDL print,var 1 21.1.2幂运算() IDL var = 2 IDL print,var4 16 IDL print,var5 32 IDL var = 2,3 IDL print,var2 4 91.1.3取余运算(mod) IDL var = 32 IDL print,var mod 4 0 IDL print,var mod 5 2 IDL var = 2,3 IDL print,var mod 2 0 11.1.4取大和取小运算(、 var = 32 IDL print,var 39 39 IDL print,var var = 20,30 IDL print,var 25 25 301.2逻辑运算符 IDL中逻辑运算有几个:&,|,和。1.2.1& 逻辑的与运算,如果表达式为真或非零则返回1否则返回0。 IDL PRINT, 5 & 2 1 IDL PRINT, 5 & 0 0 IDL PRINT, sd & d 1 IDL PRINT, sd & 1 IDL PRINT, sd & 01.2.2|逻辑的或运算 IDL PRINT, 5 | 2 1 IDL PRINT, 5 | 0 1 IDL PRINT, 0 | 0 0 IDL IF (5 GT 3) | (4 GT 5) THEN PRINT, True True1.2.3逻辑的非运算 IDL print,3 0 IDL print,0 11.3位运算符 IDL中有四个位运算符:AND,NOT,OR, andXOR.。1.3.1位加运算符(AND) IDL print,5 AND 6 4 01105 01116 011041.3.2位取反运算符(NOT) IDL print,not 1 -21.3.3位或运算符(OR) IDL print,5 or 10 15 01015 101010 1111151.3.4位与或运算符(XOR) IDL print,3 XOR 5 6 00113 01105 011061.4关系运算符IDL中的关系运算符包括EQ、NE、GE、GT、LE、LT几个,关系运算符返回的是真“True”或假“False”。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 11IDL var = 2,3IDL print,var ne 20 11.4.3GE(Greater than or equal to)大于等于运算符,如果运算符两边左边大于等于右边则返回真,否则返回假;IDL print,2 GE 11IDL var = 2,3IDL print,var ge 21 11.4.4GT(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 11.4.6LT(Less than)小于运算符,如果运算符两边左边大于右边则返回真,否则返回假;IDL print,2 LT 10IDL print,2 LT 121IDL print,2 LT 20IDL var = 2,3IDL print,var lt 31 01.4.6 数组间运算IDL a =2,3,5IDL b = 1,4,5IDL print,a GE b10 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 30 11 1IDL PRINT, array1#array27-172-123 11.5.2#矩阵乘(行乘列)IDL PRINT, array11 212 -1 2IDL PRINT, array21 3011 1IDL PRINT, array1#array22 64 71.6其他运算符1.6.1小括号()表达式组合和控制一系列表达式的优先级;IDL PRINT, 3 + 4 * 2 2 /211IDL PRINT, (3 + (4 * 2) 2 / 2)351.6.2中括号数组的连接或元素调用;IDL C = 0, 1, 3IDL PRINT, C, 50 1 3 5IDL PRINT, C231.6.3条件表达式?:该运算符的用法是:value = expr1 ? expr2 : expr3如果expr1是true,那么value等于expr2否则value = expr3.IDL A=6 & B=4IDL print,(A GT B) ? A : B61.6.4对象方法调用符-oWindow-Draw1.6.5指针引用符*指针调用符为*,调用格式为*指针变量。IDL point1 = ptr_New(34)IDL print,*point1342运算符波段运算举例2.1数据小于0的赋予0b102.2数据值小于的赋予-999 (b1 LT 0)*-999+(b1 GE 0)*b1(b1 LT 28.5)*(-3.27*0.00000001*b17+3.4132*0.000001*b16-1.348*0.0001*b15+2.462*0.001*b14-0.0205*b13+0.0617*b12+0.2749*b1+1.2956)+(b1 GE 28.5)*4+(b1 GE 38.5)*b1(-3.27*0.00000001*b17+3.4132*0.000001*b16-1.348*0.0001*b15+2.462*0.001*b14-0.0205*b13+0.0617*b12+0.2749*b1+1.2956)2.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值大于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下面的示例是一个较为复杂的表达式。该表达式使用几个标准来生成一幅二进制掩膜图像,用于识别主要为云的像元。该算法可以应用于经过定标的AVHRR日间图像中生成云的掩膜图像。在该表达式中,b4(热红外波段)值必须为负,或b2(反射波段)值必须大于0.65并且b3和b4(中红外和热红外波段)的差值必须大于15度。由于关系运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论