IDL程序1-基础语法与数据处理解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日基础语法与数据处理授课人:李景刚手机:13810912337Email:sharp@ires.cn北京师范大学资源学院2004年9月20日IDL程序12004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日2提纲1.参考资料2.什么是IDL3.IDL主要功能4.IDL集成开发环境5.IDL应用程序基础6.IDL程序开发过程7.IDL的图形图像处理2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日3一、参考资料1.在线帮助://参考书闫殿武,IDL可视化工具入门与提高,机械工业出版社,2003。定价:42.00元刘光,地理信息系统二次开发教程-语言篇,清华大学出版社,2003。定价:35.00元2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日4二、什么是IDL?InteractiveDataLanguage——交互式数据语言主要特征:高级图像处理能力、交互式二维和三维图形技术、面向对象的编程方式、OpenGL图形加速、量化可视化表现、集成数学与统计学算法、灵活的数据输入输出方式、跨平台图形用户界面工具包、连接ODBC兼容数据库及多种程序连接工具等。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日5三、IDL主要功能1.IDL是完全面向矩阵的,因此具有快速分析超大规模数据的能力。2.具有高级图像处理能力、交互式二维和三维图形技术。3.集成了数学分析和统计软件包,提供强大的科学计算模型。4.具有完善的信号处理和图像处理软件包。5.IDLGUIBuilder能快速进行界面开发。6.最优化输出。7.IDL新增加了小波变化工具包,信息损失比FFT小的多。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日6IDL应用领域•地球科学•医学影像•图像处理•软件开发•大学教学•实验室测试技术天文信号处理防御工程数学分析统计2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日7基于IDL的系列产品IDL-InteractiveDataLanguageION-IDLOntheNetVIP-VisualIDLProgrammingENVI-EnvironmentforVisualizingimagesRiverTools-AnalysisfordigitalterrainandrivernetworkmodelingNOESYS-Organize,visualize&shareHDFdata2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日8IDL内带的例子IDLdemo回车2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日9四、IDL集成开发环境命令行多文档面板工程窗口变量查看窗口输出日志窗口菜单栏和工具栏状态栏2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日10五、IDL应用程序基础1.宽松的语法检测机制分隔符为“,”,而非空格不分大小写变量无需事先说明换行符:$注释符:;2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日112.变量变量无需事先声明;变量的名必须以字母开头,可以包括其它字母、数字、下划线、美元符号。最长可达255个字符,但变量大小取决于计算机配置和操作系统;大小写没有区别,名称中不能有空格;IDL中的保留词不能作为变量的名称。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日123.基本数据类型在数据类型的转换中,如果输出变量类型的字节数少于输入变量类型的字节数,将会发生截断现象。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日134.数组1.IDL是面向矩阵的语言,几乎所有运算都可以在数组上使用。2.数组元素的存储是按列进行的,与其它的语言有区别。3.数组下标是从零开始的,如果某些下标超出了范围,则该下标将被转换为在允许范围内的最小或最大的下标值。4.被整数除时需要谨慎:当一个整形变量被另一个整形变量除时,IDL程序经常会出错,有可能会出现一个零数组2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日14零数组和索引数组的创建函数2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日15矩阵操作A=bytarr(512,512)列行b=tan(a)+10子区处理:A(*,1)表示第2行的所有列A(*,1:10)表示第2-11行的所以列2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日16决定数组性质的函数函数名称返回值函数名称返回值N_elements()数组元素的数目Variance()数组的方差Size()数组大小和类型的信息Stddev()数组的标准差Min()数组的最小值Moment()平均值、方差、倾斜度、峰度Max()数组的最大值标准差、平均绝对偏度Mean()数组的平均值Total()数组元素的总和2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日17矩阵操作A#B表示A的列乘以B的行A##B表示A的行乘以B的列Transpose矩阵转置a[i,j]=a[j,i]……2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日18WHERE函数Indices=where(datagt0.4anddatalt0.5)Data[indices]=1.02004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日195、IDL程序批处理:由一系列IDL命令组成,以IDL-@batchfile方式运行。批处理文件运行时并不编译,因此使用控制结构时必须大量使用续行符($),给书写、理解造成困难。主程序:与批处理相似,但以end结束,以IDL-.runprofile方式运行。主程序运行时先编译,因此可以正常使用控制结构。过程:与主程序相似,但以proproname开始,以end结束。以IDL-proname方式运行(也可以先运行IDL-.compileproname,编译但不运行)。函数:与过程相似,但以functionfnname开始,以end结束,并以return语句返回一个IDL变量。以IDL-ret=fnname(para_list)方式运行。在IDL系统中,一个过程或函数即为一个新的IDL命令。变量作用范围:批处理和主程序方式的变量为全局变量,可以在IDL开发环境中使用。过程和函数的变量为局部变量,只在过程和函数运行过程中有效。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日20关系运算符EqequaltoNenotequaltoLelessthanorequaltoLtlessthanGegreaterthanorequaltoGtgreaterthan2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日21常用控制语句Begin–EndIf–Then–ElseCaseXof–else–endcaseFor–DoWhile–DoRepeat–UntilExpr?Expr1:expr2(条件判断语句)2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日22If语句If条件then语句If条件thenbegin语句EndifIf条件then语句else语句If条件thenbegin语句Endifelsebegin语句endesle当特定的条件为真时,If语句执行单个语句或一个语句模块。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日23Case语句Case表达式of情况1:情况2:语句情况3:begin语句endelse:语句endcase根据一个标量表达式来选取某个语句或语句块运行。当表达式和一系列情况中的第一个匹配成立时,相应的语句或语句块被执行(只有一种匹配的情况被识别)。当语句执行完毕,case语句结束。如果没有发现匹配的,那将执行else下的语句或语句块。如果没有else语句,此时将发生错误,并且中断运行。建议都加上“else”。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日24For语句ForI=v1,v2do语句ForI=v1,v2incdo语句ForI=v1,v2incdobegin语句endforFor语句循环执行一个语句或一个语句块,该循环安特定的步长从初始值上升或下降至结尾值。前面两种形式,每次循环只执行一个语句;而第三种情况执行一个语句块。在每一次循环中,I的值以步长inc增加或减少,这依赖于inc的值是正还是负。没有指定inc,循环则以步长1递增。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日25While语句While条件do语句While条件dobegin语句Endwhile当特定的条件为真时,while语句执行单个语句和一个语句块。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日26Repeat语句Repeat语句until条件Repeatbegin语句Endrepuntil条件Repeat语句执行单个语句和一个语句块,直到某个特定条件为真。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日27Return语句Return,结果ReturnReturn语句在当前程序单元中产生一个即时出口,并返回控制。在的一种形式中返回一个变量“结果”。这种格式在函数中具有强制性,因为函数必须返回一个变量值。第二种形式在过程中使用。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日28Switch语句Switch表达式情况1:情况2:语句情况3:begin语句endelse:语句endswitchSwitch语句执行转到一系列情况中的第一种匹配情况,然后执行某个语句或语句块。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日29Case和switch语句的区别Case语句一旦找到第一种匹配的情况,就不会考虑其他的情况,而switch语句将继续转到下一种情况;没有找到匹配相就要执行else语句,如果没有else语句,case语句会出现错误信息,整个运行停止,switch语句则只停止其自身的执行,而其他语句进行执行。2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日30x=2casexOF1:PRINT,'one'2:PRINT,'two'3:PRINT,'three'4:PRINT,'four'ENDcaseIDLprints:twox=2SWITCHxOF1:PRINT,'one'2:PRINT,'two'3:PRINT,'three'4:PRINT,'four'ENDSWITCHIDLprints:twothreefourSwitch语句中如果不想向下执行的话,可以加入break语句2004年资源学院“空间分析与空间模型”课,第3讲授课人:李景刚2004年9月20日31Goto语句使用goto语句可以跳动当前程序单元的指定位置。其形式:Goto,标号指向的位置由“标号”标记,该标记号插入到需要指向的位置。G

1 / 59
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功