2013年5月公开课-遥感二次开发技术

上传人:平*** 文档编号:24903929 上传时间:2017-12-08 格式:PPTX 页数:56 大小:10.81MB
返回 下载 相关 举报
2013年5月公开课-遥感二次开发技术_第1页
第1页 / 共56页
2013年5月公开课-遥感二次开发技术_第2页
第2页 / 共56页
2013年5月公开课-遥感二次开发技术_第3页
第3页 / 共56页
2013年5月公开课-遥感二次开发技术_第4页
第4页 / 共56页
2013年5月公开课-遥感二次开发技术_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《2013年5月公开课-遥感二次开发技术》由会员分享,可在线阅读,更多相关《2013年5月公开课-遥感二次开发技术(56页珍藏版)》请在金锄头文库上搜索。

1、Esri中国信息技术有限公司 遥感事业部 杜会建遥感二次开发技术主要内容 遥感二次开发背景 IDL技术基础 遥感二次开发技术 纯 IDL开发 ENVI二次开发 一体化开发 学习资料分享遥感二次开发 背景遥感二次开发背景 遥感 软件类别 通用 遥感图像处理 平台 面向 特定业务或者区域的业务化 遥感平台 为什么选择遥感二次开发? 在 图像处理方面涉及很多专业的算法和 模型 基于 底层开发遥感业务化平台难度大、 周期长 通用 遥感平台具备了成熟的算法和模型,遥感二次开发方式可以减少开发难度,缩短开发周期。IDL技术基础IDL技术基础 什么 是 IDL? Interactive Data Langu

2、age(交互式数据语言 ) 第四代 计算机语言 跨平台应用开发 科学数据分析 可视化表达IDL技术基础 发展历程 Exelis Visual Information Solutions 1975年,美国科罗拉多州立大学负责 NASA的火星计划中的影像处理,实现了 IDL 1994年,用 IDL开发 ENVI 2006年 ,RSI公司 重组 为 ITT Visual Information Solutions(简称 ITT VIS) 2008年, IDL7.0发布,全新的基于 Eclipse的开发环境; 2010年 7月, IDL8.0正式发布,改进的开发环境、强大的可视化功能、完善的语法结构

3、2012年,重组为 ExelisVis 2012年 5月,发布了 IDL8.2&ENVI5.0 2013年 3月,发布了 IDL8.2.2&ENVI5.0SP2IDL技术基础 功能组 成IDL技术基础 开发特点 语言简单易学 丰富的函数 IDL&ENVI帮助 多样的 Demo 多个领域 系统原型 公开的代码IDL技术基础 工作台 工作台布局 常用设置 工程操作IDL技术基础 过程与函数 Procedure 过程 Function 函数 参数 类型 位置参数(用于传入数据) 关键字参数(可用于传入和传出数据) 关键字继承 过程继承( _extra = e, _ref_extra = e) 对象继

4、承( Inherits ObjName)IDL技术基础 - 程序发布与部署 创建 sav文件 使用 SAVE命令 构建工程 发布 exe文件 使用 MAKE_RT命令遥感二次开发 纯 IDL开发 ENVI二次开发 一体化集成开发纯 IDL开发基础 界面构建 利用 Widget_*系列组件实现 消息传递 TopBase的 UVALUE来存储全局变量 事件处理 鼠标事件、 键盘 输入、浮动界面等 功能模块 利用 IDL自身函数、用户自定义函数纯 IDL开发演示 IDL Viewer应用模版演示 纯 IDL开发 支持 TIFF格式 识别常见投影信息 具有通用功能 免费获取 帮助文档 开 源 无人机低

5、空数字摄影测量系统 苏州科技学院该系统由苏州科技学院完全基于 IDL设计实现,包括界面布局到人机交互再到底层核心函数功能。整体设计框架基于数字摄影测量的专业处理流程,实现了数据输入、数据预处理、影像信息检测、空间定向、地形三维建模、专题信息提取、成果输出与更新等功能。2012年ENVI/IDL组一等 奖 作品ENVI二次开发 Band Math、 Spectral Math 波段 运算与波谱运算 ENVI Classic 传统的开发模式 ENVI 5.0 全新的开发模式 面向对象的理念波段、波谱运算 波段运算基础 波段运算对话框用来定义波段或文件作为输入,调用用户编写的表达式或函数,并将结果输

6、出到文件或内存。波段、波谱运算 波段运算格式 直接编写表达式 波段变量名必须为 b1,b2 ; 表达式函数 波段变量名必须为 b1,b2 ; 波段运算函数 Function开头,并有返回值; ENVI只调用 SAV ENVI+IDL可以调用 sav和 pro波段运算修改 NaN的方法 修改 0值为 NaN float(b1)*b1/b1 修改特定值( 250)为 NaN b1*float(b1 ne 250)/(b1 ne 250) 修改 NaN为特定值( -999): finite(b1, /nan)*(-999) or (finite(b1, /nan)*b1 修改 NaN为 0值(先按上

7、面方法修改为 -999) (b1 ne -999)*b1ENVI Classic二次开发 菜单结构文件 envi.men文件定义了 ENVI Classic的 主菜 单; display.men文件定义 了 ENVI Display窗口 菜单。 ENVI菜单系统结构 使用文本编辑器打开 envi.men文件。文件结构如下所示: 0 File 1 Open Image Fileopen envi fileenvi_menu_event 1 Open Vector Fileopen vector fileenvi_menu_event 1 Open External File 2 Landsat

8、3 Fast open fast tm envi_menu_event 每一行开始的数据定义了菜单项的层次。 0表示最顶层, 1表示一级子菜单, 2表示二级子菜单,依次类推。ENVI Classic二次开发 ENVI菜单系统结构 Open External File第一个大括号部分定义了显示在菜单上的内容。 open envi file第二个大括号部分定义菜单项所赋给的用户值。 envi_menu_event第三个定义了事件响应理程序名称,即使用的是用户函数。 需要注意:当编写用户函数时,大多数情况下,用户值是没有用的,这时候,可以将用户值设为和用户函数名一致。ENVI Classic二次开发

9、 ENVI菜单修改 手动编辑 envi.men文件 利用 ENVI_DEFINE_MENU_BUTTON函数自动添加菜单ENVI Classic二次开发 加载 ENVI库函数 ENVI, /restore_base_save_files ENVI_BATCH_INIT 关闭 ENVI函数调用 ENVI_BATCH_EXITENVI二次开发常用函数 文件管理函数 ENVI_PICKFILE ENVI_SELECT ENVI_OPEN_FILE ENVI_FILE_MNG ENVI_GET_FILE_IDS 打开文件函数 ENVI_OPEN_DATA_FILEENVI二次开发常用函数 数据获取函数

10、 ENVI_GET_DATA ENVI_GET_SLICE 感兴趣区函数 ENVI_GET_ROI_DIMS_PTR 数据生成函数 ENVI_ENTER_DATA ENVI_SETUP_HEADENVI自带组件 ENVI组件介绍 ENVI提供了以 WIDGET_开头的功能组件来满足用户的需要,很多部件都包括 “OK”和 “Cancel”等按钮方便用户进行交互操作。 事件管理 WIDGET_AUTO_BASE创建顶级 base AUTO_WID_MNG进行事件管理ENVI 5.0 全新的开发模式 全新的开发方式e的方法方法 功能介 绍ENVI.AddCustomReader 为 File Ope

11、n As Custom添加打开自定 义 格式数据的 过 程, ENVI 5.0 SP2新增ENVI.AddExtension 为 Toolbox添加 扩 展工具, ENVI 5.0 SP2新增可添加菜 单 功能ENVI.Close 关 闭 ENVIENVI.CreateRaster 创 建 ENVIRaster对 象, 栅 格文件 对 象ENVI.CreateRasterMetadata 创 建 ENVIRasterMetadata对 象, 栅 格描述数据ENVI.CreateRasterSpatialRef 创 建 ENVIRasterSpatialRef对 象,即空 间 参考 对 象ENV

12、I.CreateView 创 建新的 视图 ( View)ENVI.ExportRaster 输 出 栅 格文件,可另存 为 DTED、 ENVI、 NITF、 TIFF格式等。ENVI.GetOpenData 获 取已 经 打开的数据,返回 栅 格或矢量 对 象数 组 。ENVI.GetPreference 获 取 ENVI设 置参数,如 输 入 输 出路径等。ENVI.GetTemporaryFilename 自 动获 取一个 临时 文件名,位于 临时 目 录 。ENVI.GetView 获 取当前 视图 ,返回 值为 ENVIView对 象。ENVI.HideExtensionFiles

13、 启 动 ENVI时隐 藏某个 扩 展 补 丁ENVI.LogMessage 将自定 义 消息保存到日志文件 LOG_FILE内。ENVI.OpenRaster 打开 栅 格数据,支持大多数格式。ENVI.OpenVector 打开矢量数据。ENVI.Refresh 可以禁用或启用 ENVI刷新功能。ENVI.ReportError 弹 出 错误 提示 对话 框。ENVI.Show 使 ENVI处 于当前激活窗口。ENVI 5.0 数据控制对 象或方法 功能介 绍ENVICoordSys 对 象:可通 过 ENVIVector的 COORD_SYS属性 获 取此 对 象。ENVIFIDToRa

14、ster 方法:将 ENVI中的文件 ID( FID) 转换为 ENVIRaster对 象。ENVIRaster 对 象: ENVI栅 格 对 象,包含一些 栅 格数据操作方法。ENVIRasterIterator 对 象: ENVI分 块处 理 对 象。ENVIRasterMetadata 对 象: ENVI栅 格元数据 对 象。ENVIRasterSpatialRefPseudo 对 象:空 间 参考 对 象,可使用 CreateRasterSpatialRef创 建。ENVIRasterSpatialRefRPC 对 象:空 间 参考 对 象,可使用 CreateRasterSpatia

15、lRef创 建。ENVIRasterSpatialRefStandard 对 象:空 间 参考 对 象,可使用 CreateRasterSpatialRef创 建。ENVIRasterToFID 方法:将 ENVIRaster转换为 FID。ENVITime 对 象: ENVI时间对 象。ENVIVector 对 象: ENVI矢量数据 对 象。ENVI 5.0 显示控制对 象 功能介 绍ENVIPortal ENVI透 视 窗口 对 象ENVIRasterLayer ENVI栅 格 图层对 象,可 对图层进 行移 动 等操作。ENVIUI ENVI用 户 界面 对 象,可 弹 出文件 选择对话 框和地 图 坐 标 系 统 界面等。ENVIVectorLayer ENVI矢量 图层对 象,可 对图层进 行移 动 等操作。ENVIView ENVI视图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号