logo资料库

ENVI IDL 教程.pdf

第1页 / 共224页
第2页 / 共224页
第3页 / 共224页
第4页 / 共224页
第5页 / 共224页
第6页 / 共224页
第7页 / 共224页
第8页 / 共224页
资料共224页,剩余部分请下载后查看
IDL 培训教程 Esri 中国(北京)有限公司 2011 年
IDL 培训教材 2 1 前言 ........................................................................................................................... 1 1.1 为什么要编程.................................................................................................. 1 1.2 为什么要学 IDL .............................................................................................. 1 IDL 的优势 ...................................................................................................... 1 1.3 1.4 可利用资源 ..................................................................................................... 2 1.5 说明 ................................................................................................................ 2 IDL 的使用 ................................................................................................................ 3 IDL 的安装 ...................................................................................................... 3 2.1 2.1.1 运行安装 ............................................................................................... 3 2.1.2 安装确认 ............................................................................................... 3 2.1.3 扩展功能选择 ....................................................................................... 4 2.1.4 开始安装 ............................................................................................... 4 2.1.5 安装许可 ............................................................................................... 5 2.2 目录说明 ......................................................................................................... 7 2.3 工作台入门 ..................................................................................................... 7 2.3.1 启动工作台 ........................................................................................... 8 2.3.2 工作空间 ............................................................................................... 9 2.3.3 工程(project) ..................................................................................... 9 2.3.4 文件(file) ........................................................................................ 11 2.3.5 查看器(View) ................................................................................. 15 2.3.6 控制台组件 ......................................................................................... 15 2.3.7 断点及调试 ......................................................................................... 15 IDL 的路径管理 ................................................................................... 16 2.3.8 2.4 获取帮助 ....................................................................................................... 17 2.4.1 函数帮助 ............................................................................................. 17 2.4.2 帮助启动 ............................................................................................. 17 2.5 编写 IDL 程序 ............................................................................................... 21 2.5.1 命令行模式 ......................................................................................... 21 2.5.2 批处理模式 ......................................................................................... 21 2.5.3 编译模式 ............................................................................................. 22 IDL 程序 .............................................................................................. 22 2.5.4 2.5.5 过程和函数的区别 .............................................................................. 22 IDL 语法基础 ........................................................................................................... 24 3.1 变量 .............................................................................................................. 24 3.1.1 局部变量 ............................................................................................. 24 3.1.2 系统变量 ............................................................................................. 27 3.2 数组 .............................................................................................................. 30 3.2.1 概述 .................................................................................................... 30 3.2.2 创建数组 ............................................................................................. 30 3.2.3 数组的存储 ......................................................................................... 31 3.2.4 使用数组 ............................................................................................. 32 3.2.5 运算 .................................................................................................... 33 3.3 字符及字符串................................................................................................ 44 3
IDL 培训教材 3.3.1 创建字符串和字符串数组 ................................................................... 44 3.3.2 特殊字符 ............................................................................................. 44 3.3.3 部分字符操作函数 .............................................................................. 45 3.4 结构体 .......................................................................................................... 46 3.4.1 概述 .................................................................................................... 46 3.4.2 创建结构体 ......................................................................................... 47 3.4.3 访问结构体 ......................................................................................... 47 3.4.4 结构体操作相关函数........................................................................... 47 3.5 指针 .............................................................................................................. 48 3.5.1 概述 .................................................................................................... 48 3.5.2 创建和访问指针 .................................................................................. 48 3.5.3 空指针 ................................................................................................ 48 3.5.4 指针的内存控制 .................................................................................. 49 3.5.5 指针操作函数 ..................................................................................... 49 3.6 对象 .............................................................................................................. 50 3.6.1 概述 .................................................................................................... 50 3.6.2 对象创建 ............................................................................................. 50 3.6.3 对象使用 ............................................................................................. 50 3.6.4 对象销毁 ............................................................................................. 51 3.6.5 相关函数 ............................................................................................. 51 3.7 链表 .............................................................................................................. 52 3.7.1 概述 .................................................................................................... 52 3.7.2 链表创建 ............................................................................................. 52 3.7.3 链表访问 ............................................................................................. 52 3.7.4 链表销毁 ............................................................................................. 53 3.8 哈希表 .......................................................................................................... 53 3.8.1 概述 .................................................................................................... 53 3.8.2 哈希表创建 ......................................................................................... 53 3.8.3 哈希表访问 ......................................................................................... 53 3.8.4 哈希表添加 ......................................................................................... 54 3.8.5 哈希表销毁 ......................................................................................... 54 3.9 运算符 .......................................................................................................... 54 3.9.1 数学运算符 ......................................................................................... 54 3.9.2 逻辑运算符 ......................................................................................... 55 3.9.3 位运算符 ............................................................................................. 56 3.9.4 关系运算符 ......................................................................................... 56 3.9.5 数组运算符 ......................................................................................... 58 3.9.6 其他运算符 ......................................................................................... 58 3.9.7 运算符的优先级 .................................................................................. 59 3.10 其他符号 ..................................................................................................... 60 3.10.1 $续行符 .............................................................................................. 60 3.10.2 &同行符 ............................................................................................. 60 ;注释符............................................................................................... 60 3.10.3
IDL 培训教材 4 IDL 编程基础 ........................................................................................................... 61 4.1 程序控制 ....................................................................................................... 61 4.1.1 循环语句 ............................................................................................. 61 4.1.2 条件语句 ............................................................................................. 62 4.1.3 跳转语句 ............................................................................................. 64 4.2 位置参数及关键字参数 ................................................................................. 64 4.2.1 位置参数 ............................................................................................. 64 4.2.2 关键字参数 ......................................................................................... 65 4.2.3 参数继承 ............................................................................................. 65 4.2.4 参数传递机理 ..................................................................................... 65 4.2.5 相关函数 ............................................................................................. 67 4.3 错误处理 ....................................................................................................... 67 4.3.1 错误处理程序 ..................................................................................... 67 4.3.2 数学错误 ............................................................................................. 68 4.4 调用执行方式................................................................................................ 69 4.4.1 EXECUTE()函数 .................................................................................. 69 4.4.2 CALL_FUNCTION 函数 ...................................................................... 69 4.4.3 CALL_PROCEDURE ........................................................................... 69 4.5 编译规则 ....................................................................................................... 69 IDL 高效编程 ................................................................................................. 69 4.6 4.6.1 释放内存 ............................................................................................. 70 4.6.2 优化运行时间 ..................................................................................... 70 5 输入与输出 .............................................................................................................. 72 5.1 标准输入输出................................................................................................ 72 5.1.1 输入输出函数 ..................................................................................... 72 5.1.2 格式化输出 ......................................................................................... 72 5.2 文件读写 ....................................................................................................... 73 5.2.1 打开文件 ............................................................................................. 73 5.2.2 读写 ASCII 码文件 .............................................................................. 74 5.2.3 读写二进制文件 .................................................................................. 76 5.2.4 读写格式文件 ..................................................................................... 80 5.2.5 图像文件信息查询 .............................................................................. 80 5.2.6 JPEG 文件操作 .................................................................................... 81 5.2.7 科学数据集 ......................................................................................... 82 IDL 界面创建与事件处理 ........................................................................................ 86 iTools 界面 ..................................................................................................... 86 6.1 6.2 界面创建 ....................................................................................................... 86 6.2.1 单元组件界面 ..................................................................................... 86 6.2.2 复合界面 ............................................................................................. 91 6.2.3 对话框界面 ......................................................................................... 92 6.2.4 功能界面 ............................................................................................. 93 6.3 界面的控制 ................................................................................................... 94 6.3.1 Widget_Control ..................................................................................... 94 6
IDL 培训教材 6.3.2 Widget_Info .......................................................................................... 94 6.4 事件的处理 ................................................................................................... 94 6.4.1 事件的结构 ......................................................................................... 95 6.4.2 事件的“管家” ...................................................................................... 95 6.4.3 事件的处理 ......................................................................................... 95 7 直接图形法 .............................................................................................................. 96 7.1 概述 .............................................................................................................. 96 7.2 图形显示设备................................................................................................ 96 7.3 显示模式 ....................................................................................................... 96 7.3.1 8 位显示模式 ....................................................................................... 96 7.3.2 24 位显示模式 ..................................................................................... 98 7.4 系统的字体 .................................................................................................100 7.4.1 矢量字体 ...........................................................................................100 7.4.2 设备字体 ...........................................................................................100 7.4.3 TrueType 字体 ....................................................................................101 7.5 坐标系统 .....................................................................................................102 7.6 图形图像显示..............................................................................................102 7.6.1 显示窗口 ...........................................................................................102 7.6.2 绘制曲线 ...........................................................................................103 7.6.3 显示图像 ........................................................................................... 112 7.6.4 绘制曲面 ........................................................................................... 113 7.6.5 相关函数参考 ................................................................................... 114 7.6.6 体数据显示 ....................................................................................... 114 7.7 地图投影 ..................................................................................................... 115 7.7.1 功能描述 ........................................................................................... 115 7.7.2 举例 .................................................................................................. 115 IDL 图像处理 ......................................................................................................... 116 8.1 图像文件的输入输出 ................................................................................... 116 8.2 图像裁剪 ..................................................................................................... 116 8.3 图像的尺寸修改 .......................................................................................... 116 8.4 图像的位置变换 .......................................................................................... 117 8.5 图形的域变换.............................................................................................. 118 8.6 图像的增强和滤波 ...................................................................................... 118 8.6.1 图像增强 ........................................................................................... 118 8.6.2 滤波 .................................................................................................. 119 8.7 图像平滑 ..................................................................................................... 119 8.7.1 均值平滑 ........................................................................................... 119 8.7.2 中值平滑 ........................................................................................... 119 8.8 图像边界检测.............................................................................................. 119 8.9 图像形态学处理 .......................................................................................... 119 8.9.1 腐蚀和膨胀 .......................................................................................120 8.9.2 开运算 ..............................................................................................120 8.9.3 闭运算 ..............................................................................................120 8
IDL 培训教材 9 9.3 8.9.4 峰值检测 ...........................................................................................120 8.9.5 分水岭边界检测 ................................................................................120 8.9.6 图像识别 ...........................................................................................120 8.9.7 图像的梯度边界检测.........................................................................120 8.9.8 图像细化 ...........................................................................................121 8.9.9 图像分割 ...........................................................................................121 IDL 对象图形法 .....................................................................................................122 9.1 对象层次结构..............................................................................................122 9.2 对象基本操作..............................................................................................122 9.2.1 创建对象 ...........................................................................................122 9.2.2 方法调用 ...........................................................................................122 9.2.3 销毁对象 ...........................................................................................122 IDL 图形基本对象 .......................................................................................123 IDLgrWindow 对象 .............................................................................123 9.3.1 IDLgrView 对象 .................................................................................123 9.3.2 IDLgrModel 对象 ...............................................................................125 9.3.3 9.3.4 原子对象 ...........................................................................................125 9.4 二维图形显示..............................................................................................126 9.4.1 线对象 ..............................................................................................126 9.4.2 多边形 ..............................................................................................128 9.4.3 文本 ..................................................................................................128 9.4.4 坐标轴 ..............................................................................................132 9.4.5 曲线 ..................................................................................................132 9.5 三维图形显示..............................................................................................133 9.6 坐标统一 .....................................................................................................133 9.7 对象的交互操作 ..........................................................................................133 9.8 编写类 ........................................................................................................133 9.8.1 编写新对象类 ...................................................................................133 9.8.2 编写继承类 .......................................................................................134 9.9 地图投影 .....................................................................................................135 10 快速可视化 ............................................................................................................136 10.1 概述 ..........................................................................................................136 10.2 可视化函数 ...............................................................................................136 10.2.1 可视化函数 .....................................................................................136 10.3 应用举例 ...................................................................................................137 10.3.1 曲线绘制 .........................................................................................137 10.3.2 地图显示 .........................................................................................137 10.3.3 曲面显示 .........................................................................................138 10.4 控制与参数 ...............................................................................................138 11 智能化工具 iTools ..................................................................................................139 iTools 概述 .................................................................................................139 iTools 的使用 ..............................................................................................139 11.2.1 数据导入和导出 ..............................................................................139 11.1 11.2
IDL 培训教材 12.1 13.1 12.2 11.2.2 数据和对象属性的查看 ...................................................................144 11.2.3 显示操作 .........................................................................................145 11.2.4 添加标注 .........................................................................................146 11.2.5 公共操作 .........................................................................................147 iPlot 使用..........................................................................................147 11.2.6 iContour 使用 ...................................................................................148 11.2.7 iImage 使用 ......................................................................................149 11.2.8 iMap 使用 .........................................................................................155 11.2.9 iSurface 使用 ..................................................................................159 11.2.10 iVolume 使用 ..................................................................................164 11.2.11 iVector 使用 ....................................................................................165 11.2.12 11.3 开发 ..........................................................................................................167 12 IDL 程序的部署与发布 ..........................................................................................168 IDL 的部署 .................................................................................................168 12.1.1 Runtime 许可发布 ............................................................................168 12.1.2 虚拟机免费发布 ..............................................................................168 IDL 的发布 .................................................................................................168 12.2.1 Sav 文件 ...........................................................................................168 12.2.2 可执行文件(Windows 下的 exe) ..................................................169 12.2.3 COM 和 JAVA ..................................................................................172 13 混合调用 ................................................................................................................173 IDL 功能扩展 .............................................................................................173 13.1.1 直接调用 SPAWN ............................................................................173 IDL 调用 ActiveX .............................................................................173 13.1.2 IDL 调用 DLL ..................................................................................178 13.1.3 IDL 使用 DLM .................................................................................180 13.1.4 13.2 其他语言与 IDL ........................................................................................185 13.2.1 对象输出助手 ..................................................................................185 IDLDrawWidget 组件........................................................................193 13.2.2 13.2.3 COM_IDL_CONNECT .....................................................................195 13.2.4 Callable IDL .....................................................................................198 14 ENVI 功能扩展 ......................................................................................................200 14.1 ENVI 波段运算和波谱运算 ........................................................................200 14.1.1 波段运算 .........................................................................................200 14.1.2 波谱运算 .........................................................................................203 14.1.3 几个例子 .........................................................................................203 14.2 用户函数 ...................................................................................................204 14.2.1 用户函数介绍 ..................................................................................204 14.2.2 ENVI 菜单介绍 ................................................................................204 14.2.3 ENVI 组件介绍 ................................................................................205 14.2.4 编写实例 .........................................................................................209 14.3 ENVI 的二次开发 .......................................................................................212 14.3.1 二次开发模式 ..................................................................................212
IDL 培训教材 14.3.2 常用关键字及函数 ..........................................................................212 14.3.3 文件管理函数 ..................................................................................213 14.3.4 打开文件函数 ..................................................................................213 14.3.5 获取数据函数 ..................................................................................214 14.3.6 感兴趣区函数 ..................................................................................214 14.3.7 数据保存函数 ..................................................................................214 14.3.8 实例编写 .........................................................................................216
分享到:
收藏