数组
- idl支持0-8维的数值,
- 在图像处理中,0维表示一个数字;1维表示向量;2维表示波段数据;3维表示多光谱数据;4维则加入时间维;
- 数组定义先列(sample)后行(line);
- 数组赋值:直接赋值法、函数创建法、
- 取值:①r[2,1]先列后行,标从0开始;②arr[1;2,1:*]取1-2列,1-最后一行;③arr[1:*:2,1:*]列的步长为2;
字符串
在批量处理文件中通常会遇到,根据输入文件确定输出文件名;先将思路写上,他日应用代码替换;
file='d:\temp\abc.tif' ;读取点的位置 dotpos=strpos(file,'.') ;读取后缀名strmid(file,dotpos+1) ;判读后缀名是否是.tif file.endswith('.tif') outdir='e:\' outname=file.basename(file,'.tif') outfile=outdir+outname
逻辑运算符: &&;||;~; 和或非
位运算符:AND NOT。。。运算时转换位二进制,按位进行运算
关系运算符:
- EQ(equal)等于
- NE(not equal)不等于
- GE(greater equal)大于等于
- GT(greater than) 大于
- LE(less equal)小于等于
- LT(less than)小于
可用于制作图像的掩膜:
arr gt 10 ;数组中大于10的变成1,小于10的变成0
(arr gt 10)*arr
;数组中大于10的表示其本身,小于10的变成0
其他运算符
() 用于函数调用;
[] 用于数组;
? : 用于if语句,表示判别关系;
. 对象方法调用符;
* 指针运算符;
a=10
a eq 10?'真':'假'