1、IDL入门,目录,认识IDL编译器第一个IDL程序IDL语言基础,认识IDL编译器,工作空间 创建新的工作空间 创建新的工程项目 参数设置 编码 源码格式 颜色 导入 文件系统 首选项 现有项目,认识IDL编译器,文件操作 打开文件 创建文件 保存文件 编辑文件 编译和运行,认识IDL编译器,命令行及命令历史查看,认识IDL编译器,获得帮助 悬停帮助 选中内容帮助 联机帮助系统,第一个IDL程序,编写IDL程序,编写Helloworld.pro 熟悉代码编写方法 运行代码 创建工程,pro helloworldvoid = dialog_message(Hello IDL,/informati
2、on)end,语言基础,IDL语言基础,变量数组字符串结构体指针运算符其他符号,IDL语言基础,变量 局部变量 命名规则 最大长度不超过255个字符,变量的首位只能是字母和下划线,中后部只能是字母、数字、下划线“_”和连接符“$” abc_3$d ok_24_bit IDL_type variable _day_month_year 4_line abc.cha,IDL语言基础-变量,局部变量 数据类型,IDL语言基础-变量,局部变量 类型转换,IDL语言基础-变量,var =5.6 print, fix(var) print,floor(var) print,ceil(var) print,
3、round(var),IDL语言基础-变量,系统变量 自定义系统变量 创建 Defsysv,!变量名,值 使用 跟局部变量的使用方法一样,!变量名,IDL语言基础,变量数组字符串结构体指针运算符其他符号,IDL语言基础,数组定义 程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。 IDL支持08维数组 数组的下标是先列后行,IDL语言基础-数组,数组创建 赋值创建,IDL语言基础-数组,数组创建 函数创建 全零和索引数组 函数,IDL语言基础-数组,数组创建 函数创建 全零和索引数组 常规函数 MAKE_ARRAY(),IDL语
4、言基础-数组,数组存储数组按行存储。 一维数组二维数组,IDL语言基础-数组,使用数组 下标方式 使用下标来读取数组中的元素。 向量方式 通过向量下标获得数组中的系列元素。 子数组选取 下标的方式,IDL语言基础-数组,数组运算 求大、求小和求余,IDL语言基础-数组,数组运算 数组与数运算,IDL语言基础-数组,数组运算 数组与数组运算 数组与数组的运算 结果的元素个数与 运算的最小数组个 数一致。,IDL语言基础-数组,数组相关函数 数组信息Size(),IDL语言基础-数组,数组相关函数 条件查找Where(),IDL语言基础-数组,数组相关函数 大小调整 Rebin 修改为不同维数 算
5、法双线性内插,IDL语言基础-数组,数组相关函数 大小调整 Congrid 修改为同维任意大小 一维或二维-最邻近重采样 三维-双线性内插,IDL语言基础-数组,数组相关函数 大小调整 EXPAND 二维数组 双线性内插,IDL语言基础-数组,数组相关函数 数组反转 Reverse() 反转的是数组的维数,IDL语言基础-数组,数组相关函数 数组旋转 Rotate(),IDL语言基础-数组,数组相关函数 数组旋转 Rotate() 可以以任意的角度对数组进行旋转操作并能进行放大、缩小操作。,IDL语言基础-数组,数组相关函数 数组排序 Sort() 函数返回排序后的数组索引。,IDL语言基础-
6、数组,数组相关函数 数组元素个数 N_Elements() 函数返回数组元素的个数,IDL语言基础-数组,相关计算函数 最大值 MAX() 最小值 MIN() 和计算 Total() 乘积计算 Product(),IDL语言基础-数组,相关计算函数 阶乘 Factorial() 平均值 Mean() 方差计算 Variance() 标准差计算 Stddev() 平均值、方差、倾斜度 Moment(),IDL语言基础-数组,矩阵运算 矩阵间 AMN # BLM AMN # BLM 矩阵函数,IDL语言基础,变量数组字符串结构体指针运算符其他符号,IDL语言基础-字符串,字符 创建字符串及字符串数
7、组 直接赋值 string,”stringdf” 创建函数 StrArr(),IDL语言基础-字符串,字符 字符操作函数 StrTrim StrMid StrPos,IDL语言基础,变量数组字符串结构体指针运算符其他符号,IDL语言基础-结构体,结构体 标量、数组或结构的集合,是复合变量。 创建结构体 命名结构体匿名结构体访问结构体 StructName.VarName,IDL语言基础-结构体,结构体相关操作函数,IDL语言基础,变量数组字符串结构体指针运算符其他符号,IDL语言基础-指针,概述 指针时,其数据存储于一个堆变量中。堆变量在程序运行期间是全局变量,而且只有通过指针名才能访问。 堆
8、变量是可以动态的分配内存的全局变量。创建和访问与赋值 创建Ptr_New() 访问(*)point 赋值,IDL语言基础-指针,概述 指针时,其数据存储于一个堆变量中。堆变量在程序运行期间是全局变量,而且只有通过指针名才能访问。 堆变量是可以动态的分配内存的全局变量。创建和访问与赋值 创建Ptr_New() 访问(*)point 赋值 空指针,IDL语言基础-指针,内存控制 内存分配 pData = Ptr_New(data,/No_Copy) 内存释放Ptr_Free,point,IDL语言基础,变量数组字符串结构体指针运算符其他符号,IDL语言基础-运算符,数学运算符 加(+) 增运算(+
9、) 减(-) 减运算(-) 乘(*) 除(/) 幂() 取余(mod) 取小(),IDL语言基础-运算符,逻辑运算符 与运算(&) 或运算(|) 非运算() 位运算 位加(AND) 位取反(NOT) 位或(OR) 位与或(XOR),IDL语言基础-运算符,关系运算符 EQ NE GE GT LE LT 数组运算 数组乘(#) 矩阵乘(#),IDL语言基础,变量数组字符串结构体指针运算符其他符号,IDL语法基础-运算符,其他运算符 小括号() 中括号 条件表达式?: 对象方法调用符- 指针引用符*,IDL语言基础-程序控制,循环语句 FOR WHILE REPEAT条件语句 IF CASE SWITCH跳转语句 Break Continue GoTo,