IDL入门教程1Word文档下载推荐.docx
- 文档编号:18718583
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:30
- 大小:38.04KB
IDL入门教程1Word文档下载推荐.docx
《IDL入门教程1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《IDL入门教程1Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
用矢量字体使用XYOut59
排列文本60
删除文本61
改变文本的方向61
给图形显示添加线和符号61
图形显示添加色彩62
第三章图像数据处理65
本章概要65
图像处理65
显示图像65
调整图像数据67
显示24位图像69
控制图像显示顺序70
改变图像尺寸70
在显示窗口中定位图像72
从显示器中读取图像75
IDL中基本的图像处理75
直方图均衡化76
平滑图像77
增强图像棱边79
图像的频域滤波80
第四章图形显示技术83
本章概要83
IDL的颜色运用83
使用索引颜色模式和RGB颜色模式83
在24位显示设备上装载色谱表88
获得色谱表的拷贝88
修改和创建色谱表89
保存自己的色谱表90
创建自己的轴标注91
调整轴刻度间隔91
格式化轴的标注92
用IDL处理残缺的数据95
用IDL建立三维坐标系97
建立三维散点图97
从图形原点定位3D坐标轴99
组合简单图形显示100
IDL中的动画数据102
建立动画工具103
装载动画缓冲区103
运行动画工具103
动画的控制103
存储动画的像素映射图104
其它类型图形数据的动画104
网格化数据以便图形显示105
德洛内三角形法网格化106
数据的球形网格化108
第五章 图形显示技巧110
本章概要110
将光标用于图形显示110
什么时候返回的光标位置?
110
哪一个鼠标键和光标共同作用呢?
111
用光标标注图形输出111
在图像上使用Cursor命令113
在循环中使用Cursor命令113
从显示中删除注释114
删除注释的异或法114
删除注释的设备拷贝法116
Z图形缓冲区中的图形显示技巧120
Z图形缓冲区的实现121
一个Z图形缓冲区实例:
两个曲面121
用Z图形缓冲区使图像变形123
Z图形缓冲区中的透明效果126
将Z图形缓冲区效果与体数据着色相结合127
第六章在IDL中读写数据129
本章概要129
打开文件进行读写129
查找和选择数据文件130
获取逻辑设备号131
读写格式化数据132
写自由格式文件133
读写自由格式文件的实例136
用确定的文件格式写入139
从字符串中读取格式数据141
读写非格式化数据141
读取非格式化图像数据文件142
写非格式化图像数据文件142
非格式化数据文件的一些问题144
用关联变量存取非格式化数据文件144
读写常用文件格式的文件147
创建彩色GIF文件147
创建彩色JPEG文件148
查询图像文件信息150
第七章图形硬拷贝输出151
本章概要151
选择图形硬拷贝输出设备151
配置图形硬拷贝输出设备152
常用的Device命令关键字153
创建PostScript文件154
将图形送到硬拷贝设备中154
打印PostScript文件155
在运行MacOS系统的计算机上打印PostScript文件156
在Windows计算机上打印PostScript文件156
生成封装的PostScript文件输出156
封装PostScript图形的预览157
生成彩色的PostScript输出157
PostScript中的彩色图像与灰度图像158
在PostScript设备上创建高质量的输出159
显示设备和PostScript设备之间的相同点159
显示设备与PostScript设备之间的不同点159
在横向输出模式中计算PostScript的偏移量172
用PS_Form配置PostScript设备173
配置和使用打印设备174
用打印设备定位图形175
第八章IDL编程基础178
本章概述178
编写IDL批处理文件178
编写IDL主程序179
过程和与函数中变量的作用范围181
创建定位参数181
定义可选的或必须的定位参数182
定义关键字183
创建输出型参数186
编写IDL函数189
方括号和函数的调用190
使用程序控制语句191
IDL中表达式的真和假191
将多个语句处理成单个语句192
If…Then…Else控制语句192
条件表达式194
FOR循环控制语句194
WHILE循环控制语句194
REPEAT...UNTIL循环控制语句194
CASE控制语句195
GOTO控制语句195
错误处理控制语句196
编译和执行IDL程序模块198
程序编译规则:
198
程序编译和自动运行规则199
特殊编译命令199
第九章编写IDL程序201
本章概述201
基本的ImageBar程序201
给程序ImageBar增加一个“先擦除”功能205
向ImageBar程序增加颜色敏感功能205
给ImageBar中的命令传递关键字207
根据窗口大小改变字符大小209
程序ImageBar的最终代码210
在图形用户界面中包装ImageBar211
第十章编写简单的组件程序212
本章概述212
组件程序的结构212
组件程序如何对事件作出反应213
编写组件定义模块213
定义和创建程序组件214
在屏幕上实现组件216
使绘图组件成为当前图形窗口216
在绘图组件窗口上显示图形216
保存程序运行时所需要的信息216
创建事件循环和注册程序217
运行程序218
创建无阻塞组件程序219
编写事件处理模块219
事件结构中的公共字段219
事件处理函数220
将事件处理程序和组件联系起来221
编写Quit按钮的事件处理程序222
编写改变图形窗口大小的事件处理程序223
进行小量地修改224
添加颜色敏感224
采用更高效的内存管理225
第十一章组件编程技巧229
本章概述229
改变颜色表229
保护公共块230
一个可选择颜色表的工具230
指定GroupLeader233
给组件程序增加GroupLeader234
在24位显示器上改变颜色表235
在组件程序中使用指针237
使用Cleanup过程防止内存泄露238
使用伪事件进行程序通信239
创建一个具有“记忆功能”的程序240
保护组件程序的颜色243
通过组件跟踪事件来保护颜色244
通过绘图组件事件来保护颜色245
保存或者发布程序的图形245
第十二章对话框程序249
本章概述249
创建模式对话框249
阻塞的组件程序249
模式组件程序250
编写模式对话框的定义模块250
编写模式对话框的事件处理模块254
测试模式对话框程序255
创建非模式的对话框256
编写非模式对话框程序256
编写非模式对话框的事件处理模块258
测试非模态对话程序259
附录A组件的事件结构261
事件结构的定义261
公共字段的定义261
基本组件的事件结构261
base组件261
按钮组件261
绘图组件262
下拉式列表组件262
标签组件262
列表组件262
滑动条组件262
表单组件263
文本组件264
复合组件的事件结构265
CW_Animate265
CW_Arcball265
CW_BGroup265
CW_Clr_Index265
CW_Color_Sel265
CW_DefROI266
CW_Field266
CW_Form266
CW_Flisder266
CW_Orient266
CW_PDMenu266
CW_RGBSlider266
CW_Zoom267
组件程序的事件结构267
Xcolors267
其他组件的事件结构267
键盘焦点事件267
组件退出请求事件267
组建计时器事件268
组件跟踪事件268
附录B数据文件描述269
第一章起步篇
本章概述
本章意在解释写这本书的目的,通过阅读本书能学到什么,以及为读者提供一些能使读者更方便地使用本书中IDL编程例子的信息。
将学会如下几点:
1.本书是如何组织的。
2.怎样使用本书。
3.如何下载和组织随本书附带的文件。
4.如何使用IDL的变量,关键字和命令。
5.如何创建和运行IDL的矢量和数组。
6.如何使用IDL的图形窗口。
书写本书的背景
本书是在多年来教科学家和工程师使用和操作IDL(InteractiveDataLanguage)的基础上创作的,而且教学的绝大部分时间是为IDL的开发者ResearchSystems公司工作。
当笔者在回答一个又一个问题之后,笔者意识到多数问题属于一些同类问题。
事实是,多数人想用IDL做许多同样的事情。
想做的是分析和演示数据,写出高效率的程序来解决科学问题,并且最主要的是快速做完工作。
多数人并不想做的事情是阅读计算机软件教科书。
IDL是一套大型软件并且在不但壮大。
随之而来的是大量的文档资料,笔者知道没有人愿意去读这些资料。
如果让某人独自开始学习IDL的奥秘,IDL将是件可怕的事情,甚至对有经验的用户来说也是一样。
本书意在使读者掌握IDL,教给读者在日常运行IDL所必需知识的80%。
更为重要的是,本书的例子使IDL更容易理解。
无论如何,本书将演示如何使用IDL。
本书的读者是IDL初学者,特别是哪些不得不自学IDL的读者。
学好IDL需要很长的阶段。
多数人不能利用工作中的时间学习IDL,笔者想写一本能满足这两类人学习IDL的书。
总之,本书为不喜欢读教科书并能通过例子学得最好的人全面介绍IDL的精髓。
本书在IDL编程技术和技巧方面只做了简要概略,而这些技术只能通过练习获取。
最根本的是,这是一本笔者在学习IDL时所期望的书。
运用本书
笔者曾试图使本书每章能具有独立性,这样能拿起本书就可翻到任何一章去学习最需要的知识。
但在安排章节时,或多或少是根据笔者在IDL教学时的顺序安排。
如果刚开始学IDL,那么按照书中的顺序从头开始学完本书将更合理。
书中后面的几章编程教程是建立在前面几章中讲过的概念和技巧的基础上的。
IDL所需的版本
希望读者在学习本书时使用的是最新的IDL版本。
本书写作时使用的是IDL5.2版。
使用较早版本可以使用本书中编程例子的大部分,但笔者没有试图使本书中的例子程序与较早的IDL软件版本兼容。
特别是,较早版本的用户在使用长文件名(如果在Windows环境下)、指针(必须用句柄代替它)以及方括号来引用数组下标时(必须用圆括号代替它)时存在困难。
如果需要升级软件,可以在ResearchSystems公司的WWW网址Systems公司和当地IDL代理商的信息,包括如何升级软件的信息。
IDL运行期间所需颜色的数量
书中程序例子是按IDL在256种颜色模式下运行编写的,使用通常称为索引颜色的模式(详细细节参考83页的“使用IDL的颜色”章节)。
这意味着所显示的颜色是索引号或是与色彩表相连的颜色,这样在色彩表中的颜色变化时,所显示的颜色也一同变化。
启动IDL并在IDL命令行键入如下IDL命令,能发现所用的颜色模式。
IDL>
Window
Print,!
D.N_Colors
当!
D.N_Colors的值大于或等于256时,仍然能够使用书本中的例子,但必需对代码做一点改变。
大多数人使用的颜色值都小于256。
比较典型的颜色值介于200与245之间。
笔者推测在本书中至少要用150种颜色。
那就是说,!
D.N_Colors的值应在150至256之间。
少于150种颜色会怎样?
如果在IDL运行中少于150种颜色,并且计算机运行在公用桌面环境(CDE),可以将CDE环境下的颜色数设置为不是“高”的那种。
设置为“中”或“低”的情况下,程序将运行良好。
在视窗环境操作手册的在线帮助中查找如何改变这个设置。
如果不是用的共用桌面环境,颜色数也少于150,并且不是在PC机或Macintosh计算机上运行IDL的话,那么很可能运行了其它应用程序,该应用程序使用了要分配给IDL的颜色值。
网页浏览器很可能就是这样的应用程序。
退出当前任务,重新登录,并在重新登录后最先启动IDL。
键入以上命令,如果仍然得到少于150种的颜色,那么需要联系ResearchSystems公司的技术人员,以获取更多的帮助。
如果颜色数少于150种,并且是在PC或Macintosh计算机上运行的IDL,那么,检查显卡以确保设置为256色。
一般可通过显示器的控制面板完成。
详细细节参考计算机文档资料。
多于256种颜色将会怎么样呢?
如果在IDL运行中多于256种颜色,并且IDL是运行在XWindow环境下的计算机上,就可让IDL使用8位的伪彩色显示级别。
退出IDL,并重新启动IDL。
在做任何操作之前,键入以下命令:
Device,Pseudo_Color=8.Decomposed=0
为了确认是在使用8位伪彩色显示级别,键入:
Help,/Device
所显示的信息使读者确信使用的是伪彩色显示级别,并且所使用的颜色数为256或少于256。
如果想使用本书中的例子,每次进入IDL时都需要键入DEVICE命令。
可以将此命令放在IDL启动文件中。
查看IDL文档资料以获取更多的详细资料。
如果在IDL运行中多于256种颜色,并且是在PC或Macintosh计算机上运行IDL,需要检查显示卡的设置参数以确保设置为256色。
一般通过显示器或显示面板完成。
修改参数后必须重新启动IDL。
如果喜欢在16位或24位的颜色模式(在Macintosh和PC计算机上只支持16位,而且如果是24位也将作为16位处理)中工作,那么键入以下命令以确保颜色分解已被关闭:
Device,Get_Visual_Depth=thisDepth
IFthisDepthGT8THENDevice,Decomposed=0
如果在这种模式下对颜色表做些修改,记住这些修改不会在显示窗口中立即更新。
必须在显示窗口中刷新图形以查看这些颜色改变是否起作用。
详细细节参考83页的“IDL的颜色运用”章节。
创建IDL的启动文件
记住,每次启动IDL来使用本书的命令时,都必须执行以上命令。
为此,可以将这些命令输入IDL的启动文件中。
当每次IDL启动时,启动文件中的命令都被执行,这就像在IDL命令提示符下键入这些命令。
为了解如何在使用的计算机中创建IDL开始文件,可在IDL命令行键入以下命令,以获取在线帮助:
IDL>
?
Startup
本书的风格习惯
笔者尽量用统一的风格贯穿全书,这样不会被本书文字的功能和目的所迷惑。
首先,在IDL命令行或IDL编辑器窗口所键入的命令总是以Courier字体形式来书写:
Surface,data
在IDL命令行键入的命令都显示在IDL提示符“IDL>
”的后面:
Surface,data
其它的IDL命令都是在文本编辑窗口键入的。
可以选择自己的文本编辑器或使用IDL提供的文本编辑器,这由读者决定。
大写
在本书中,用大写这种形式来书写IDL命令。
这种形式完全是任意的。
IDL对字母的大小写不敏感,但与操作系统打交道的命令(例如:
UNIX操作系统对IDL所打开的文件名的大小写敏感)和执行字符串比较命令时除外。
大写可以有助于记住命令和关键字名,并且一目了然地知道命令行中哪些单词是函数名。
所有IDL命令和关键字的第一个字母大写。
此外,任何有助于记忆的字母也用大写。
例如:
Surface,data,charsize=2.0,Color=180
XLoadCT
Widget_Control,tlb,Set_UValue=info,/No_Copy
变量名的第一个字母没有用大写字母,但是当变量名中的字母有可能构成单词时使用大写。
data=FIndGen(11)
buttonValue=thisValue
ptrToData=Ptr_New()
IDL的保留字全部用大写字母,例如:
REPEATtestUNTIL
FORj=0,10DOBEGIN
ENDWHILE
在IDL命令行或文本编辑器上,当键入命令时,可以随意使用大写字母。
注释
在IDL命令中,分号右边的任何文本都被视为是注释,IDL解释器将忽略它。
简言之,可在IDL的程序中写入注释。
通常在分号的前后加上空格,并让注释行缩进三个空格。
;
Thisisthelooppartoftheprogram.
data=j*2
count=count+j
ENDFOR
偶尔,会在命令行的末端看到一个注释,这是在定义IDL结构变量的字段时,特别这样做的。
info={r:
r,$;
Theredcolorvector
g:
g,$;
Thegreencolorvector
b:
b,};
Thebluecolorvector
续行符
IDL中的续行符是美元的符号“$”。
这表示IDL命令延续到下一命令行(见上例)。
在本书中将看到很多续行符。
建议在IDL命令行中不使用续行符,应该在IDL命令行行输入完整的IDL命令。
IDL命令行将忽略续行符。
例如,可以用如下方法键入上述命令:
info={r:
r,g:
g,b:
b}
在出现输入错误或在以后需修改命令时,这将使得重新键入这些命令变得更加简单。
有时需要完全按照书中出现的IDL命令输入。
笔者将告知什么情况下这样做。
当在IDL命令行想键入For循环时就需要这样做。
在命令行中一次键入多行命令是非常聪明的做法。
必须让IDL解释器认为这些命令为一个命令。
这就需要在IDL的命令行上正确使用行续符($)和多行命令符(&
)。
本书中所用的IDL程序和数据文件
当使用这本书时,许多IDL程序和数据文件已经准备就绪。
IDL程序文件经常有一个.pro扩展名,数据文件有一个.dat扩展名。
还有一些.txt扩展名的文件。
这些是文本文件。
安装程序和数据文件
建议创建一个名为coyote的子目录,并把所有的程序,文本,数据文件都放在其中。
coyote子目录通常是IDL目录下的一个子目录(让IDL内部的系统变量!
Dir指向这个目录),当然它并非一定要在这个目录下,可以在任何地方创建。
IDL主目录是另外一个存放这些文件的好地方。
当需要这些文件时,不直接在coyote子目录下修改,而是将这些文件拷贝到当前工作目录下是一个好注意。
这样就保留了原始的没有修改的文件。
如果没有选择创建一个coyote子目录,那么就将本书提供的程序将默认这些文件已经放在当前目录中。
这个目录是一个启动IDL时的目录,或者是在PC或Macintosh计算机上IDL的Preferences对话框中Startup所指定的目录。
获取IDL的主目录和当前目录
如果不知道IDL的主目录是什么。
启动IDL,键入以下命令:
CD,Current=homeDirectory
Print,homeDirectory
当前目录不一定是主目录。
在IDL运行期间,可以用同样的命令随时获得当前目录:
CD,Current=currentDirectory
Print,currentDirectory
注意,如果按上述做法装载数据文件时遇到问题,请确保是在所希望的目录下。
不用IDL主目录(例如:
5.2Windows版的IDL软件中,IDL5.2就是IDL的主目录)作为工作目录可能会是一个好注意,因为这样很容易删除重要文件。
下载本书所用的程序和数据文件
书中文件可以通过互联网以匿名FTP登录下载。
如果在使用网络浏览器,进入Coyote'
sGuidetoIDLProgramming热连接,网址是:
如果用匿名ftp,文件可以通过网络浏览器在如下网址找到:
ftp:
//
用文本或ASCII模式下载所有的程序和文本文件(例如:
那些带.pro或.txt扩展名的文件),用BINARY模式下载所有的数据文件(例如:
那些带.dat扩展名的文件)。
如果愿意,并且电脑能解压缩zip文件,下载coyotefiles.zip文件就可一次性地将所有的程序、文本文件和数据拷贝下来。
确保Coyote目录在IDL的搜索路径内
无论在什么地方创建coyote目录或储存本书的文件,需要确保这个目录在IDL搜索路径中。
在IDL中,路径用!
path系统变量给出。
以后将学到更多关于该系统变量的作用,但现在只要知道它是一系列的子目录,当IDL遇到不认识的命令时就这些子目录查找相应的命令。
打印该系统变量可以看到当前的IDL搜索路径:
path
如果使用的是PC机,这些子目录用分号隔开;
在Macintosh或VMS机器上,它们用逗号隔开;
在UNIX机器上,它们用冒号隔开。
想在IDL搜索路径中添加coyote目录,当IDL的当前目录在coyote目录下时键入AddPath命令即可(如果没有创建coyote目录,可以将IDL的当前路径改变为存放本书文件的目录名,然后键入AddPath命令)。
使用CD命令来转换到IDL的当前的目录。
例如,如果coyote目录是IDL主目录下的一个子目录,并且这个主目录是当前目录,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IDL 入门教程