2022年IDL入门教程一 .pdf

上传人:C****o 文档编号:33386725 上传时间:2022-08-10 格式:PDF 页数:24 大小:250.70KB
返回 下载 相关 举报
2022年IDL入门教程一 .pdf_第1页
第1页 / 共24页
2022年IDL入门教程一 .pdf_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《2022年IDL入门教程一 .pdf》由会员分享,可在线阅读,更多相关《2022年IDL入门教程一 .pdf(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第一章起步篇 . 8本章概述 . 8 书写本书的背景 . 8 运用本书 . 9 IDL 所需的版本 . 9IDL 运行期间所需颜色的数量 . 9本书的风格习惯. 10 本书中所用的IDL 程序和数据文件 . 12 获取更多的帮助. 14 使用 IDL 命令 . 14 IDL 命令解析 . 14 创建变量 . 17 使用 IDL 图形窗口 . 22 第二章简单的图形显示 . 错误!未定义书签。本章概述 . 错误!未定义书签。IDL 中简单的图形显示. 错误!未定义书签。创建线画图 . 错误!未定义书签。定制线画图 . 错误!未定义书签。改变线条的线型和粗细. 错误!未定义书签。用符号代替线条显示

2、数据. 错误!未定义书签。用不同的颜色绘制线画图. 错误!未定义书签。限定线画图的范围. 错误!未定义书签。改变线画图的风格. 错误!未定义书签。在线画图上绘出多种数据集 . 错误!未定义书签。在多个轴的图上显示数据. 错误!未定义书签。创建曲面图 . 错误!未定义书签。定制曲面图 . 错误!未定义书签。旋转曲面图 . 错误!未定义书签。为曲面赋色 . 错误!未定义书签。修改曲面图外观. 错误!未定义书签。创建阴影曲面图 . 错误!未定义书签。改变阴影处理参数. 错误!未定义书签。用其它数据集为阴影处理提供参数. 错误!未定义书签。创建等值线图 . 错误!未定义书签。选择等值线数目 . 错误!

3、未定义书签。修改等值线图 . 错误!未定义书签。改变等值线图的外观. 错误!未定义书签。给等值线图赋色. 错误!未定义书签。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 24 页 - - - - - - - - - 创建填充的等值线图 . 错误!未定义书签。在显示窗口定位图形输出 . 错误!未定义书签。设置图形边缘. 错误!未定义书签。设置图形位置. 错误!未定义书签。设置图形区域. 错误!未定义书签。创建多个图形. 错误!未定义书签。给图形显示添加文本 . 错误!未定

4、义书签。找出可用字体的名称. 错误!未定义书签。用 XYOutS 命令添加文本. 错误!未定义书签。用矢量字体使用XYOut . 错误!未定义书签。排列文本 . 错误!未定义书签。删除文本 . 错误!未定义书签。改变文本的方向. 错误!未定义书签。给图形显示添加线和符号 . 错误!未定义书签。图形显示添加色彩 . 错误!未定义书签。第三章图像数据处理 . 错误!未定义书签。本章概要 . 错误!未定义书签。图像处理 . 错误!未定义书签。显示图像 . 错误!未定义书签。调整图像数据. 错误!未定义书签。显示 24 位图像 . 错误!未定义书签。控制图像显示顺序. 错误!未定义书签。改变图像尺寸.

5、 错误!未定义书签。在显示窗口中定位图像. 错误!未定义书签。从显示器中读取图像. 错误!未定义书签。IDL 中基本的图像处理. 错误!未定义书签。直方图均衡化. 错误!未定义书签。平滑图像 . 错误!未定义书签。增强图像棱边. 错误!未定义书签。图像的频域滤波. 错误!未定义书签。第四章图形显示技术 . 错误!未定义书签。本章概要 . 错误!未定义书签。IDL 的颜色运用 . 错误!未定义书签。使用索引颜色模式和RGB 颜色模式 . 错误!未定义书签。在 24 位显示设备上装载色谱表. 错误!未定义书签。获得色谱表的拷贝. 错误!未定义书签。修改和创建色谱表. 错误!未定义书签。保存自己的色

6、谱表. 错误!未定义书签。创建自己的轴标注 . 错误!未定义书签。调整轴刻度间隔. 错误!未定义书签。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 24 页 - - - - - - - - - 格式化轴的标注. 错误!未定义书签。用 IDL 处理残缺的数据. 错误!未定义书签。用 IDL 建立三维坐标系. 错误!未定义书签。建立三维散点图. 错误!未定义书签。从图形原点定位3D 坐标轴 . 错误!未定义书签。组合简单图形显示 . 错误!未定义书签。IDL 中的动画数据

7、. 错误!未定义书签。建立动画工具. 错误!未定义书签。装载动画缓冲区. 错误!未定义书签。运行动画工具. 错误!未定义书签。动画的控制 . 错误!未定义书签。存储动画的像素映射图. 错误!未定义书签。其它类型图形数据的动画. 错误!未定义书签。网格化数据以便图形显示 . 错误!未定义书签。德洛内三角形法网格化. 错误!未定义书签。数据的球形网格化. 错误!未定义书签。第五章图形显示技巧 . 错误!未定义书签。本章概要 . 错误!未定义书签。将光标用于图形显示 . 错误!未定义书签。什么时候返回的光标位置?. 错误!未定义书签。哪一个鼠标键和光标共同作用呢?. 错误!未定义书签。用光标标注图形

8、输出. 错误!未定义书签。在图像上使用Cursor 命令 . 错误!未定义书签。在循环中使用Cursor 命令 . 错误!未定义书签。从显示中删除注释 . 错误!未定义书签。删除注释的异或法. 错误!未定义书签。删除注释的设备拷贝法. 错误!未定义书签。Z 图形缓冲区中的图形显示技巧 . 错误!未定义书签。Z 图形缓冲区的实现 . 错误!未定义书签。一个 Z 图形缓冲区实例:两个曲面. 错误!未定义书签。用 Z 图形缓冲区使图像变形 . 错误!未定义书签。Z 图形缓冲区中的透明效果 . 错误!未定义书签。将 Z 图形缓冲区效果与体数据着色相结合. 错误!未定义书签。第六章 在 IDL 中读写数

9、据 . 错误!未定义书签。本章概要 . 错误!未定义书签。打开文件进行读写 . 错误!未定义书签。查找和选择数据文件. 错误!未定义书签。获取逻辑设备号. 错误!未定义书签。读写格式化数据 . 错误!未定义书签。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 24 页 - - - - - - - - - 写自由格式文件. 错误!未定义书签。读写自由格式文件的实例. 错误!未定义书签。用确定的文件格式写入. 错误!未定义书签。从字符串中读取格式数据. 错误!未定义书签。读写

10、非格式化数据 . 错误!未定义书签。读取非格式化图像数据文件. 错误!未定义书签。写非格式化图像数据文件. 错误!未定义书签。非格式化数据文件的一些问题. 错误!未定义书签。用关联变量存取非格式化数据文件. 错误!未定义书签。读写常用文件格式的文件 . 错误!未定义书签。创建彩色GIF 文件 . 错误!未定义书签。创建彩色JPEG 文件 . 错误!未定义书签。查询图像文件信息. 错误!未定义书签。第七章 图形硬拷贝输出 . 错误!未定义书签。本章概要 . 错误!未定义书签。选择图形硬拷贝输出设备 . 错误!未定义书签。配置图形硬拷贝输出设备 . 错误!未定义书签。常用的 Device 命令关键

11、字 . 错误!未定义书签。创建 PostScript 文件 . 错误!未定义书签。将图形送到硬拷贝设备中 . 错误!未定义书签。打印 PostScript文件 . 错误!未定义书签。在运行 MacOS 系统的计算机上打印PostScript 文件 . 错误!未定义书签。在 Windows 计算机上打印PostScript 文件 . 错误!未定义书签。生成封装的PostScript文件输出 . 错误!未定义书签。封装 PostScript 图形的预览 . 错误!未定义书签。生成彩色的PostScript输出 . 错误!未定义书签。PostScript 中的彩色图像与灰度图像. 错误!未定义书签。

12、在 PostScript 设备上创建高质量的输出 . 错误!未定义书签。显示设备和PostScript 设备之间的相同点. 错误!未定义书签。显示设备与PostScript 设备之间的不同点. 错误!未定义书签。在横向输出模式中计算PostScript的偏移量 . 错误!未定义书签。用 PS_Form 配置 PostScript设备 . 错误!未定义书签。配置和使用打印设备 . 错误!未定义书签。用打印设备定位图形. 错误!未定义书签。第八章IDL 编程基础 . 错误!未定义书签。本章概述 . 错误!未定义书签。编写 IDL 批处理文件 . 错误!未定义书签。名师资料总结 - - -精品资料欢

13、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 24 页 - - - - - - - - - 编写 IDL 主程序 . 错误!未定义书签。过程和与函数中变量的作用范围. 错误!未定义书签。创建定位参数. 错误!未定义书签。定义可选的或必须的定位参数. 错误!未定义书签。定义关键字 . 错误!未定义书签。创建输出型参数. 错误!未定义书签。编写 IDL 函数 . 错误!未定义书签。方括号和函数的调用. 错误!未定义书签。使用程序控制语句 . 错误!未定义书签。IDL 中表达式的真和假 . 错误!未定义书签。

14、将多个语句处理成单个语句. 错误!未定义书签。IfThenElse 控制语句 . 错误!未定义书签。条件表达式 . 错误!未定义书签。FOR 循环控制语句. 错误!未定义书签。WHILE 循环控制语句. 错误!未定义书签。REPEAT.UNTIL 循环控制语句. 错误!未定义书签。CASE 控制语句 . 错误!未定义书签。GOTO 控制语句 . 错误!未定义书签。错误处理控制语句. 错误!未定义书签。编译和执行IDL 程序模块 . 错误!未定义书签。程序编译规则:. 错误!未定义书签。程序编译和自动运行规则. 错误!未定义书签。特殊编译命令. 错误!未定义书签。第九章编写 IDL 程序 . 错

15、误!未定义书签。本章概述 . 错误!未定义书签。基本的 ImageBar 程序 . 错误!未定义书签。给程序 ImageBar 增加一个“先擦除”功能 . 错误!未定义书签。向 ImageBar 程序增加颜色敏感功能 . 错误!未定义书签。给 ImageBar 中的命令传递关键字 . 错误!未定义书签。根据窗口大小改变字符大小. 错误!未定义书签。程序 ImageBar 的最终代码 . 错误!未定义书签。在图形用户界面中包装ImageBar . 错误!未定义书签。第十章编写简单的组件程序. 错误!未定义书签。本章概述 . 错误!未定义书签。组件程序的结构 . 错误!未定义书签。组件程序如何对事

16、件作出反应 . 错误!未定义书签。编写组件定义模块 . 错误!未定义书签。定义和创建程序组件. 错误!未定义书签。在屏幕上实现组件. 错误!未定义书签。使绘图组件成为当前图形窗口. 错误!未定义书签。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 24 页 - - - - - - - - - 在绘图组件窗口上显示图形. 错误!未定义书签。保存程序运行时所需要的信息. 错误!未定义书签。创建事件循环和注册程序. 错误!未定义书签。运行程序 . 错误!未定义书签。创建无阻塞组

17、件程序. 错误!未定义书签。编写事件处理模块 . 错误!未定义书签。事件结构中的公共字段. 错误!未定义书签。事件处理函数. 错误!未定义书签。将事件处理程序和组件联系起来. 错误!未定义书签。编写 Quit 按钮的事件处理程序. 错误!未定义书签。编写改变图形窗口大小的事件处理程序. 错误!未定义书签。进行小量地修改 . 错误!未定义书签。添加颜色敏感. 错误!未定义书签。采用更高效的内存管理. 错误!未定义书签。第十一章组件编程技巧 . 错误!未定义书签。本章概述 . 错误!未定义书签。改变颜色表 . 错误!未定义书签。保护公共块 . 错误!未定义书签。一个可选择颜色表的工具. 错误!未定

18、义书签。指定 Group Leader . 错误!未定义书签。给组件程序增加Group Leader. 错误!未定义书签。在 24 位显示器上改变颜色表. 错误!未定义书签。在组件程序中使用指针 . 错误!未定义书签。使用 Cleanup 过程防止内存泄露. 错误!未定义书签。使用伪事件进行程序通信 . 错误!未定义书签。创建一个具有“记忆功能”的程序. 错误!未定义书签。保护组件程序的颜色 . 错误!未定义书签。通过组件跟踪事件来保护颜色. 错误!未定义书签。通过绘图组件事件来保护颜色. 错误!未定义书签。保存或者发布程序的图形 . 错误!未定义书签。第十二章对话框程序 . 错误!未定义书签

19、。本章概述 . 错误!未定义书签。创建模式对话框 . 错误!未定义书签。阻塞的组件程序. 错误!未定义书签。模式组件程序. 错误!未定义书签。编写模式对话框的定义模块. 错误!未定义书签。编写模式对话框的事件处理模块. 错误!未定义书签。测试模式对话框程序. 错误!未定义书签。创建非模式的对话框 . 错误!未定义书签。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 24 页 - - - - - - - - - 编写非模式对话框程序. 错误!未定义书签。编写非模式对话框的事

20、件处理模块. 错误!未定义书签。测试非模态对话程序. 错误!未定义书签。附录 A 组件的事件结构 . 错误!未定义书签。事件结构的定义 . 错误!未定义书签。公共字段的定义. 错误!未定义书签。基本组件的事件结构 . 错误!未定义书签。base组件 . 错误!未定义书签。按钮组件 . 错误!未定义书签。绘图组件 . 错误!未定义书签。下拉式列表组件. 错误!未定义书签。标签组件 . 错误!未定义书签。列表组件 . 错误!未定义书签。滑动条组件 . 错误!未定义书签。表单组件 . 错误!未定义书签。文本组件 . 错误!未定义书签。复合组件的事件结构 . 错误!未定义书签。CW_Animate .

21、 错误!未定义书签。CW_Arcball . 错误!未定义书签。CW_BGroup . 错误!未定义书签。CW_Clr_Index . 错误!未定义书签。CW_Color_Sel . 错误!未定义书签。CW_DefROI . 错误!未定义书签。CW_Field . 错误!未定义书签。CW_Form . 错误!未定义书签。CW_Flisder . 错误!未定义书签。CW_Orient . 错误!未定义书签。CW_PDMenu . 错误!未定义书签。CW_RGBSlider . 错误!未定义书签。CW_Zoom . 错误!未定义书签。组件程序的事件结构 . 错误!未定义书签。Xcolors . 错

22、误!未定义书签。其他组件的事件结构 . 错误!未定义书签。键盘焦点事件. 错误!未定义书签。组件退出请求事件. 错误!未定义书签。组建计时器事件. 错误!未定义书签。组件跟踪事件. 错误!未定义书签。附录 B 数据文件描述 . 错误!未定义书签。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 24 页 - - - - - - - - - 第一章起步篇本章概述本章意在解释写这本书的目的,通过阅读本书能学到什么,以及为读者提供一些能使读者更方便地使用本书中IDL 编程例子的信

23、息。将学会如下几点:1.本书是如何组织的。2.怎样使用本书。3.如何下载和组织随本书附带的文件。4.如何使用IDL 的变量,关键字和命令。5.如何创建和运行IDL 的矢量和数组。6.如何使用IDL 的图形窗口。书写本书的背景本书是在多年来教科学家和工程师使用和操作IDL(Interactive Data Language)的基础上创作的,而且教学的绝大部分时间是为IDL 的开发者 Research Systems公司工作。当笔者在回答一个又一个问题之后,笔者意识到多数问题属于一些同类问题。事实是, 多数人想用 IDL 做许多同样的事情。想做的是分析和演示数据,写出高效率的程序来解决科学问题,并

24、且最主要的是快速做完工作。多数人并不想做的事情是阅读计算机软件教科书。IDL是一套大型软件并且在不但壮大。随之而来的是大量的文档资料,笔者知道没有人愿意去读这些资料。如果让某人独自开始学习IDL 的奥秘, IDL 将是件可怕的事情,甚至对有经验的用户来说也是一样。本书意在使读者掌握IDL,教给读者在日常运行IDL 所必需知识的80% 。更为重要的是,本书的例子使IDL 更容易理解。无论如何,本书将演示如何使用IDL。本书的读者是IDL 初学者, 特别是哪些不得不自学IDL 的读者。 学好 IDL 需要很长的阶段。多数人不能利用工作中的时间学习IDL,笔者想写一本能满足这两类人学习IDL 的书。

25、总之,本书为不喜欢读教科书并能通过例子学得最好的人全面介绍IDL 的精髓。本书在IDL编程技术和技巧方面只做了简要概略,而这些技术只能通过练习获取。最根本的是, 这是一本笔者在学习IDL 时所期望的书。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 24 页 - - - - - - - - - 运用本书笔者曾试图使本书每章能具有独立性,这样能拿起本书就可翻到任何一章去学习最需要的知识。但在安排章节时,或多或少是根据笔者在IDL 教学时的顺序安排。如果刚开始学IDL,那么按

26、照书中的顺序从头开始学完本书将更合理。书中后面的几章编程教程是建立在前面几章中讲过的概念和技巧的基础上的。IDL 所需的版本希望读者在学习本书时使用的是最新的IDL 版本。本书写作时使用的是IDL5.2 版。使用较早版本可以使用本书中编程例子的大部分,但笔者没有试图使本书中的例子程序与较早的 IDL 软件版本兼容。 特别是, 较早版本的用户在使用长文件名(如果在Windows环境下)、指针(必须用句柄代替它)以及方括号来引用数组下标时(必须用圆括号代替它)时存在困难。如果需要升级软件, 可以在 Research Systems 公司的 WWW网址 http:/ Systems公司和当地IDL

27、代理商的信息,包括如何升级软件的信息。IDL 运行期间所需颜色的数量书中程序例子是按IDL 在 256 种颜色模式下运行编写的,使用通常称为索引颜色的模式(详细细节参考83 页的“使用 IDL 的颜色” 章节) 。这意味着所显示的颜色是索引号或是与色彩表相连的颜色,这样在色彩表中的颜色变化时,所显示的颜色也一同变化。启动IDL并在 IDL 命令行键入如下IDL 命令,能发现所用的颜色模式。 IDLWindow IDLPrint, !D.N_Colors 当!D.N_Colors的值大于或等于256 时,仍然能够使用书本中的例子,但必需对代码做一点改变。大多数人使用的颜色值都小于256。比较典型

28、的颜色值介于200 与 245 之间。笔者推测在本书中至少要用150 种颜色。那就是说,!D.N_Colors的值应在150 至 256 之间。少于 150 种颜色会怎样?如果在 IDL 运行中少于150 种颜色,并且计算机运行在公用桌面环境(CDE ) ,可以将CDE环境下的颜色数设置为不是“高”的那种。设置为“中”或“低”的情况下,程序将运行良好。在视窗环境操作手册的在线帮助中查找如何改变这个设置。如果不是用的共用桌面环境,颜色数也少于150,并且不是在PC机或 Macintosh 计算机上运行IDL 的话,那么很可能运行了其它应用程序,该应用程序使用了要分配给IDL 的颜色值。 网页浏览

29、器很可能就是这样的应用程序。退出当前任务,重新登录,并在重新登录后最先启动IDL。键入以上命令,如果仍然得到少于150 种的颜色,那么需要联系Research Systems 公司的技术人员,以获取更多的帮助。如果颜色数少于150 种,并且是在PC或 Macintosh计算机上运行的IDL,那么,检查显卡以确保设置为256 色。一般可通过显示器的控制面板完成。详细细节参考计算机文档资料。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 24 页 - - - - - - -

30、- - 多于 256 种颜色将会怎么样呢?如果在 IDL 运行中多于256 种颜色,并且IDL 是运行在 X Window 环境下的计算机上,就可让 IDL 使用 8 位的伪彩色显示级别。退出 IDL,并重新启动IDL。在做任何操作之前,键入以下命令: IDLDevice,Pseudo_Color=8.Decomposed=0 为了确认是在使用8 位伪彩色显示级别,键入: IDLHelp, /Device 所显示的信息使读者确信使用的是伪彩色显示级别,并且所使用的颜色数为256 或少于256。如果想使用本书中的例子,每次进入 IDL 时都需要键入DEVICE命令。 可以将此命令放在 IDL 启

31、动文件中。查看IDL 文档资料以获取更多的详细资料。如果在 IDL 运行中多于256 种颜色,并且是在PC或 Macintosh 计算机上运行IDL,需要检查显示卡的设置参数以确保设置为256 色。一般通过显示器或显示面板完成。详细细节参考计算机文档资料。修改参数后必须重新启动IDL。如果喜欢在16 位或 24 位的颜色模式 (在 Macintosh和 PC计算机上只支持16 位,而且如果是 24 位也将作为16 位处理)中工作,那么键入以下命令以确保颜色分解已被关闭: IDLDevice, Get_Visual_Depth=thisDepth IDLIF thisDepth GT 8 THE

32、N Device, Decomposed=0 如果在这种模式下对颜色表做些修改,记住这些修改不会在显示窗口中立即更新。必须在显示窗口中刷新图形以查看这些颜色改变是否起作用。详细细节参考83 页的“ IDL 的颜色运用”章节。创建 IDL 的启动文件记住, 每次启动 IDL 来使用本书的命令时,都必须执行以上命令。为此,可以将这些命令输入 IDL 的启动文件中。 当每次 IDL 启动时, 启动文件中的命令都被执行,这就像在IDL命令提示符下键入这些命令。为了解如何在使用的计算机中创建IDL 开始文件,可在IDL命令行键入以下命令,以获取在线帮助:IDL? Startup 本书的风格习惯笔者尽量用

33、统一的风格贯穿全书,这样不会被本书文字的功能和目的所迷惑。首先, 在IDL 命令行或IDL 编辑器窗口所键入的命令总是以Courier字体形式来书写:Surface, data 在 IDL 命令行键入的命令都显示在IDL 提示符“ IDL”的后面: IDLSurface, data其它的IDL 命令都是在文本编辑窗口键入的。可以选择自己的文本编辑器或使用IDL提供的文本编辑器,这由读者决定。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 24 页 - - - - - -

34、 - - - 大写在本书中,用大写这种形式来书写IDL 命令。这种形式完全是任意的。 IDL对字母的大小写不敏感,但与操作系统打交道的命令(例如:UNIX 操作系统对IDL 所打开的文件名的大小写敏感) 和执行字符串比较命令时除外。大写可以有助于记住命令和关键字名,并且一目了然地知道命令行中哪些单词是函数名。所有 IDL 命令和关键字的第一个字母大写。此外, 任何有助于记忆的字母也用大写。例如:Surface, data, charsize=2.0, Color=180 XLoadCT Widget_Control, tlb, Set_UValue=info, /No_Copy 变量名的第一个

35、字母没有用大写字母,但是当变量名中的字母有可能构成单词时使用大写。例如: data=FIndGen(11) buttonValue=thisValue ptrToData=Ptr_New() IDL的保留字全部用大写字母,例如: REPEAT test UNTIL FOR j=0,10 DO BEGIN ENDWHILE 在 IDL 命令行或文本编辑器上,当键入命令时,可以随意使用大写字母。注释在 IDL 命令中,分号右边的任何文本都被视为是注释,IDL 解释器将忽略它。简言之,可在 IDL 的程序中写入注释。通常在分号的前后加上空格,并让注释行缩进三个空格。例如: ; This is the

36、 loop part of the program. FOR j=0,10 DO BEGIN data=j*2 count=count j ENDFOR 偶尔, 会在命令行的末端看到一个注释,这是在定义IDL 结构变量的字段时,特别这样做的。例如: info=r:r,$ ; The red color vector g:g,$ ; The green color vector b:b, ; The blue color vector 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1

37、1 页,共 24 页 - - - - - - - - - 续行符 IDL中的续行符是美元的符号“$” 。这表示IDL 命令延续到下一命令行(见上例)。在本书中将看到很多续行符。建议在 IDL 命令行中不使用续行符,应该在 IDL 命令行行输入完整的 IDL 命令。 IDL 命令行将忽略续行符。例如,可以用如下方法键入上述命令: IDLinfo=r:r, g:g, b:b 在出现输入错误或在以后需修改命令时,这将使得重新键入这些命令变得更加简单。有时需要完全按照书中出现的IDL 命令输入。笔者将告知什么情况下这样做。当在IDL命令行想键入For 循环时就需要这样做。在命令行中一次键入多行命令是非

38、常聪明的做法。必须让 IDL 解释器认为这些命令为一个命令。这就需要在 IDL 的命令行上正确使用行续符( $)和多行命令符(&) 。本书中所用的IDL 程序和数据文件当使用这本书时, 许多 IDL 程序和数据文件已经准备就绪。IDL 程序文件经常有一个.pro扩展名,数据文件有一个.dat 扩展名。还有一些.txt扩展名的文件。这些是文本文件。安装程序和数据文件建议创建一个名为coyote 的子目录,并把所有的程序,文本,数据文件都放在其中。coyote 子目录通常是IDL 目录下的一个子目录 (让 IDL 内部的系统变量!Dir指向这个目录) ,当然它并非一定要在这个目录下,可以在任何地方

39、创建。IDL 主目录是另外一个存放这些文件的好地方。当需要这些文件时,不直接在coyote 子目录下修改,而是将这些文件拷贝到当前工作目录下是一个好主意。这样就保留了原始的没有修改的文件。如果没有选择创建一个coyote 子目录,那么就将本书提供的程序将默认这些文件已经放在当前目录中。这个目录是一个启动IDL 时的目录,或者是在PC或 Macintosh 计算机上IDL 的 Preferences对话框中Startup所指定的目录。获取 IDL 的主目录和当前目录如果不知道IDL 的主目录是什么。启动IDL,键入以下命令: IDLCD, Current=homeDirectory IDLPri

40、nt, homeDirectory 当前目录不一定是主目录。在IDL 运行期间,可以用同样的命令随时获得当前目录: IDLCD, Current=currentDirectory IDLPrint, currentDirectory 注意,如果按上述做法装载数据文件时遇到问题,请确保是在所希望的目录下。不用IDL 主目录(例如:5.2 Windows 版的 IDL 软件中, IDL5.2 就是 IDL 的主目录)作为工作目录可能会是一个好主意,因为这样很容易删除重要文件。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整

41、理 - - - - - - - 第 12 页,共 24 页 - - - - - - - - - 下载本书所用的程序和数据文件书中文件可以通过互联网以匿名FTP登录下载。 如果在使用网络浏览器,进入 Coyotes Guide to IDL Programming热连接,网址是: http:/ 如果用匿名ftp ,文件可以通过网络浏览器在如下网址找到: ftp:/ 用文本或 ASCII 模式下载所有的程序和文本文件(例如:那些带.pro或.txt扩展名的文件) ,用 BINARY模式下载所有的数据文件(例如: 那些带 .dat扩展名的文件) 。如果愿意,并且电脑能解压缩zip 文件,下载 coy

42、otefiles.zip文件就可一次性地将所有的程序、文本文件和数据拷贝下来。确保 Coyote 目录在 IDL 的搜索路径内无论在什么地方创建coyote 目录或储存本书的文件,需要确保这个目录在 IDL 搜索路径中。在 IDL 中,路径用 !path系统变量给出。以后将学到更多关于该系统变量的作用,但现在只要知道它是一系列的子目录,当 IDL 遇到不认识的命令时就这些子目录查找相应的命令。打印该系统变量可以看到当前的IDL 搜索路径: IDLPrint, !path 如果使用的是PC机,这些子目录用分号隔开;在Macintosh 或 VMS机器上,它们用逗号隔开;在UNIX 机器上,它们用

43、冒号隔开。想在 IDL 搜索路径中添加coyote目录,当IDL 的当前目录在coyote目录下时键入AddPath 命令即可(如果没有创建coyote 目录,可以将IDL 的当前路径改变为存放本书文件的目录名,然后键入AddPath 命令)。使用 CD命令来转换到IDL 的当前的目录。例如,如果 coyote 目录是 IDL 主目录下的一个子目录,并且这个主目录是当前目录,可以键入如下命令来在IDL 的搜索路径中添加coyote 目录: IDLCD, coyote IDLAddPath 如果每次运行IDL 时都想进入coyote 目录 (或本书文件所在的目录)并且运行AddPath程序, 也

44、许会想到将该命令添加到IDL 启动文件中 (详细细节参考第四页的“创建 IDL 的启动文件”) 。或者, 想将 coyote 目录永久性地添加到IDL 的搜索路径中。(这取决于使用的操作系统和IDL 的配置文件。关于设置!Path 系统变量,可参考IDL 的在线帮助)拷贝数据文件如果愿意,可从计算机上其它地方拷贝本书所用到的IDL 数据文件,不必通过匿名的ftp来下载。为此,可使用CopyData 命令,这个命令是刚下载的文件之一。进入coyote 目录(或书中文件所在的目录),如果使用的是IDL5 版,只需键入CopyData: IDLCopyData 如果运行的是IDL 更早的版本, 将通

45、过 Demo 关键字为CopyData 程序提供IDL 的演示目录(演示目录名在IDL 先前版本中各不相同,而且不一定被安装) 。如在 PC机上演示目录经常命名为“ C:RSIIDLDEMO4” 。所以应该键入如下命令:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 24 页 - - - - - - - - - IDLCopyData,Demo=C:RSIIDLDEMO4 数据文件将从不同的地方被选出并拷贝到当前目录上。本书附有这些数据文件的一个列表,说明了它们的类型和

46、大小。见313 页的“附录 B: 数据文件描述” 。获取更多的帮助当在安装这些程序文件或在IDL 编程的其它方面需要帮助时,查看Coyotes Guide to IDL Progamming 网页。将找到关于本书和IDL 常规编程的信息。如果情况更糟的话,也可以在那里看到一张表格,通过该表格可以直接和笔者联系。Fanning软件顾问和Coyotes Guide to IDLProgramming的网址为: http:/ 使用 IDL 命令本书是一本实践性很强的书。当阅读它时, 笔者宁愿读者坐在电脑前,也不愿读者坐在火炉前。 笔者希望读者键入命令并查看发生了什么。为此, 本书前半部分的多数命令需

47、要在IDL 命令行上键入(如果想保存所键入的命令,可以创建一个日志文件来记下它们。参考第11 页的“创建日志命令” ) 。随着 IDL5.0的问世, IDL 慢慢地变得越来越像程序语言。例如,对象图形引擎并不真正地用来在IDL 命令行上使用的,而是专门设计用在IDL 编程中。但是从命令行键入IDL命令中能学到很多东西。特别是,能学会画出某些东西,测试一些东西,并可用数据文件做实验。称之为“循序渐进”。这是学习IDL 的最好方法之一。下面是刚开始所必需知道的。首先,将看到本书中的许多类似下面的命令: Contour,peak,lon,lat,XStyle=1,YStyle=1, /Follow,

48、$ Levels=vals,C_Label=1,0,1,0,0,1,1,0 如果知道所看到的东西是什么将非常有助于学习。IDL 命令解析在上面的命令中,单词 Contour 是 IDL 命令或所希望运行程序的名字。它必须被完整地拼出。一些命令会很长,但不能缩写。命令行中peak,lon,以及 lat是变量。它们可以用来将信息传入或传出命令或程序。XStyle,YStyle,Follow,Levels以及 C_Lables 为关键字。一般来将关键字对命令来说可选的。如同变量,它们用来将信息传入或传出IDL 命令或 IDL程序。定位参数在以上命令中的三个变量peak,lon,及 lat称为定位参数

49、。在这个特殊例子中,这些定位参数为输入变量(例如,它们把数据传入命令),但仅仅看到她们并不能辨认出其是不是输入变量。 它们也可以简单地用作输出变量(或者,在某种情况下,它们既可以是输入变量也可以是输出变量) 。其命令行语法完全一样。只有通过上下文,通过阅读关于这类命令或名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 24 页 - - - - - - - - - 程序的公开文档才能辨别。一个定位参数在命令名的右边有其确定的顺序。(注意,以下讨论的关键字参数不会影响定位参数

50、的顺序) 。在这个例子中,peak 变量必须在Contour 命令右边,在lon 变量的左边。lon 变量必须在peak 变量的右边, lat变量的左边。不能遗漏第二个参数,只给定第一和第三个定位参数。例如,下面这两条命令的格式是不正确的并会导致错误。第一条命令的定位参数顺序被改变,第二条命令遗漏了第二个定位参数。 Contour, lon, peak, lat, XStyle=1, YStyle=1, /Follow, $ Levels=vals, C_Labels=1,0,1,0,0,1,1,0 Contour, peak, , lat, XStyle=1, YStyle=1, /Foll

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com