近期,需要用到modis数据批量预处理,于是重新学习idl,感谢郭师兄推荐,以及张洋老师的详细教导。特以此为学习笔记,望学有所成。
IDL注释为;
数据类型
数据类型

创建数组
Result = 函数([D1[,…,D8])至多八个维度
常见函数:
BYTARR: 字节型数组
DBLARR:双精度浮点型
FLTARR:浮点型数组
FINDGEN:浮点型索引数组
indgen:整型索引数组
STRARR:字符串
…
函数不区分大小写
BYTARR,DBLARR,FLTARR,INTARR, LON64ARR,LONARR,UINTARR,ULON64ARR,ULONARR,STRARR
BINDGEN,DCINDGEN, DINDGEN,FINDGEN,CINDGEN,LINDGEN,-SINDGEN,UINDGEN, UL64INDGEN, ULINDGEN
类型转换函数
BYTE, FIX, COMPLEX, DCOMPLEX, DOUBLE, FLOAT, LONG, LONG64, STRING,UINT, ULONG, ULONG64
整型 转换为 浮点型
a = indgen(5,5)
浮点型 转换为 整型
b = float(a)
FIX:转换为整型
IDL 中第一维是列,第二维是行,下标从0开始
代码输出

往文件中输出
openw,1,'D:/out.txt'
这里的1是硬盘的一个硬件存储位置,用1代替,运行后会创建一个txt
b=intarr(3,4)
printf,1,b
printf,1,'hello'
这个意思是往1当中,把b写进去。这里的1代指硬件地址。此时打开文件是看不到东西的,因为文件被idl占用了,所以需要归还文件,代码为:
free_lun,1
此时可以看到内容了。
注意:
此时再次,使用
openw,1,'D:/out.txt'
printf,1,'hello'
free_lun,1
此时文件中只剩下hello了,这是因为openw这个操作,不加其他关键字的时候,代表新建一个文件,若存在,则清空后新建,写入新的东西,原本东西不复存在。
那么如何保留之前的,继写呢?加关键字!
IDL> openw,1,'D:/out.txt',/append
这样就可以续写了!
help查询命令
HELP[,Expression1,…,ExpressionN]
查询对象相关信息
查询未知对象a的信息
help,a
可以输出数据类型 、行数、列数。
基础运算
创建数组的时候,一定要记住他的下标(几列几行)。且下标从0开始的。
a = findgen(3,4)
print,a[3,4]
上述代码是错误的,a没有第三列第四行,因为从0开始,下标最大只有[2,3]。

索引数组是从0开始,按行蛇形排列的。
IDL> a = findgen(3,4)
IDL> print,a
结果为:
0.00000 1.00000 2.00000
3.00000 4.00000 5.00000
6.00000 7.00000 8.00000
9.0

最低0.47元/天 解锁文章
1438





