IDL 编程技术
2
前 言
IDL(Interactive Data Language)交互式数据语言是进行二维及多维数据可视化分析
及应用开发的理想软件工具。作为面向矩阵、语法简单的第四代可视化语言,IDL 致力于科
学数据的可视化和分析,是跨平台应用开发的最佳选择。它集可视、交互分析、大型商业开
发为一体,为用户提供了完善、灵活、有效的开发环境。
IDL 语言面向矩阵的特性带来了快速分析超大规模数据的能力,它所具有的高级图像处
理能力、交互式二维和三维图形技术、面向对象的编程方式、OpenGL 图形加速功能、集成
数学分析与统计软件包、完善的信号处理和图像处理功能、灵活的数据输入输出方式、跨平
台图形用户界面工具包、连接 ODBC 兼容数据库及多种外部程序连接工具使得该产品已经成
为美国 RSI(Research System Inc.)公司的旗舰产品。
一直以来,美国 RSI 公司致力于可视化和分析软件的研制与开发。IDL——交互式数据
语言,是数据分析、可视化和跨平台应用开发的最佳选择,其用户函盖 NASA、ESA、 NOAA、
Siemens、 GE Medical、Army Corps of Engineers、MacDonald Dettwiler 等大公司及研
究机构。其中,早在 1982 年,NASA(美国航空航天局)还将其选用为进行火星飞越航空器
研究的开发工具,并且,这一事件列为其四十年来技术发展的里程碑之一。
IDL 为用户提供了可视化数据分析的解决方案,既可以让科学研究人员交互式浏览和分
析数据,又为程序员提供了快速程序原型开发并跨平台发布的高级编程工具。IDL 使科学家
无需写大量的传统程序就可直接研究数据。IDL 还被广泛应用于地球科学、医学影像、图像
处理、软件开发、大学教学、实验室研究、测试技术、天文、信号处理、防御工程、数学分
析、统计等诸多领域。
适普软件有限公司作为美国RSI公司在中国大陆和香港地区的总代理,致力于可视化和
分析软件及相关产品的开发、测试、技术支持、培训、版本升级维护等全方位服务。适普软
件公司的网址为
www.supresoft.com.cn。
为方便广大国内用户学习IDL,我们特翻译编写了本书,本书作为我们计划出版的IDL
系列编程教程的第一本,希望为广大IDL初学者提供启发和帮助。我们建议读者在学习本书
时使用最新的IDL版本(IDL最新版本为IDL5.4,于 2000 年 10 月发布,IDL5.5 版本将于 2001
年 10 月发布)。 本书写作时使用的是IDL5.2 版,其中的大部分例程在最新版本IDL5.4 中均
可运行,如果读者遇到因版本问题不能运行的程序,请与适普公司的技术支持工程师联系,
如果需要最新版本的IDL软件,可以从RSI公司的WWW网址
http://www.rsinc.com/上查找
关于IDL的最新版本和当地IDL代理商的信息,包括如何升级软件的信息。
我们的联系方式:电话:010-88026655,E_mail:
3sbj@supresoft.com.cn
鉴于水平与时间有限,书中不妥乃至错误之处在所难免,恳望读者不吝批评指正。
3
目 录
第一章 起 步 篇......................................................................... 13
本章概述 ............................................................................................................................. 13
撰写本书的背景 ................................................................................................................. 13
如何使用本书 ..................................................................................................................... 13
所需的IDL版本.............................................................................................................................13
IDL运行期间所需颜色的数量 .....................................................................................................14
少于 150 种颜色该怎样? ..................................................................................................14
多于 256 种颜色该怎样? ..................................................................................................14
创建IDL的启动文件............................................................................................................15
本书的风格习惯............................................................................................................................15
大写......................................................................................................................................15
注释......................................................................................................................................16
续行符 ..................................................................................................................................16
本书中所用的IDL程序和数据文件 .............................................................................................16
安装程序和数据文件 ..........................................................................................................17
获取IDL的主目录和当前目录............................................................................................17
下载本书所用的程序和数据文件 ......................................................................................17
确保Coyote目录在IDL的搜索路径内 ................................................................................17
拷贝数据文件 ......................................................................................................................18
获取更多的帮助............................................................................................................................18
使用IDL命令 ...................................................................................................................... 18
IDL命令解析.................................................................................................................................19
位置参数 ..............................................................................................................................19
关键字参数 ..........................................................................................................................19
IDL过程和函数 ...................................................................................................................20
用IDL命令帮助 ...................................................................................................................20
创建命令日志 ......................................................................................................................20
创建变量........................................................................................................................................21
动态改变变量的属性 ..........................................................................................................22
注意整型变量 ......................................................................................................................22
使用矢量和数组 ..................................................................................................................24
创建矢量 ..............................................................................................................................24
数组下标的应用 ..................................................................................................................24
数组的建立 ..........................................................................................................................25
数组中元素的存取 ..............................................................................................................25
矢量和子数组的提取 ..........................................................................................................25
使用IDL图形窗口 .........................................................................................................................26
图形窗口的建立 ..................................................................................................................26
确定当前图形窗口 ..............................................................................................................26
使图形窗口成为当前窗口 ..................................................................................................27
删除图形窗口 ......................................................................................................................27
图形窗口的位置和尺寸 ......................................................................................................27
4
将图形窗口设置到显示器最前面 ......................................................................................27
在图形窗口上设置标题 ......................................................................................................28
清除图形窗口内容 ..............................................................................................................28
第二章 简单的图形显示 ............................................................. 29
本章概述 ............................................................................................................................. 29
IDL中简单的图形显示 ...................................................................................................... 29
创建线画图 ......................................................................................................................... 29
定制线画图 ......................................................................................................................... 32
改变线条的线型和粗细................................................................................................................32
用符号代替线条表示数据............................................................................................................32
用线条和符号来显示数据 ..................................................................................................33
创建自己的图形符号 ..........................................................................................................33
用不同的颜色绘制线画图............................................................................................................34
限定线画图的范围........................................................................................................................35
改变线画图的风格........................................................................................................................35
在线画图上绘出多种数据集 ............................................................................................. 37
在多个轴的图上显示数据............................................................................................................37
创建曲面图 ......................................................................................................................... 38
定制曲面图 ......................................................................................................................... 40
旋转曲面图....................................................................................................................................40
为曲面赋色....................................................................................................................................41
修改曲面图外观............................................................................................................................42
创建阴影曲面图 ................................................................................................................. 43
改变阴影处理参数........................................................................................................................43
用其他数据集为阴影处理提供参数............................................................................................44
创建等值线图 ..................................................................................................................... 44
选择等值线数目 ................................................................................................................. 46
修改等值线图 ..................................................................................................................... 48
改变等值线图的外观....................................................................................................................48
给等值线图赋色............................................................................................................................50
创建填充的等值线图 ......................................................................................................... 50
在显示窗口定位图形输出 ................................................................................................. 52
设置图形边缘................................................................................................................................53
设置图形位置................................................................................................................................54
设置图形区域................................................................................................................................54
创建多个图形................................................................................................................................55
给单一窗口的多幅图形留下标题空间 ..............................................................................56
使用!P.Multi变量创建不对称的排列 .................................................................................56
给图形显示添加文本 ......................................................................................................... 57
列出可用字体的名称....................................................................................................................58
5
用XYOutS命令添加文本..............................................................................................................58
用XYOut加注矢量字体 ................................................................................................................59
排列文本........................................................................................................................................60
删除文本........................................................................................................................................60
改变文本的方向............................................................................................................................61
给图形显示添加线和符号 ................................................................................................. 61
图形显示添加色彩 ............................................................................................................. 62
第三章 图像数据处理................................................................. 64
本章概要 ............................................................................................................................. 64
图像处理 ............................................................................................................................. 64
显示图像........................................................................................................................................64
调整图像数据................................................................................................................................66
用颜色表分段表示图像 ......................................................................................................66
在 24 位显示器上用不同的颜色表显示图像.....................................................................67
显示 24 位图像..............................................................................................................................68
在 24 位显示器上显示 24 位图像 ......................................................................................68
在 24 位显示器上显示 8 位图像 ........................................................................................68
控制图像显示顺序........................................................................................................................69
改变图像尺寸................................................................................................................................69
在PostScript设备上改变图像大小......................................................................................70
在显示窗口中定位图像................................................................................................................70
用归一化的坐标来定位图像 ..............................................................................................71
从显示器中读取图像....................................................................................................................73
在 24 位显示器上抓屏 ........................................................................................................73
读取显示图像的一部分 ......................................................................................................73
IDL中基本的图像处理 ...................................................................................................... 74
直方图均衡化................................................................................................................................74
平滑图像........................................................................................................................................75
消除图像噪声 ......................................................................................................................76
增强图像边缘................................................................................................................................77
图像的频域滤波............................................................................................................................77
创建图像滤波器 ..................................................................................................................78
第四章 图形显示技术................................................................. 80
本章概要 ............................................................................................................................. 80
IDL的颜色运用 .................................................................................................................. 80
使用索引颜色模式和RGB颜色模式............................................................................................80
静态与动态颜色视觉 ..........................................................................................................81
在 8 位显示器上指定颜色 ..................................................................................................82
在 24 位显示器上指定分解后的颜色 ................................................................................82
在 24 位显示设备上指定没有分解过的颜色.....................................................................84
决定颜色分解的开与关 ......................................................................................................84
评论0