《遥感图像处理及ENVIIDL操作实践》由会员分享,可在线阅读,更多相关《遥感图像处理及ENVIIDL操作实践(26页珍藏版)》请在金锄头文库上搜索。
1、1IDL 基本操作介绍课题名称: 遥感图像处理及 ENVIIDL 操作实践 任课教师: 2目录目录一、一、IDL 简介简介.31.IDL特殊符号说明.31.1.大写.31.2.注释符.31.3.续航符.32.IDL 语法基础.32.1.变量.32.2.数组.53.IDL 编程基础.63.1.定义和编译程序.63.2.命名和编译源文件.73.3.程序控制语句.7二、二、IDL 基本操作介绍基本操作介绍.91.题目及要求.92.解决方案.92.1数据说明.92.2二进制文件读取.102.3各像元的线性变化趋势及显著性概率计算.122.4有效物候区返青期平均变化趋势统计.142.5制图输出线性变化趋
2、势.17三、三、总结总结.263一一、 IDL 简简介介IDL(Interactive Data Language)交互式数据语言是进行二维及多维数据可 视化分析及应用开发的理想软件工具。作为面向矩阵、语法简单的第四代可视 化语言,IDL 致力于科学数据的可视化和分析,是跨平台应用开发的最佳选择。 它集可视、交互分析、大型商业开发为一体,为用户提供了完善、灵活、有效 的开发环境。IDL 为用户提供了可视化数据分析的解决方案,既可以让科学研 究人员交互式浏览和分析数据,又为程序员提供了快速程序原型开发并跨平台 发布的高级编程工具。IDL 使科学家无需写大量的传统程序就可直接研究数据。 IDL 被
3、广泛应用于地球科学、医学影像、图像处理、软件开发、大学教学、实 验室研究、测试技术、天文、信号处理、防御工程、数学分析、统计等诸多领 域。1. IDL 特殊符号说明特殊符号说明在 IDL 程序中,当在命令行中输入命令时,IDL 将会识别大量的特殊字符。 下面介绍几种较为重要的特殊符号。1.1. 大大写写IDL 对字母的大小写并不敏感,但与操作系统打交道的命令(例如:UNIX 操作系统对 IDL 所打开的文件名的大小写敏感)和执行字符串比较命令时除 外。1.2. 注注释释符符在 IDL 命令中,分号 “;”(英文半角符号)表示注释内容的开始,分号右边 的任何文本都被视为是注释,IDL 解释器将忽
4、略它。例如: pro test;A simple programprint,“Hello World !“,$“LYT“;This line prints a message end1.3. 续续航航符符IDL 中的续行符是表示美元的符号“$” 。这表示 IDL 语句延续到下一语句 行(见上例)。2. IDL 语法基础语法基础4变变量量IDL 提供了灵活的数据类型定义方法,在任何时候,IDL 都允许用户创建 新的变量,或重新定义已有的变量。 变量名必须以字母开头。它们可以包括其他字母、数字、下划线、美元符 号。一个变量名最长可达 255 个字符。 变量有两个重要属性: 数据类型和组织结构。 数
5、据类型指出属于数据类型中 的哪一种。IDL 提供了非常丰富的数据类型,用户可以实际需求经行选择。表 1 显示了每一种数据类型及其描述,每种类型创建的变量的字节大小、变量创 建方式、数据类型之间强制转换的 IDL 函数名称。除了数据类型外,每一个 变量有一个组织结构。有效的组织结构有标量(例如单个数值) 、矢量(真正 的一维数组) 、数组(最高可达八维)和 IDL 结构(能包含各种数据类型的 变量和组织结构,结构中独立的组成部分称为字段)。表表 1 IDL 基本数据类型基本数据类型数字类型变量数字类型变量数据类型描述字节数创建变量数据类型函数byte字节型1Var=0BthisVar=Byte(
6、variable)int16 位有符 号整型2Var=0thisVar=Fix(variable)long32 位有符 号长整型4Var=0LthisVar=Long(variable)long6464 位有符 号整型8Var=0LLthisVar=Long64(variable)uint16 位无符 号整型2Var=0UthisVar=UInt(variable)ulong32 位无符 号长整型4Var=0ULthisVar=ULong(variable)ulong6464 位无符 号整型8Var=0ULLthisVar=Ulong64(variable)float浮点型4Var=0.0th
7、isVar=Float(variable)double双精度浮 点型8Var=0.0DthisVar=Double(variable)complex复数8Var=Complex(0.0,0.0)thisVar=Complex(variable)dcomplex双精度复 数16Var=Dcomplex(0.0D,00D)thisVar=DComplex(variable)非数字类型变量非数字类型变量数据类型描述字节数创建变量数据类型函数string字符串0-32767Var=或 Var=”thisVar=String(variable)pointer指针4Var=Ptr_New()None5ob
8、jref对象4Var=Obj_New()Nonestuct结构体2.2. 数数组组IDL 中可以为任何 IDL 数据类型创建 18 维的数组。数组操作的运行速度 往往优于循环操作,且语法更为精炼。 在 IDL 中利用方括号“ ”创建数组。创建多维数组时可以使用嵌套的方括 号。值的注意的是,IDL 中数组元素的存储是按列进行的。按列存储的方式意 味着连续的数组元素也将按顺序被存储,而且数组的第一维(列)变化的最快。 下标的顺序先是列标,后是行标。IDL 的数组下标是从零开始的正值。数组的 下标可以是标量也可以是矢量。进行下标操作时,如果下标超过了范围,则该 下标被转换为在允许范围内的最小或最大的
9、下标值。例如,创建一维数组 vector 和多为数组 array:; 创建一维数组 vectorIDL vector=1,2,3IDL help,vectorVECTOR INT = Array3IDL print,vector; 输出 IDL 输出窗口中将会如下所示: 1 2 3 ; 创建多维数组arrayIDL array=1,2,3,4,5,6IDL help,arrayARRAY INT = Array3, 2IDL print, array1 2 34 5 6IDL 的内建函数允许用户按指定的类型创建数组,同时数组中的每个元素 都被初始化为灵活索引值(下标值)。创建和初始化零数组和索引数组的函数 见表 2 所示。表表 2