1(下)IDL语言基础知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运算符
其他符号
遥感与GIS应用开发培训班
IDL语言基础-结构体
结构体 – 标量、数组或结构的集合,是符合变量。 – 创建结构体
命名结构体 匿名结构体
– 访问结构体
StructName.VarName StructName.(idx)
运行教材示例 P47
遥感与GIS应用开发培训班
– 向量方式
通过向量下标获得数组中的系列元素。
– 子数组选取
下标的方式
遥感与GIS应用开发培训班
IDL语言基础-数组
数组运算
– 求大、求小和求余
遥感与GIS应用开发培训班
IDL语言基础-数组
数组运算
– 数组与数运算
遥感与GIS应用开发培训班
IDL语言基础-数组
数组运算
– 数组与数组运算
数数
• 变量名是否有效 格式 IDL_VALIDNAME ( String [, /CONVERT_ALL] [, /CONVERT_SPACES]),
遥感与GIS应用开发培训班
IDL语言基础-变量
局部变量
– 数据类型
遥感与GIS应用开发培训班
IDL语言基础-变量
局部变量
– 类型转换
遥感与GIS应用开发培训班
创建和访问与赋值
– 创建Ptr_New() – 访问(*)point – 赋值 – 空指针
遥感与GIS应用开发培训班
IDL语言基础-指针
内存控制 – 内存分配
• pData = Ptr_New(data,/No_Copy)
– 内存释放
• Ptr_Free,point
运行教材示例 P50
遥感与GIS应用开发培训班
运算符
其他符号
遥感与GIS应用开发培训班
IDL语言基础
变量
– 局部变量
命名规则
• 最大长度不超过255个字符,变量的首位只能是字母和下划 线,中后部只能是字母、数字、下划线“_”和连接符“$” • abc_3$d ok_24_bit IDL_type variable _day_month_year • 4_line abc.cha
遥感与GIS应用开发培训班
IDL语言基础
变量
数组
字符串 结构体 指针 链表、哈希表
运算符
其他符号
遥感与GIS应用开发培训班
IDL语言基础-字符串
字符
– 创建字符串及字符串数组
直接赋值
‘string’, ”string’df’”
创建字符串数组
StrArr()
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 数组反转
Reverse()
• 反转的是数组的维数
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 数组旋转
Rotate()
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 数组旋转
Rot() • 可以以任意的角度对数组进行旋转操作并能进行放 大、缩小操作。
遥感与GIS应用开发培训班
IDL语言基础-数组
数组创建
– 赋值创建
IDL> arr = [1,2,3] IDL> help, arr ARR INT = Array[3] IDL> arr = [1,2,3B] IDL> help, arr ARR INT = Array[3] IDL> arr = [1,2,3D] IDL> help, arr ARR DOUBLE = Array[3]
遥感与GIS应用开发培训班
IDL语言基础-数组
数组创建
– 函数创建
全零和索引数组
• 常规函数
– MAKE_ARRAY()
遥感与GIS应用开发培训班
IDL语言基础-数组
数组存储
数组按行存储。
– 一维数组
– 二维数组
遥感与GIS应用开发培训班
IDL语言基础-数组
使用数组
– 下标方式
使用下标来读取数组中的元素。
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 大小调整
Rebin
• 修改为不同维数 • 算法双线性内插 • Sample关键字使 用最近邻域法
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 大小调整
Congrid
• 修改为同维任意大小 • 一维或二维-最邻近重采样, 或使用INTERP关键字强制使用 双线性内插法 • 三维-双线性内插
遥感与GIS应用开发培训班
IDL语言基础-字符串
字符
– 特殊字符
遥感与GIS应用开发培训班
IDL语言基础-字符串
字符
– 字符操作函数
StrTrim StrMid
StrPos
运行教材示例 P46
遥感与GIS应用开发培训班
IDL语言基础
变量
数组
字符串 结构体 指针 链表、哈希表
– 生成exe
make_rt,'helloWorld','c:\temp\out',savefile =
'D:\trainning\helloWorld\helloworld.sav',/vm
遥感与GIS应用开发培训班
IDL语言基础
IDL语言基础
变量
数组
字符串 结构体 指针 链表、哈希表
Stddev()
– 平均值、方差、倾斜度
Moment()
遥感与GIS应用开发培训班
运行教材示例 P43
IDL语言基础-数组
矩阵运算
– 矩阵间
AMN # BLM AMN ## BLM
– 矩阵函数
\chapter03\test_matrix_opera.pro
运行教材示例 P43
– 最大值
MAX()
– 最小值
MIN()
– 和计算
Total()
– 乘积计算(所有元素相乘)
Product()
遥感与GIS应用开发培训班
运行教材示例 P41
IDL语言基础-数组
相关计算函数
– 阶乘
Factorial()
– 平均值
Mean()
– 方差计算
Variance()
– 标准差计算
IDL语言基础-变量
局部变量
– 特点 动态性 • 随时修改变量的数据类型和组织结构。但下面情况不进行类 型转换。
注意整型变量的精度
• • result = 8/5 aspect=!D.X_Size / !D.Y_Size
遥感与GIS应用开发培训班
IDL语言基础-变量
系统变量
– 自定义系统变量
链表访问:
– IDL> print, list[0] – One
链表销毁
– Obj_destroy, list
遥感与GIS应用开发培训班
运行教材示例 P53
IDL语言基础–链表
链表方法: – Add – Count – IsEmpty – Remove – Reverse – ToArray – Where 添加成员 成员个数查询 是否为空 移除成员 逆转顺序 转换为数组 查询
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 数组排序
Sort() • 函数返回排序后的数组索引。
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 数组元素个数
N_Elements() • 函数返回数组元素的个数
遥感与GIS应用开发培训班
IDL语言基础-数组
相关计算函数
遥感与GIS应用开发培训班
IDL语言基础-数组
数组创建
– 函数创建
全零和索引数组
• 函数
遥感与GIS应用开发培训班
IDL语言基础-数组
等差数列: – IDL> print, indgen(6)*5+1 – 1 6 11 16 21 26 等比数列: – 生成比值为3,1开头的等比数列: • IDL> print, 3^indgen(6) • 1 3 9 27 81 243 – 生成比值为3,2开头的等比数列: • IDL> print, 3^indgen(6)*2 • 2 6 18 54 162 486
IDL入门
目录
• 认识IDL工作台
• 第一个IDL程序
• IDL语言基础
遥感与GIS应用开发培训班
认识IDL编译器
工作空间 – 创建新的工作空间 – 创建新的工程项目 – 参数设置
编码 源码格式 颜色 …
– 导入
文件系统 首选项 现有项目
遥感与GIS应用开发培训班
认识IDL编译器
使用工程 – 建立新工程 – 工程属性修改 – 添加文件
– 编译工程
– 运行工程
遥感与GIS应用开发培训班
认识IDL编译器
文件操作 – 打开文件 – 创建文件 – 保存文件 – 编辑文件 – 编译和运行
遥感与GIS应用开发培训班
认识IDL编译器
查看器
– [窗口]→[显示视图]下进行显示或关闭设置
遥感与GIS应用开发培训班
IDL语言基础–哈希表
哈希表创建:
Result = HASH( [Key1, Value1, Key2, Value2, ... Keyn, Valuen] [, /EXTRACT] [, /NO_COPY] ) or Result = HASH( Keys, Values [, /EXTRACT] ) or Result = HASH( Keys ) or 运行教材示例 P54 Result = HASH( Structure [, /EXTRACT] ) 举例: hash = HASH('black', 0, 'gray', 128, 'grey', 128, 'white', 255) hash = HASH(['black','gray','grey','white'], [0,128,128,255])
idl入门门门idl工作台第一个idl程序门有门目门门idl门门器工程性修改门门idl门门器门门idl门门器下门行门示或门门门置门门idl门门器命令行及命令门史门看门门idl门门器源门格式门置门门idl门门器门门idl门门器demo程序打门源门文件门门idl门门器idl程序门门行模式门门idl门门器第一个idl程序熟悉代门门方法d
遥感与GIS应用开发培训班
认识IDL编译器
命令行及命令历史查看
遥感与GIS应用开发培训班
认识IDL编译器
源码格式设置
遥感与GIS应用开发培训班
认识IDL编译器
获得帮助
– 悬停帮助 – 选中内容帮助 – 联机帮助系统
遥感与GIS应用开发培训班
认识IDL编译器
DEMO
– 启动DEMO – 运行DEMO程序 – 打开源码文件
创建 • Defsysv,’!变量名’,值
使用
• 跟局部变量的使用方法一样,!变量名
运行教材示例 P28
遥感与GIS应用开发培训班
IDL语言基础
变量
数组
字符串 结构体 指针 链表、哈希表
运算符
其他符号
遥感与GIS应用开发培训班
IDL语言基础-数组
数组定义 – 程序设计中,为了处理方便, 把具有相同类型的若干 变量按有序的形式组织起来。这些按序排列的同类数 据元素的集合称为数组。 – IDL支持0→8维数组 – 数组的下标是★先列后行★
运算的最小数组个
数一致。
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 数组信息Size()
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 条件查找Where()
遥感与GIS应用开发培训班
IDL语言基础-数组
数组相关函数
– 大小调整
Reform-不改变元素个数改变数组维数
IDL语言基础-结构体
结构体相关操作函数
遥感与GIS应用开发培训班
IDL语言基础-结构体
结构体继承
IDL> str1 = {str1name, a:1,b:2} IDL> str2 = {str2name, inherits str1name, c:3}
动态扩展
IDL> a = {a:1, b:2} IDL> a = create_struct(a, ‘c', 3)
遥感与GIS应用开发培训班
IDL语言基础
变量
数组
字符串 结构体 指针 链表、哈希表
运算符
其他符号
遥感与GIS应用开发培训班
IDL语言基础-指针
概述
– 指针时,其数据存储于一个堆变量中。堆变量在程序运行期间是 全局变量,而且只有通过指针名才能访问。 – 堆变量是可以动态的分配内存的全局变量。
遥感与GIS应用开发培训班
认识IDL编译器
编写IDL程序
– 命令行模式 – 批处理模式
文件中只需命令即可 文件要保存在搜索路径下
– 编译运行模式
参考工程、文件章节
遥感与GIS应用开发培训班
第一个IDL程序
编写IDL程序
编写Helloworld.pro
– 熟悉代码编写方法 – 运行代码 • 创建工程 • 程序发布 – 生成sav
IDL语言基础
变量
数组
字符串 结构体 指针 链表、哈希表
运算符
其他符号
遥感与GIS应用开发培训班
IDL语言基础–链表
链表创建:
Result = LIST( [Value1, Value2, ... Valuen] [, /EXTRACT] [, LENGTH=value] [, /NO_COPY]) 举例: list=LIST('one', 2.0, 3, 4l, PTR_NEW(5), {n:6}, COMPLEX(7,0))
相关文档
最新文档