第九章 编写 IDL 程序 本章概述 尽管IDL 是一个程序语言,但在官方的IDL 文档里是不可能发现如何编写IDL 程序的方法。当然,这并不意味着只有一个正确的方法。任何人,只要了解过那些和我一样的IDL程序员,都知道一个优秀的IDL 程序员和一个不是那么优秀的程序之间的差距是很明显的。作为和 IDL 程序初学者长期打交道的人,作者见过了很多不是很好的程序。 出现这个问题,可以肯定是由于对 IDL 信息缺乏了解。因为大多数这样的人毕竟是科学家,而不是电脑程序员。他们很聪明,并且在干自己的本行,但他们并不是去编写优秀的电脑程序。 如果只要遵循几条基本的原理,他们编写的程序就会出色,而且对他们自己也更有用。因此,本章就是阐述这几个原理。 本章的任务就是展示怎样编写一个合理的复杂图形演示程序。而且这个程序能从 IDL命令行上调用。同时也希望该程序能够将数据显示在可改变大小图形窗口中,从 IDL 命令行上直接打印,或者直接传送到 PostScript 文件中。此外,这个程序能够轻松将数据文件保存成 GIF 或 JPEG 文件。即使这写程序采用不同的颜色,这个程序应该是具有颜色敏感功能,而且能够和其他程序共存。而且,在程序中增加一个图形界面应该很简单,即使那些对该程序一知半解的用户也可以容易掌握。 再者,这个程序应该维护简单,易扩展。简而言之,该程序应当以模块化方式来编写。尽管可能不清楚为什么要这样做,这里还是有必要介绍以一下面向对象编程的概念,特别是自身模块和方法的概念。如果已经了解这个程序的原理 ,那么就能够毫无困难地理解在IDL5 中引进的对象类和方法方面的复杂知识。 基本的 ImageBar程序 这个基本程序的思路很简单,即显示图像,在图像周围显示坐标轴。并在此图像的上方绘制一个颜色栏,用来表示图像色彩与其值的相关性。将这个程序取名为 Imagebar。结果与图 80 相似。 图片8 2 :此程序显示了一个由轴环绕的图象,图象上方的色彩栏标出了图像值的范围。 这个程序的基本框架很简单。图像用一个类似于 Tvimage 的命令来显示。(程序Tvimage,如果带关键字Position 就可用来定位显示图像。此外,它还可以根据图像输出设备的不同而输出不同大小的图像。详细信息请参阅72 页的“用标准化坐标来定位图像”。)坐标轴是用带关键字 NoData 的Plot 命令绘制,色彩栏用 Colorbar 命令显示的。(程序Coloebar是并与本书配套使用的程序之一。) 注意,如果是在 24...