IDL简介

作者:蒋雪健 
美国RSI公司(现并入ittvis--编者注)的旗舰产品--IDL(Interactive Data Language)
交互式数据语言是进行二维及多维数据可视化表现、分析及应用开发的理想软件工具。作
为面向矩阵、语法简单的第四代可视化语言,IDL致力于科学数据的可视化和分
析,是跨平台应用开发的最佳选择。
早在1982年NASA的火星飞越航空器的开发就使用IDL软件,到现在IDL已经被列为国外
许多大学的标准课程,IDL使科研人员无须编写传统程序就可直接研究数据    
一、IDL语言是什么?
简单的说,IDL是VC、VB、JAVA、FORTRAN、MATLAB、OPENGL等语言的集成。
1、IDL =VC
从菜单的定制、消息的传递、类的定义与继承等方面来说,IDL如同VC一样具备了强大
的功能。
2、IDL=VB
从可视化界面的设计、语言的通俗易懂、编程的入门等方面来说,IDL如同VB一样,让
初学者心旷神怡。
3、IDL=JAVA
从跨平台的移植来说,IDL的功能与JAVA一样强大。应用IDL开发的产品,只要微不足
道的工作就可以在各平台之间任逍遥。
4、IDL=FORTRAN
FORTRAN语言是科学计算领域一门最普遍的语言,是科学家最为广泛应用的语言。从函
数、子程序的调用、数据传递、语言风格、语言组织等来说,IDL语言与FORTRAN则是如此
的相像,见到了IDL,你就会想起FORTRAN语言。
5、IDL=MATLAB
IDL语言象MATLAB一样,提供了大量封装和参数化了的数学函数,为科学计算插上了强
大的翅膀。
6、IDL=OPENGL
IDL的提供了丰富的二维、三维图形图像类,其功能可与OPENGL媲美,而且其封装好的
图形函数类的编程功能远超过OPENGL函数库。
同时IDL又是如此完美的ActiveX控件,在VB、VC中通过ActiveX控件技术能完整的再现
IDL的丰富而又巨大的功能。
此外,从另一种意义上说,IDL语言与大型图形和GIS应用软件相距又是如此之近。应
用IDL可以快速的开发出功能强大的三维图形图像处理软件和三维GIS应用系统。
二、IDL语言能干什么?
由于其强大的功能和独特的特点,IDL语言可以应用于任何领域的三维数据可视化、数
值计算、三维图形建模、科学数据读取等功能中。
概括说来,在地球科学(包括气象、水文、海洋、土壤、地质、地下水等)、医学影
像、图像处理、GIS系统、软件开发,大学教学,实验室,测试技术,天文,航空航天、信
号处理,防御工程,数学统计及分析,环境工程等很多领域,IDL语言都可以得到广泛而又
深远的应用。
三、IDL已干出了什么?
目前应用IDL语言,已经开发出了ENVI、IMAGIS、RiverTools、医学等成熟产品。具体
的应用实例也非常多,如在2000年澳大利亚悉尼奥运会综合预报系统、美国国家环境卫星
数据和信息服务中心的厄尔尼诺现象分析等工作中得到了成功的应用。
作为面向矩阵、语法简单的第四代可视化语言,IDL致力于科学数据的可视化和分析,是跨
平台应用开发的最佳选择。它集可视化、交互分析、大型商业开发为一体,为用户提供完
善、灵活、有效地开发环境。
IDL在数字信号与图像处理的优势:
1.高级的智能工具箱
iTools(intelligent tools)的出现是IDL6.0向易用性和易扩展性迈出的重要一步。我们可
以引用Mohsen Farid 博士的一句话给予iTools精确的描述:“iTools are excellent in
teractive visualization tools that allow complete interactivity and control ov
er datasets. iTools are well suited for exploratory type work。”
以往版本的IDL对于数据的可视化工作对采用直接图形法和命令行的方式,虽然简单快捷并
且得到了一批用户的认可,但是面对计算机应用水平的不断提高,更多的用户选择基于鼠
标即可完成的简单操作,而不是需要键入指令,iTools则应运而生。iTools是由一批工具
箱组成,其中包括iPlot、iSurface、iContour、iImage、iVolume等等。IDL使用者可以通
过鼠标进行拖放即可完成数据的可视化以及分析工作。
2.极高的运算效率
IDL采用面向矩阵的技术,具有高效编程特点的同时,自动支持多CPUs机制,可以大大提高
计算速度。另外,由于IDL对于数据类型的要求比较灵活,可以避免Matlab中强制64Bit参
与计算的瓶颈,使得IDL更加适用于工程计算和相关软件的开发。
3.支持海量数据
随着计算机应用水品的不断提高,人们数据量的要求也在不断提高。一些朋友反映说好像
IDL对于开辟矩阵的大小有些置疑,这里我需要补充一下。大部分朋友是受了硬件厂商的错
觉,硬件厂商宣称自己的计算机能够有多大的内存,实际上是指内存的管理而不是说明能
够一次开辟这么大的矩阵。并且,还有一些操作系统方面的限制。举例说明,Windows系列
都是32位的操作系统,一次性最大开辟内存是2G,除了系统本身占用资源外,最多能够开
到1.2-1.5G就非常不错了,因此,由此看来,IDL在利用内存上还是不错的。如果在64位
的操作系统上,问题就会得到缓解。有人曾经在Linux上测试,利用IDL开辟4G的矩阵没有
问题。由此完全客服了数据量的瓶颈限制和分块读取的麻烦。
4.灵活的外部语言接口
做为高级的语言工具,IDL提供丰富而灵活的语言接口。可以与C、C++、Fortran、VB、
Java、VC等商业开发平台进行相互调用,尤其是IDL中Java Bridge技术,可以在IDL编程环
境中直接创建和管理Jave的对象。与此同时,IDL还可以直接调用IMS以及Lapack等算法库
,使得科学计算与分析更为方便快捷。
与此同时,IDL还提供数据库的标准接口,可以对各种大型商业数据进行管理以及的高级应
用开发。
***********************************************************
下面是我搜集的一些材料:
http://pickup.mofile.com/3673637294742152   匿名提取文件
或登录Mofile,使用提取码 3673637294742152 提取文件
(不保证永远有效,如需下载但发现无效请与我联系)