ENVIIDL二次开发.ppt
《ENVIIDL二次开发.ppt》由会员分享,可在线阅读,更多相关《ENVIIDL二次开发.ppt(39页珍藏版)》请在三一办公上搜索。
1、ENVI/IDL 二次开发,新疆大学资源与环境科学学院买买提沙吾提QQ:317851568,主要内容,1,ENVI/IDL二次开发介绍,3,批处理模式,ENVI/IDL二次开发介绍,如何进行ENVI功能的扩展波谱、波段函数 扩展ENVI功能的最简单方法,波段和波谱运算函数,不需要处理文件I/O,不需要进行事件控制,不需修改菜单,用户只需编写运算函数部分内容,其它由ENVI进行管理。批处理模式不出现ENVI的菜单界面,通过调用ENVI提供的非交互式函数来实现交互式ENVI所提供的功能。,ENVI/IDL二次开发介绍,用户函数用户函数可以用IDL、C、Fortran或者其它的高级语言编写,并集成到
2、ENVI软件中,通过ENVI的菜单来执行。用户函数可以通过ENVI获得输入数据,并将结果直接输入到ENVI中。用户函数包括了部件的定义,事件的处理,以及处理程序。用户函数和ENVI菜单的一个按钮联系起来,并像ENVI的其它函数一样执行。,ENVI/IDL二次开发介绍,ENVI程序中的通用关键字FIDFID是一个长整型的标量。FID为ENVI的程序员提供了一个命名变量,可以用于一个或几个ENVI程序,来打开或选择文件。所有对该文件进行操作的ENVI程序都是通过FID完成。如果文件打开失败,则FID返回为-1。,ENVI/IDL二次开发介绍,R_FID和M_FIDENVI处理程序产生结果一幅新图像
3、也包括一个R_FID,或者称为返回FID关键字。如果结果是存在内存中的,设置R_FID关键字是访问数据的唯一方法。进行掩模的处理时还包括一个M_FID,或者称为掩模关键字,用于确定用于掩模波段的文件。,ENVI/IDL二次开发介绍,DIMS DIMS关键字是一个5个元素长整型数组。它定义了处理数据的空间子集。当需要确定FID的时候,你必须同时确定该文件的空间范围。DIMS0 存储一个打开的ROI区域的指针,仅在ROI被定义的时候使用,其它时候设为-1L DIMS1 采样的起始位置 Sample start DIMS2 采样的终止位置 Sample end DIMS3 行的起始位置 Line s
4、tart DIMS4 行的结束位置 Line end,ENVI/IDL二次开发介绍,POSPOS关键字定义了用于处理的波段位置,是一个变长的长整型数组。波段从0开始,例如,要处理第三波段和第四波段,POS=2,3。,ENVI/IDL二次开发介绍,常用ENVI功能函数介绍文件管理 ENVI_PICKFILE:产生一个提示用户选择文件的对话框,并返回用户所选择的文件名 ENVI_SELECT:产生对话框提示用户从ENVI中已经打开的文件中选择一个文件,并返回用户所选择文件的FID,该函数还可以返回DIMS和POS的值 ENVI_OPEN_FILE:该函数返回一个文件的FID,并将文件信息添加到可用
5、波段列表中 ENVI_FILE_MNG:该函数可以打开、关闭或者删除硬盘上的文件。无需用户干预 ENVI_GET_FILE_IDS:该函数返回所有当前打开的文件的FID,ENVI/IDL二次开发介绍,打开外部文件格式 ENVI_OPEN_DATA_FILE:该函数打开ENVI所支持的外部文件(无ENVI头文件)并返回FID获取数据 ENVI_GET_DATA:该函数从一个打开的文件中获取影像数据。它每次只返回某一波段的数据,数据的范围由DIMS关键字控制。ENVI_GET_SLICE:该函数从一个打开的文件中获取波谱影像数据,它返回影像某一行所有波段的数据值。结果以BIP或BIL的格式返回,E
6、NVI/IDL二次开发介绍,将数据输入到ENVIENVI_ENTER_DATA:该函数将IDL数组中的数据输入到内存中,并通过可用波段列表进行管理。将影像数据存入硬盘 使用IDL的WRITEU函数写入数据 ENVI_SETUP_HEAD:使用该函数写某个影像数据的头文件,波段、波谱运算,波段运算,Function bm_func,b1,b2,bn,parameters and keywords processing steps return,result end,波段、波谱运算,波谱运算,ENVI批处理模式,批处理模式简介批处理模式的ENVI和正常模式下没有什么区别,只是通过一系列的特定的函数
7、库来执行ENVI的功能。为了使用这些函数,必须首先将它们恢复到IDL内存中。因此为了正确获取这些函数,有必要了解一下ENVI程序的结构。ENVI功能文件由大约50多个小的IDL save文件组成,这些文件是包括数据和编译后的程序的二进制文件。这些save文件存放在ENVI安装目录下的Save目录下。ENVI的核心save文件包括ENVI的基本功能函数,动态运行函数以及ENVI运行所需的内部变量。,ENVI批处理模式,如何开始批处理模式 恢复ENVI sav文件 envi,/restore_base_save_files 开始批处理模式 envi_batch_init,log_file=batc
8、h.txt 退出批处理模式 envi_batch_eixt批处理的例子,用户函数,用户函数简介用户函数允许用户为ENVI添加新的功能并通过ENVI的菜单进行访问。用户能够添加任意数量的用户函数,并且每个函数都可以获得它自己的菜单选项。用户函数是事件的处理程序。因此,所有的ENVI用户函数必须遵循事件处理的基本规则,即用户函数定义时必须要加上一个附加的变量来接受事件结构。,用户函数,ENVI菜单修改使用任何文本编辑器就可以打开envi.men文件。文件的结构如下所示:0 File 1 Open Image Fileopen envi fileenvi_menu_event 1 Open Vect
9、or Fileopen vector fileenvi_menu_event 1 Open External File 2 Landsat 3 Fast open fast tm envi_menu_event 3 GeoTIFF open tiff envi_menu_event 3 HDF open envi file envi_menu_event 3 NLAPS open nlaps envi_menu_event每一行开始的数据定义了菜单项的层次。0表示最顶层,1表示一级子菜单,2表示二级子菜单,依次类推。,用户函数,Open External File第一个大括号括起来的部分定义了
10、显示在菜单上的内容。open envi file第二个大括号括起来的部分定义了为菜单项所赋给的用户值。用户值在同一用户函数处理多个菜单项时非常有用,可以区别那个菜单项被选择。envi_menu_event第三个定义了菜单项事件处理程序的名称,即编写的用户函数名。此处使用的是用户函数名,而不是用户函数所在的文件名,所以没有后缀。需要注意的部分:用户值在大多数ENVI的程序中是需要的,要保持用户值的唯一性。但当编写用户函数时,大多数情况下,用户值部分是没有用的,这时候,可以将用户值设为和用户函数名一致,也可以将它设置为not used等醒目的标示。修改ENVI菜单添加如下部分:0MyFunctio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ENVIIDL 二次开发
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5336938.html