网站大量收购闲置独家精品文档,联系QQ:2885784924

《IDL入门教程_08(IDL编程基础)》.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《IDL入门教程_08(IDL编程基础)》.doc

第八章 IDL编程基础 本章概述 本章的目的是学习IDL基本编程技巧,具体的来说,可以学到以下方面内容: IDL批处理文件、主程序、过程和函数之间的区别; 如何在IDL程序中输入和输出信息; 如何在IDL程序中使用定位参数和关键字; 如何编译和运行IDL程序; 程序中的常用控制语句语法 如果把IDL程序看作一系列IDL命令的话,那么IDL程序——或称为IDL程序模块——可以分为四类:(1)批处理文件(2)主程序(3)过程(4)函数。 编写IDL批处理文件 最简单的程序是一个IDL批处理文件。一个批处理文件由一系列命令组成,这与在IDL命令行敲入的命令完全一样。大多数人用批处理文件是为了自动执行自己在IDL命令行一次又一次敲入的命令。 例如,假设要在IDL中打开并显示一组图像,如果已经将图像数据读入到变量image中,那么用来显示图像的命令可以如下所示: IDL thisImage = BytScl (image, Top = 199) IDLLoadCT, 5, NColors = 200 IDL s = Size (image) IDL Window, /Free, XSize = s[1], ysize = s[2] IDL TV, thisImage 这五行代码并不多,但键入三、四次之后,可能已决定把他们放在一个名为ImageO文本文件中。这文件就是所谓的批处理文件。 要执行该文件中的命令,必须把@放在IDL命令行的开头,其后再加上文件名即可。(.pro为默认扩展名。如果加了其它扩展名,那么应该把文件名称写完整)如下所示: IDL @ImageOut 注意,文件名没有在引号中,这与IDL文件名的一般规则是不一致的。 IDL会严格执行批处理文件中的命令,就像在命令行上键入一样。这意味着有必要用行续字符($)和其他命令行语言来让IDL确认键入的命令。如果在文件中的命令输入错误,那么出现的错误结果和在命令行键入命令出现的错误结果是一样的。 假设要打开8到10个图像文件,因而不得不分别打开每个图像文件,读取数据,然后运行批处理命令将每一个图像显示在窗口中。具体地说,可以这样自动进行读取数据和显示图像过程: theseFiles = FindFile (‘*.img’, count = numFiles) Print, ‘number of files found: ‘, numfiles For j = 0, numFiles-1 Do Begin Openr, lun, theseFiles[j], /get_lun Image = BytArr (512,512) Readu, lun, image Free_lun, lun thisImage = BytScl (image, top =199) LoadCT, 5, Ncolors =200 S = size (image) Window, /Free, XSize = s[1], YSize = s[2] TV, thisImage Endfor 但是这个文件不适合于作批处理文件,因为FOR循环里面有多行语句。如果没有续行符($)和命令连接符()的话,这种程序是很难写在命令行中的。为了自动执行由多行控制语句组成的命令,最好使用IDL主程序。 编写IDL主程序 IDL主程序和批处理文件在很多方面很相似,但也存在着很大的区别。像批处理文件一样,一个主程序也包含一系列命令。但与之不同的是,这些命令必须以END语句结束。例如,上面自动读取数据和显示图像的程序可以写成一个IDL主程序: theseFiles = FindFile (‘*.img’, count = numFiles) Print, ‘number of files found: ‘, numfiles For j = 0, numFiles-1 Do Begin Openr, lun, theseFiles[j], /get_lun Image = BytArr (512,512) Readu, lun, image Free_lun, lun thisImage = BytScl (image, top =199) LoadCT, 5, Ncolors =200 S = size (image) Window, /Free, XSize = s[1], YSize = s[2] TV, thisImage Endfor End 批处理文件和IDL主程序最大的区别就是主程序的命令语句先由IDL编译器编译成程序模块,然后才执行代码。这就是为什么在主程序中可以有多行控制语句的原因。 如果将上面的代码保存在文件ImageO中,键入如下命令就可以编译并运行这个程序模块: IDL .R

您可能关注的文档

文档评论(0)

ycwf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档