基础篇
第1章 IDL语言概述
1.1 IDL语言简介
交互式数据语言 IDL(Interactive Data Language)是美国 Harris Geospatial Solutions公司的一种面向数组的计算机语言。自 1977年问世以来,IDL以其简单灵活的语法、强大的数据分析处理和可视化功能,在遥感、天文、地质、航天、医学和军事等许多领域得到了广泛应用。
IDL语言昀大的特点是面向数组,对数组的操作快捷且方便。基于 IDL语言开发的遥感图像处理平台 ENVI(the Environment for Visualizing Images)与 IDL语言能够方便地进行数据交互和函数调用,大大提高了 IDL语言处理遥感图像的能力,可以让用户专注于算法方面的工作,用昀少的时间和资源完成任务。因此, IDL语言是进行遥感图像处理及应用分析的理想工具。
1.2 IDL工作环境
1.2.1 IDL工作界面
IDL8.8的工作界面由菜单栏、工具栏、项目管理 /变量查看器、程序编辑窗口、控制台、状态栏等构成(图 1.1)。
图1.1 IDL8.8的工作界面
菜单栏主要包括文件、编辑、源码、项目、宏命令、运行、窗口和帮助等 8个菜单项,提供了文件管理、编辑、代码格式、项目管理、宏命令、运行调试、窗口视图管理和帮助等方面的功能。
工具栏提供了常用功能的按钮,包括新建文件、新建工程、打开文件、保存、全部保存、剪切、复制、粘贴、撤销、重做、编译、运行、停止、单步运行、单步跳过、单步跳出、重置会话、后退、前进和 IDL转换器。在编写程序时单击工具栏按钮可方便快捷实现相应操作。
项目管理/变量查看器以标签页的方式切换项目管理器和变量查看器。项目管理器用于创建、修改和运行项目;变量查看器用于显示内存中 IDL变量的名称、值、类型等。程序编辑窗口是一个显示和编辑 IDL代码的文本编辑器,主要用于编写 IDL过程或者函数。控制台用于输入 IDL命令行并输出命令执行结果。 IDL能自动记忆历史命令,通过 “↑”“↓”方向键可导入前 /后面所输命令,或者通过切换到历史命令标签导入历史命令。状态栏显示当前文件的基本属性、输入状态、当前光标位置、堆栈大小等基本信息。
1.2.2 IDL帮助
在学习 IDL编程的过程中,使用 IDL帮助系统非常重要。 IDL8.8的帮助系统可以通过“帮助”菜单、敲 F1键或者在控制台中输入“ ?”打开,系统界面如图 1.2所示。帮助系统包括内容( Contents)、索引( Index):“内容”以目录形式分层次列出了所有帮助内容;“索引”按照字母顺序列出了 IDL所有的过程、函数、运算符、系统变量等。
图1.2 IDL8.8的帮助系统界面
可以在右上方搜索框或者索引栏的搜索框输入内容查询出符合条件的帮助信息,或者在控制台中输入“?”加上要查询的内容,比如输入“ ?fltarr”即打开 fltarr函数内容(图 1.3)。
图1.3 IDL8.8帮助系统中的 fltarr函数内容
1.3 IDL使用时的一些注意事项
1.3.1 书中 IDL代码的表达方式
书中 IDL代码以下面两种方式表达:
1. 命令行
命令行代码在 IDL控制台中输入,以“ IDL>”开头( ENVI+IDL工作模式下为 “ENVI>”),控制台中的程序输出结果则没有“ IDL>”开头或者“ ENVI>”开头。
IDL> print, "Hello world"
Hello world
2. 过程/函数
过程或者函数在 IDL程序编辑窗口输入,以“ pro”或者“ function”开头,以“ end”结尾。
pro temp
print, 'Hello world'
end
1.3.2 IDL注意事项
在编写 IDL程序过程中,以下事项需要注意:
1. 大小写 IDL语言不区分大小写,用户可根据自己喜好来选择大小写方式。通常情况下,采用小写字母比较多。某些函数 /过程名、参数 /关键字名及变量名也会使用大写字母或首字母大写以方便阅读。
2. 注释
IDL语言中分号“ ;”为注释符,注释符右边的任何文本都被视为注释,程序执行时将被忽略。在写代码过程中适当使用注释,可以提高程序的可读性。
3. 续行符
IDL语言中符号“ $”为续行符,表示 IDL语句延续到下一语句行。如果某条语句过长,不利于阅读,可以将这条语句分成若干行,使用续行符连接起来。
4. 续命令符
IDL语言中符号“ &”为续命令符,一行可以写多条 IDL语句,语句之间用续命令符分隔,表示这是多条语句, IDL将分别执行这些语句。
1.4 版本的说明
本书所有代码均在 IDL8.8下测试通过,有些使用了新版本中新增功能的程序在旧版本 IDL下运行可能会出错。
展开