发表于 2012-10-16
交互式数据语言IDL(Interactive Data Language)是一门适用于应用程序开发和可视化分析应用的编程语言,它功能强大,简单易学。作为第四代语法简单、面向矩阵运算的计算机语言,IDL拥有图像处理、交互式二维和三维图形技术、面向对象编程方式、OpenGL硬件加速、复杂数据可视化表达、集成数学分析与统计软件包、信号分析、跨平台应用开发(Windows、Unix、Linux和Macintosh等)、兼容ODBC数据库和方便的与其他常用语言互调用等功能。
自1977年发布以来,IDL语言在地球科学(包括气象、水文、海洋、土壤和地质等)、医学影像、图像处理、GIS系统、软件开发、高校教学、测试技术、天文、航空航天,信号处理、防御工程、数学统计及分析和环境工程等领域,得到了广泛而又深远的应用。例如美国国家航空和航天管理局(NASA)在太空飞船中使用IDL研究紫外线放射现象,利用IDL编写系统来辅助监测海洋和大气,并在互联网上为科学家提供遥感数据共享的平台;Los Alamos National Lab的生物专家利用IDL开发了MRIViewer用于观察人大脑的核磁共振图;宾夕法尼亚大学地球科学系使用IDL开发了World Topography Viewer实现DEM构建、飞行观察等功能。1998年,IDL被誉为NASA最近40年来的“里程碑技术”。1994年,使用IDL语言编写的遥感软件ENVI正式发布。ENVI具有完整、丰富的遥感图像处理功能,并提供完善的IDL二次开发函数接口。
笔者从2007年开始接触IDL,由于IDL相关教材极少,每一个小问题都需要仔细翻看帮助文档、编写测试代码或与他人探讨分析,学习起来非常困难。随着对IDL的熟悉和使用的深入,笔者有了编写一本详细而且实用教材的想法。
本书内容以IDL8.2语言的基本知识点和应用为主线,综合笔者在学习和使用IDL中的心得,结合IDL授课过程中的素材资料及学员们的反馈信息,分析了常见错误。同时对IDL中直接图形法中的常用函数、对象图形法中的对象类、数学与统计扩展函数、ENVI二次开发函数等进行了归纳列表。
全书分为20章,分为三大部分:第1章至第12章是IDL语言的基础部分,介绍了IDL语言的编程环境,代码编写方式,基础语法,数据的输入与输出,直接图形法、对象图形法、快速可视化与智能化编程工具,界面构建与事件处理,图像处理与分析等基础内容。第13章至第18章介绍了IDL中的数学分析函数库,数据库、小波分析、信号处理、医学应用以及混合编程等扩展应用内容。第19章和第20章则重点介绍了遥感图像处理软件ENVI的功能扩展与二次开发。
在读者学习本书中的示例代码时,可以手工输入,也可以使用随书附赠光盘中示例代码文件。示例代码中,“;”为注释符,当前行中 “;”后面内容均为注释;“$”为续行符,“$”后面的代码需要与当前行代码一起执行。代码前若为IDL>则代码是在IDL下运行的;若为“ENVI>”则需要在ENVI+IDL环境下运行。
光盘中除了包含书中所有的示例源代码之外,还提供了一些完整的应用程序源码,便于读者进一步学习,拓展IDL编程的思路。