logo资料库

IDL学习笔记.docx

第1页 / 共63页
第2页 / 共63页
第3页 / 共63页
第4页 / 共63页
第5页 / 共63页
第6页 / 共63页
第7页 / 共63页
第8页 / 共63页
资料共63页,剩余部分请下载后查看
IDL笔记
一、数学运算
1.数组
2.等差等比数列
3.数组使用
4.二维以上数组取值使用
5.求大,求小,求余
6.SIZE
7.查找字符类型及查找数组某些数的下标或数值
8.数组修改
9.适用于影像的调整
10.重采样
11.反转、旋转
12.排序和求唯一值
13.数组运算
14.字符串
15.结构体
16.指针
17.链表
18.哈希表
19.高效编程
20.IDL8.4往后新增
二、输入输出及读写
1.FOMAT
2.写读修改txt文件
3.读取
4.读取文件相对路径
5.写读修改二进制文件
6.读取影像:
7.读取转换bmp
8.读取HDF文件(读取其内部的太阳高度角)
9.读取shapefile
10.读取XML文件
11.搜索文件路径
12.ENVI格式读写
三、IDL可视化
1.加载获取颜色表
2.新建颜色表
3.显示窗口
4.绘制曲线
5.常见设置
6.字体系统
7.绘制等值线
8.显示图像
9.地图投影
四、图像处理
五、用户界面构建
六、对象图形法
七、智能化编程工具
八、ENVI+IDL
1)图像显示
2)计算波段最大值
3)面向对象的分割
九、补充——重点
IDL 学习笔记 从基础到入门 2018-3 月 10 日 BAI90506@QQ.COM 郑永杰
目录 IDL 笔记 .............................................................................................................................................3 数学运算 ............................................................................................................................ 3 一、 1. 数组 .................................................................................................................................... 3 2. 等差等比数列 .................................................................................................................... 3 3. 数组使用 ............................................................................................................................ 3 4. 二维以上数组取值使用 ....................................................................................................4 5. 求大,求小,求余 ............................................................................................................4 6. SIZE ....................................................................................................................................5 7. 查找字符类型及查找数组某些数的下标或数值 ............................................................5 8. 数组修改 ............................................................................................................................ 5 9. 适用于影像的调整 ............................................................................................................6 10. 重采样 ............................................................................................................................ 6 11. 反转、旋转 .................................................................................................................... 7 12. 排序和求唯一值 ............................................................................................................7 13. 数组运算 ........................................................................................................................ 8 14. 字符串 ............................................................................................................................ 9 15. 结构体 .......................................................................................................................... 10 16. 指针 .............................................................................................................................. 11 17. 链表 .............................................................................................................................. 11 18. 哈希表 .......................................................................................................................... 11 19. 高效编程 ...................................................................................................................... 12 IDL8.4 往后新增 ......................................................................................................... 13 20. 输入输出及读写..............................................................................................................14 FOMAT.............................................................................................................................14 1. 2. 写读修改 txt 文件 ............................................................................................................15 3. 读取 .................................................................................................................................. 17 4. 读取文件相对路径 ..........................................................................................................18 5. 写读修改二进制文件......................................................................................................18 6. 读取影像:...................................................................................................................... 18 7. 读取转换 bmp..................................................................................................................20 8. 读取 HDF 文件(读取其内部的太阳高度角)............................................................22 9. 读取 shapefile...................................................................................................................22 10. 读取 XML 文件 ........................................................................................................... 23 11. 搜索文件路径 ..............................................................................................................24 ENVI 格式读写 ........................................................................................................... 25 12. IDL 可视化 ...................................................................................................................... 27 1. 加载获取颜色表..............................................................................................................27 2. 新建颜色表...................................................................................................................... 30 3. 显示窗口 .......................................................................................................................... 33 4. 绘制曲线 .......................................................................................................................... 33 5. 常见设置 .......................................................................................................................... 35 6. 字体系统 .......................................................................................................................... 35 二、 三、 1
四、 五、 六、 七、 八、 7. 绘制等值线...................................................................................................................... 36 8. 显示图像 .......................................................................................................................... 37 9. 地图投影 .......................................................................................................................... 38 图像处理 .......................................................................................................................... 39 用户界面构建 .................................................................................................................. 39 1. 单元组件界面 .................................................................................................................. 39 2. 界面创建 .......................................................................................................................... 39 3. 程序搭建 .......................................................................................................................... 40 打开图像的一个小程序 ..........................................................................................................40 对象图形法...................................................................................................................... 41 1. 创建对象 .......................................................................................................................... 41 2. 自定义类 .......................................................................................................................... 45 3. 快速可视化...................................................................................................................... 45 智能化编程工具..............................................................................................................49 ENVI+IDL ........................................................................................................................49 1. Bandmath..........................................................................................................................49 2. ENVIClasscic 菜单定制 ..................................................................................................51 ENVIClassic 二次开发 ....................................................................................................51 3. 1) 图像显示 .................................................................................................................. 51 2) 计算波段最大值......................................................................................................52 3) 面向对象的分割......................................................................................................53 ENVI5 二次开发............................................................................................................. 53 4. ENVI 扩展工具 ................................................................................................................53 5. IDL 混合编程技术 .......................................................................................................... 59 6. 7. IDL 输出助手 .................................................................................................................. 61 8. 遥感 GIS 一体化..............................................................................................................61 2
IDL 笔记 一、 数学运算 floor(10.8)=10 向下取整 ceil(10.8)=11 向上取值 round(10.8)=11 四舍五入 fix(10.8)=10 直接取整 1. 数组 IDL> bytarr(3,2) IDL> bindgen(3,2) 全零数组(字节) 索引数组(字节) 0 0 0 3 5 5 0 0 2 5 5 5 IDL> make_array(3,2,value=5,/float) 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000 IDL> make_array(3,2,value=5,type=1) 三列两行,值均为 5,1 是字节形 0 0 1 4 5 5 4 4 4 2. 等差等比数列 IDL> [1:13:3] 1 4 IDL> 3^indgen(6) 3 1 3. 数组使用 IDL> arr 2 IDL> arr[1] 4 6 IDL> arr[[1,2,3]] 结果是数列 8 IDL> arr[1:3] 7 9 6 使用下标 10 27 13 81 243 8 10 数值连续,可用冒号省略下标,结果是代表三个数 6 8 3
定义数组 4. 二维以上数组取值使用 IDL> arr=indgen(4,3) IDL> arr 0 4 8 1 5 9 IDL> arr[[1,3],*] 2 6 10 取数组第 2 列和第 4 列(即取他们对应所有的行) 3 7 11 1 5 9 9 5 9 0 1 0 1 3 7 11 11 6 10 1 0 1 0 IDL> arr[[1,3],2] IDL> arr[1:*,1:*] 1 4 7 10 5. 求大,求小,求余 IDL> arr=indgen(3,4) IDL> arr 0 3 6 9 IDL> arr>0 0 3 6 9 IDL> arr>5 5 5 6 9 IDL> arr<5 0 3 5 5 5 5 7 10 1 4 7 10 1 4 5 5 IDL> arr mod 2 取数组第 2 列和第 4 列的第三行 取第二列,第二行往后所有值 7 11 2 5 8 11 2 5 8 11 5 5 8 11 2 5 5 5 0 1 0 1 4
默认情况:Size[维度,列,行,数据类型,元素 4 IDL> size(arr,/dimensions) 设置关键字 2 5 2 20 6. SIZE IDL> arr=indgen(5,4) IDL> size(arr) 个数] 5 4 IDL> size(arr,dimensions=1) 4 5 IDL> size(arr,/N_ELEMENTS) 20 1 3 7. 查找字符类型及查找数组某些数的下标或数值 IDL> arr=make_array(1,1,type=5) IDL> typename(arr) DOUBLE IDL> arr=[1,2,3,4,5,6,5,4,3,2] IDL> where(arr eq 2) IDL> where(arr ge 4) IDL> arr[where(arr ge 4)] 4 5 9 6 4 5 6 5 4 IDL> where(arr ge 4,count,com=com,ncom=ncom) (大于等于 4 个数,满足下标,不满足个数) 3 4 5 6 7 7 8. 数组修改 IDL> arr=indgen(1,3,4) 三维 IDL> arr 0 1 2 3 4 5 6 7 8 9 5
10 11 IDL> arr=reform(arr) 二维 IDL> arr 0 3 6 9 1 4 7 10 2 5 8 11 9. 适用于影像的调整 IDL> data=indgen(3,600,400) 三个通道故三维 IDL> r=data[0,*,*] 这样还是三维 IDL> help,r R IDL> help,reform(r) reform 成二维 = Array[600, 400] INT INT = Array[1, 600, 400] 10. 重采样 IDL> arr=indgen(2,2) IDL> arr 0 2 1 3 IDL> rebin(arr,4,4) 0 1 2 2 0 1 2 2 IDL> congrid(arr,3,4) 0 0 2 2 0 0 2 2 0 0 2 2 1 1 3 3 IDL> rebin(arr,4,4,/sample) 分块内插 (不过这两个数组只能是倍数内插) 双线性内插 1 2 3 3 1 1 3 3 1 2 3 3 1 1 3 3 最近邻域(随意内插) 1 1 3 3 6 IDL> congrid(arr,3,4,/int)
11. 反转、旋转 IDL> arr=indgen(3,2) IDL> arr 0 3 1 4 IDL> reverse(arr) 5 2 2 5 3 4 5 1 4 IDL> rotate(arr,1) 0 1 2 IDL> rotate(arr,2) 4 1 IDL> rotate(arr,3) 5 4 3 IDL> rotate(arr,4) 3 4 5 0 1 2 2 1 0 2 5 0 3 3 0 数字是 90 度一转 任意角度旋转 IDL> rot(arr,180) % Compiled module: ROT. 5 2 4 1 3 0 IDL> str='abcdef' IDL> string(reverse(byte(str))) Fedcba 12. 排序和求唯一值 IDL> arr=[2,3,2,3,4,8,7,5] IDL> sort(arr) 2 0 5 IDL> arr[sort(arr)] 2 IDL> arr[uniq(arr)] 3 2 2 IDL> arr=[2,3,2,2,2,2] IDL> uniq(arr) 0 IDL> arr[uniq(arr)] 排序下标 3 1 3 3 4 4 排序数列 3 2 1 4 5 8 7 6 7 7 8 5 求解唯一值(解决相邻一致问题) 7
分享到:
收藏