3(下)ENVI功能扩展与二次开发

合集下载

【免费下载】ENVI支持的数据格式和二次开发

【免费下载】ENVI支持的数据格式和二次开发

对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

二次开发手册

二次开发手册

二次开发手册随着科技的不断发展,软件已经成为人们日常生活和工作中不可或缺的一部分。

为了满足用户对软件功能的需求,开发者经常需要进行二次开发。

本手册旨在为二次开发者提供一套完整、实用的指南,帮助其更好地进行软件二次开发工作。

1.二次开发的基本概念二次开发是指在已有软件的基础上,根据用户需求进行功能扩展、改进或定制的过程。

通过二次开发,可以充分利用已有软件的优点,提高软件的功能性和易用性。

2.二次开发的流程二次开发的流程包括需求分析、设计、编码、测试和部署等阶段。

其中,需求分析阶段是关键,需要充分了解用户需求,确定二次开发的具体内容和目标。

设计阶段需要对系统架构、数据库结构、界面设计等进行详细规划。

编码阶段需要按照设计要求进行编码实现。

测试阶段需要对二次开发的功能进行全面测试,确保其符合预期要求。

部署阶段需要对二次开发的软件进行部署和上线。

3.二次开发的技术实现在进行二次开发时,需要了解和掌握相关的技术实现。

例如,对于Web应用程序的二次开发,需要了解HTML、CSS、JavaScript等前端技术,以及后端语言如Python、Java等。

对于移动应用程序的二次开发,需要了解iOS或Android平台的开发技术。

此外,还需要了解数据库技术、版本控制技术等。

4.二次开发的常见问题及解决方案在进行二次开发时,可能会遇到一些常见问题,如兼容性问题、性能问题、安全性问题等。

针对这些问题,需要采取相应的解决方案。

例如,对于兼容性问题,需要进行充分的测试和调优;对于性能问题,需要进行性能分析和优化;对于安全性问题,需要加强安全措施和防范措施。

5.案例分析为了更好地说明二次开发的实践过程,本手册提供了几个案例分析。

这些案例涵盖了不同领域和不同规模的二次开发项目,通过分析这些案例的成功经验和问题所在,可以为读者提供宝贵的启示和帮助。

通过这些案例的分析和学习,读者可以更好地理解二次开发的实践操作和关键要点,为自己的二次开发工作提供指导和实践经验借鉴。

ENVI的二次开发

ENVI的二次开发

ENVI/IDL与其它语言集成开发
• 实现技术手段: – Callable 技术 – IDLDrawWidget ActiveX – 对象输出助手
Callable IDL技术
IDL可以作为动态链接库被外部程序调用,称之为Callable IDL技术。 外部程序可以像IDL环境一样使用相关的程序或函数。
VC调用ENVI/IDL
实例在VC调用ENVI函数:
1. 首先在建立一个VC的MFC工程,然后\ITT\IDL70\external\include目录下 拷贝idl_export.h头文件,并添加到VC工程中 2. 工程→设置→连接 中的对象/库模块 中 添加idl.lib 3. 工具→选项→目录 中的Library files 添加安装路径 \ITT\IDL70\BIN\BIN.X86 4. 我的电脑右键属性 高级→环境变量 →系统变量 path中添加;安装路径 \ITT\IDL70\BIN\BIN.X86 5. IDL_Win32Init(0,handle,NULL,0); IDL初始化 6. IDL_ExecuteStr(“restore,‘satstretch.sav’”); 执行IDL命令行 7. IDL_Cleanup(true);清除IDL
菜单定制练习
• 在用记事本打开envi.men文件,在文件的最后添加以下语句:
0 {MyFunctions} 1 {Basic File Info} {not used} {file_info}
• 启动ENVI+IDL环境。 • 在IDL环境下新建一个源文件,编写以下代码,
PRO file_info, event ENVI_SELECT, title='choose a file', fid=in_fid IF (in_fid eq -1L) THEN return ENVI_FILE_QUERY, in_fid, ns=ns, nl=nl, nb=nb, fname=fname OpenR, unit, fname, /Get_LUN info = FSTAT(unit) Free_LUN, unit print, 'you selected ',fname print, 'number of samples = ',ns print, 'number of lines = ',nl print, 'number of bands = ',nb print, 'file size in bytes = ',info.size END

ENVI二次开发技术内幕

ENVI二次开发技术内幕

ENVI二次开发技术内幕1前言ENVI(The Environment for Visualizing Images)遥感影像处理软件是美国ITT 公司推出的基于交互式数据语言IDL开发的一套功能强大的遥感影像处理系统,ENVI可以轻松的读取、显示、分析各种类型的遥感数据并提供了从影像预处理、信息提取到与地理信息系统整合的完整处理流程。

但对一些特殊需求,如添加未知格式数据支持、处理流程定制等可能都需要二次开发的模式。

ENVI比较方便的进行二次开发,这是由于其底层强大的IDL 语言支持,多种开发方式支持及200多个功能函数接口等因素决定的。

2ENVI二次开发的层次ENVI的二次开发包括三个层次,ENVI的功能扩展、独立系统开发和其他语言集成开发。

ENVI的功能扩展是利用ENVI的现有功能及底层IDL语言强大的运算能力实现的功能模块的定制开发,在现有ENVI的主框架上扩展功能模块,添加自系统功能补丁等方式。

独立系统开发是在非交互式ENVI环境下(如IDL构建系统框架),利用ENVI 提供的函数接口实现数据处理功能。

其他语言集成开发指的是在其他语言如VC++、Visual 2005下调用ENVI的功能。

2.1 功能扩展2.1.1波段、波谱运算与自定义功能扩展ENVI的功能最简单的方法就是使用波段和波谱运算功能,通过该方式用户可以在波段和波谱运算表达式对话框输入运算函数进行交互运算。

波段、波谱运算功能的实现有两种方式:数学表达式和波段、波谱运算函数。

数学表达式:该方式充分利用IDL的数组处理能力,通过简单表达式输入方式实现复杂的功能。

实例:两图像的波段b1和b2,波段b1中的云部分(认为象元值大于200为云)用波段b2的部分替代。

实现的步骤1)在ENVI主菜单下,选择[Basic Tools]→[Band Math],在弹出的BandMath界面中,在[Enter an Expresion]里面输入表达式2)点击Add to list按钮,然后在[Previous Band Math Expressions]里面选择输入的表达式点击OK。

enviidl二次开发

enviidl二次开发

28
用户函数



ENVI_GET_IMAGE:该函数类似于ENVI_GET_DATA 函数,但它用于从显示窗口中返回数据。给定 波段位置,维度,以及DN值,ENVI_GET_IMAGE 函数能够返回拉伸后的灰度值 DISP_GET_LOCATION,该函数返回当前选定的像 素的位置 DISP_GOTO,该函数移动Zoom窗口到一个指定的 位置,并在必要的情况下更新Image和Scroll窗 口

6
ENVI /IDL二次开发介绍

DIMS
DIMS关键字是一个5个元素长整型数组。它定义了处 理数据的空间子集。当需要确定FID的时候,你必须同 时确定该文件的空间范围。 DIMS[0] 存储一个打开的ROI区域的指针,仅在ROI 被定义的时候使用,其它时候设为-1L DIMS[1] 采样的起始位置 Sample start DIMS[2] 采样的终止位置 Sample end DIMS[3] 行的起始位置 Line start DIMS[4] 行的结束位置 Line end
批处理模式 不出现ENVI的菜单界面,通过调用ENVI提供的非 交互式函数来实现交互式ENVI所提供的功能。

3
ENVI /IDL二次开发介绍

用户函数
用户函数可以用IDL、C、Fortran或者其它的高 级语言编写,并集成到ENVI软件中,通过ENVI的 菜单来执行。用户函数可以通过ENVI获得输入数 据,并将结果直接输入到ENVI中。 用户函数包括了部件的定义,事件的处理,以及 处理程序。用户函数和ENVI菜单的一个按钮联系 起来,并像ENVI的其它函数一样执行。
26
用户函数
用户函数中错误的捕获
使用Catch函数进错误的捕获

ENVI二次开发指南

ENVI二次开发指南

ENVI 二次开发指南航天星图(北京)有限公司2006年7月前言ENVI(The Environment for V isualizing Images)遥感影像处理软件是美国RSI公司推出的由专业的遥感科学家基于交互式数据语言IDL开发的一套功能强大的遥感影像处理系统,它可以轻松读取、显示、分析各种类型遥感数据,并提供了从影像预处理、信息提取到与地理信息系统整合过程中需要的各种工具。

ENVI软件进行入中国市场十年来,凭借着其强大的遥感影像处理功能、丰富的遥感数据格式支持、简单易用的使用风格、中文化的菜单支持、全面的操作系统支持及IDL底层开发平台强大的可扩展能力被广大的遥感用户逐步熟悉和使用,并被广泛地应用于国土、地质、环境、林业、农业、军事、自然资源勘探和海洋资源管理等多个领域。

航天星图(北京)有限公司作为美国RSI公司在中国地区的独家代理商和增值服务商,不仅负责向广大用户提供RSI所有产品的销售和技术持,并且在RSI的全力支持下,为用户提供包括遥感数据生产流程设计、遥感影像增值服务、遥感平台定制开发、产品化设计和开发等全方位的技术服务,为用户的空间信息应用提供专业快速的解决方案。

面对越来越多的用户对ENVI/IDL二次开发中文手册的需要,我们特组织编写了ENVI二次开发指南。

全书包括ENVI编程介绍、波段运算、批处理、用户函数、常用编程工具、交互式函数等ENVI编程的各个方面。

书中附有大量的编程示例,详细说明了如何使用ENVI 进行二次开发。

我们的联系方式:E_mail: support@鉴于水平与时间有限,培训教程中不妥乃至错误之处在所难免,恳望学员不吝批评指正。

航天星图科技(北京)有限公司I目录前言 (I)第一章概述 (1)一、ENVI扩展简介 (1)1、扩展ENVI 是有可能的 (1)2、波段和波谱运算函数 (1)3、用户函数 (1)4、交互式用户程序 (2)5、自定义文件格式输入 (2)6、批处理 (2)7、ENVI 菜单文件 (2)8、编译 (2)9、Toggle Catch (3)二、ENVI编程的介绍 (3)1、非交互情况下复杂程序的控制 (3)2、ENVI和IDL环境下文件I/O的区别 (3)3、ENVI和IDL函数库目录 (4)三、ENVI处理程序的通用关键字 (4)1、FID (4)2、R_FID和M_FID (4)3、DIMS (5)4、POS (5)四、常用ENVI函数功能介绍 (5)1、文件管理 (5)2、打开外部文件格式 (6)3、获取数据 (6)4、使用感兴趣区(ROI)进行空间选取 (6)5、生成ENVI格式的文件 (6)第二章波段和波谱运算函数 (8)一、波段运算 (8)1、波段函数基础 (8)2、编写波段运算函数 (9)3、编译波段运算函数 (9)4、波段运算例子 (9)二、波谱运算 (10)1、波谱运算基础 (10)2、编写波谱运算函数 (11)3、编译波谱运行函数 (11)4、波谱函数的例子 (11)第三章批处理模式 (13)一、ENVI的批处理模式 (13)二、混合批处理模式 (14)三、批处理模式初始化 (14)航天星图科技(北京)有限公司II四、离开批处理模式 (15)五、编写批处理程序 (15)六、在批处理模式中记录ENVI的日志信息 (16)七、批处理的有用提示 (17)八、为批处理创建一个快捷方式 (17)八、批处理程序的例子 (17)1、文件信息的统计 (17)2、饱和度拉伸(非交互) (18)第四章用户函数 (21)一、用户函数介绍 (21)二、修改ENVI的菜单 (22)1、ENVI菜单系统简介 (22)2、ENVI菜单系统结构 (22)三、编写一个用户函数的实例 (23)四、为用户函数添加小部件 (24)五、可用的ENVI部件 (24)六、小部件事件自动管理程序 (30)七、用户函数中的错误捕获 (32)1、I/O错误处理 (32)2、例子:I/O 错误处理 (32)3、使用Catch函数进行非I/O错误的异常捕获 (33)八、与显示窗口进行交互 (33)九、使用影像分块技术 (34)1、影像分块简介 (34)2、分块处理程序 (34)3、分块处理程序例子 (35)4、保存结果 (38)5、非分块处理程序 (44)6、处理进度报告 (45)十、对于ENVI用户函数有用的IDL函数 (46)第五章常用编程工具 (48)一、绘图 (48)二、报告 (48)三、RGB颜色三元组 (48)四、获取文件信息 (49)五、文件的管理 (50)第六章交互式用户函数 (51)一、绘图函数 (51)二、波谱分析函数 (53)三、用户定义的地图投影类型 (55)四、用户自定义单位 (58)五、用户自定义的RPC读入程序 (59)六、用户自定义的移动函数 (61)第七章自定义文件输入 (66)航天星图科技(北京)有限公司III一、解析影像文件头 (66)二、自定义的影像读入程序 (69)第八章ENVI编程的其他主题 (76)一、ENVI的坐标系统 (76)1、影像坐标(像素坐标) (76)2、文件坐标 (76)3、XSTART和YSTART (76)4、XSTART和YSTART的编程 (77)二、感兴趣区(ROI) (78)1、感兴趣区处理 (78)2、选取ROI (79)3、使用ROI数据 (82)4、使用ROI DIMS指针 (84)5、使用ROI地址 (85)航天星图科技(北京)有限公司IV第一章概述一、ENVI扩展简介1、扩展ENVI 是有可能的扩展ENV 包括一系列的定制。

ENVI二次开发教程_201504

ENVI二次开发教程_201504

(1) 读写常规二进制文件
IDL> B = BYTARR(192, 192, /NOZERO) IDL> ; Read the data into B: IDL> READU, 1, B IDL> ; Close the file: IDL> CLOSE, 1 IDL> ; Display the image: IDL> TV, B
字符串中读取格式数据
ReadS 是一个有用的 IDL 命令,可以从字符串变量而不是从文件中为自由格式或确定格 式读取数据。ReadS 运用了和命令 Read 和 ReadF 相同的读取格式数据规则。也就是说,使 用 ReadS 就象从数据文件中读取一样,所不同的是所读的对象是一个字符串变量。 当大量信息需从文件头部读取时,此命令特别有用。例如,假设 ASCII 数据文件的第一 行说明了数据文件的行数和列数, 此文件头可以从文件中读取, 并且可创建一个大小正确的 数组来读取数据。
2.2 读写 ASCII 码文件
IDL 在读写该文件分为有两种格式化文件:自由文件格式和确定的文件格式。 自由文件格式是用逗号或空白 (tab 键和空格键) 分开文件中的每个元素的 ASCII 文件。 确定的格式文件是用格式说明按照给定的规范进行编排的。二者相比后者比前者更正规一 些。
(1) 读写自由文件格式
表:标准输入输出函数
函数名称 Print Read Reads String() 作用 标准输出写出格式化数据 标准输入读入格式化数据 从字符串中读取格式化数据 格式化输出的字符串数据
1.2 格式化输出
数据的格式化输出是按照设计的格式进行输出。IDL 支持“%”和“\”。 标准的输入输出时可以进行格式的自由控制, 格式化控制的格式为: [n]FC[+][-][width], 各个字段代表的含义见下表。

enviidl二次开发

enviidl二次开发

批处理模式 不出现ENVI的菜单界面,通过调用ENVI提供的非 交互式函数来实现交互式ENVI所提供的功能。

3
ENVI /IDL二次开发介绍

用户函数
用户函数可以用IDL、C、Fortran或者其它的高 级语言编写,并集成到ENVI软件中,通过ENVI的 菜单来执行。用户函数可以通过ENVI获得输入数 据,并将结果直接输入到ENVI中。 用户函数包括了部件的定义,事件的处理,以及 处理程序。用户函数和ENVI菜单的一个按钮联系 起来,并像ENVI的其它函数一样执行。

4
ENVI /IDL二次开发介绍
ENVI程序中的通用关键字 FID FID是一个长整型的标量。FID为ENVI的程序员提 供了一个命名变量,可以用于一个或几个ENVI程 序,来打开或选择文件。所有对该文件进行操作 的ENVI程序都是通过FID完成。 如果文件打开失败,则FID返回为-1。
28
用户函数



ENVI_GET_IMAGE:该函数类似于ENVI_GET_DATA 函数,但它用于从显示窗口中返回数据。给定 波段位置,维度,以及DN值,ENVI_GET_IMAGE 函数能够返回拉伸后的灰度值 DISP_GET_LOCATION,该函数返回当前选定的像 素的位置 DISP_GOTO,该函数移动Zoom窗口到一个指定的 位置,并在必要的情况下更新Image和Scroll窗 口
Widget部件自动事件管理程序 WIDGET_AUTO_BASE 如果要创建事件自动管理的部件构架,必须通 过WIDGET_AUTO_BASE创建顶级BASE,在构建GUI 的过程中使用的其它BASE使用原来的 WIDGET_BASE函数创建。 AUTO_WID_MNG 调用AUTO_WID_MNG函数进行部件的注册,检测 事件,并以结构的形式返回用户输入的值

22.ENVI功能扩展与二次开发

22.ENVI功能扩展与二次开发

启动ENVI时隐藏某个扩展补丁
将自定义消息保存到日志文件LOG_FILE内。 打开栅格数据,支持大多数格式。 打开矢量数据。 可以禁用或启用ENVI刷新功能。 弹出错误提示对话框。 使ENVI处于当前激活窗口。
ENVI 5 数据控制
对象或方法 ENVICoordSys ENVIDataCollection ENVIFIDToRaster ENVIGCPSet ENVIGLTRasterSpatialRef ENVIMosaicRaster ENVIPseudoRasterSpatialRef ENVIRaster ENVIRasterIterator 功能介绍 对象:可通过ENVIVector的COORD_SYS属性获取此对象。 对象:获取当前打开的文件Raster对象数组 方法:将ENVI中的文件ID(FID)转换为ENVIRaster对象。 对象:ENVI的地面控制点对象。 对象:空间参考对象,包含了地理查找表(GLT)。 对象:ENVI无缝镶嵌栅格对象。 对象:空间参考对象,包含了Pseudo 地理信息 对象:ENVI栅格对象,包含一些栅格数据操作方法。 对象:ENVI分块处理对象。
• 调用ENVI实现面向对象特征提取
– “...\22.ENVI二次开发\Codes\rulebased.pro”
• 批处理格式转换函数实现
– “...\22.ENVI二次开发\Codes\segmentonly.pro”
ENVI 5.x 开发技术
ENVI 5 全新的开发模式
e的方法(e=envi())
开放的ENVI平台
组件 调用
波段运算
提供函 数接口
波谱运算
ENVI
菜单 定制 添加自定 义工具
易用的IDL语言

ENVI二次开发综述与代码分享

ENVI二次开发综述与代码分享
PRO CAL_SHARPEN,inputfileMulti,inputfilePan,outputfile,method
COMPILE_OPT idl2
CATCH, Error_status
errorshow = 'Sorry to see the error,'+ $
' please send the error Information to "dongyq@"'
ENVI_DOIT, 'envi_quac_doit', $
fid=fid, pos=pos, dims=dims, $
quac_sensor=sensor, $
out_name=outputfile, r_fid=r_fid
;
END
融合
;+
;ENVI二次开发功能代码
f_pos = [0]
;
rgb_fid = [m_fid,m_fid,m_fid]
out_bname = ['3','2','1']
;ENVI的融合功能
ENVI_DOIT, 'sharpen_doit', $
fid=rgb_fid, pos=lindgen(m_nb), f_fid=h_fid, $
ENDIF
;获取影像参数
ENVI_FILE_QUERY, m_fid, dims=m_dims, $
bnames=m_bnames,nb = m_nb
IF method LT 2 THEN BEGIN
; Set the keywords

idl开发专题-ENVI功能扩展

idl开发专题-ENVI功能扩展

ENVI功能扩展本帖最后由 lianyi_dyq 于 2009-4-25 00:06 编辑1ENVI功能扩展ENVI作为功能强大的遥感软件,扩展ENVI的功能包括创建波段和波谱数学函数、自定义数据输入、交互式用户程序和ENVI二次开发等。

ENVI的扩展,包括波段和波谱运算函数,自定义的空间、波谱,或是感兴趣区域(ROI)的处理,用户函数,自定义文件输入程序,批处理,以及其它如报告和绘图工具等。

ENVI提供了一系列工具为程序员使用,能够极大地简化自定义程序的开发,并保持和ENVI一致的外观。

1.1ENVI波段运算和波谱运算对于用户来说,扩展ENVI的功能最简单方法就是使用波段和波谱运算函数。

用户可以交互式通过波段和波谱运算表达式对话框输入大多数的波段和波谱运算函数。

波段运算函数允许用户从任何波段或是文件中输入数据,处理数据,并输出整个波段。

波谱运算函数允许用户从图表或文件中输入波谱数据,处理数据,并输出一个波谱。

这种模式下,所有的数据的输入输出、获取、波段或波谱函数的调用及结果的输出都由ENVI中控制。

因此使用波段或波谱函数进行处理时,用户不需要修改菜单、不必创建参数输入部件,不用执行I/O操作,只需在用户编写的函数中提供数据的计算处理功能。

1.1.1波段运算下图通过三个波段的相加说明了波段运算的处理过程。

表达式中的每一个波段都对应于一个输入的影像波段,对这三个波段求和并输出结果影像。

这个表达式中的每个变量不仅可以对应于单一波段,也可以对应与一个文件。

例如:在表达式b1+b2+b3中,如果b1映射为文件而b2,b3映射为单一波段则结果为b1所对应的文件的所有波段分别和b2、b3进行求和。

波段运算可以方便的进行特定波段的自定义处理,快速高效的使用波段运算需要用户能灵活的应用IDL下的数学运算,编写过程中可参考章节2.2数组和2.7运算符。

波段运算时变量的定义必须以“b”或“B”开头,后面为数字且数字位数不超过5。

ENVI功能扩展

ENVI功能扩展

/ESRI/thread-45231-1-1.html1ENVI功能扩展ENVI作为功能强大的遥感软件,扩展ENVI的功能包括创建波段和波谱数学函数、自定义数据输入、交互式用户程序和ENVI二次开发等。

ENVI的扩展,包括波段和波谱运算函数,自定义的空间、波谱,或是感兴趣区域(ROI)的处理,用户函数,自定义文件输入程序,批处理,以及其它如报告和绘图工具等。

ENVI提供了一系列工具为程序员使用,能够极大地简化自定义程序的开发,并保持和ENVI一致的外观。

1.1ENVI波段运算和波谱运算对于用户来说,扩展ENVI的功能最简单方法就是使用波段和波谱运算函数。

用户可以交互式通过波段和波谱运算表达式对话框输入大多数的波段和波谱运算函数。

波段运算函数允许用户从任何波段或是文件中输入数据,处理数据,并输出整个波段。

波谱运算函数允许用户从图表或文件中输入波谱数据,处理数据,并输出一个波谱。

这种模式下,所有的数据的输入输出、获取、波段或波谱函数的调用及结果的输出都由ENVI中控制。

因此使用波段或波谱函数进行处理时,用户不需要修改菜单、不必创建参数输入部件,不用执行I/O操作,只需在用户编写的函数中提供数据的计算处理功能。

1.1.1波段运算下图通过三个波段的相加说明了波段运算的处理过程。

表达式中的每一个波段都对应于一个输入的影像波段,对这三个波段求和并输出结果影像。

这个表达式中的每个变量不仅可以对应于单一波段,也可以对应与一个文件。

例如:在表达式b1+b2+b3中,如果b1映射为文件而b2,b3映射为单一波段则结果为b1所对应的文件的所有波段分别和b2、b3进行求和。

波段运算可以方便的进行特定波段的自定义处理,快速高效的使用波段运算需要用户能灵活的应用IDL下的数学运算,编写过程中可参考章节2.2数组和2.7运算符。

波段运算时变量的定义必须以“b”或“B”开头,后面为数字且数字位数不超过5。

ENVI波段运算工具的使用有两种方式,数学表达式和波段运算函数。

ENVI支持的数据格式和二次开发-推荐下载

ENVI支持的数据格式和二次开发-推荐下载

ENVI支持的数据格式和二次开发1、ENVI支持的数据格式在ENVI4.5中,由于与ArcGIS的整合,进一步提高了自动流程化处理的效率。

目前,可以通过Geodatabase很容易的在ENVI和ArcGIS之间交换数据,非常方便的在ArcMap中利用ENVI的数据和影像生产地图。

ENVI4.5与ArcGIS无缝链接的功能通过Geodatabase提供给用户更方便地在ENVI和ArcGIS之间进行数据交换。

ENVI4.5完全支持enterprise, personal 和 file geodatabase级别的应用。

ArcGIS支持ENVI自己的栅格和矢量数据(.evf)格式,同时ENVI还可以输出Shape File、DXF矢量格式。

数据的输入ADS40ASAR DataAATSR DataALOS DataPRISM/PRISM RPCAVNIR-2PALSARASTER DataATSR DataAVHRR DataAVIRIS DataCARTOSAT- 1 DataDMSP DataECW FormatElevation Data:USGS DEMUSGS SDTS DEMDTEDFORMOSAT-2GEOTIFF & RPCSRTMENVISAT level 1b,levelPDSPICTPNGSRFTIFFGeoTIFFXWDGzip Compressed FilesHymapImage Processing SoftwareFormats:ArcView (bil)ECWENVIERDAS(lan、img、ige)ER MapperMrSIDPCI(pix)IRS Data in EOSAT FastFormat &SuperstructuralJPEG 2000Landsat MSS,TM,ETM:QuickBirdGEOTIFF/RPCNITF/RPCMosaic TiledRadar Data:RADARSATASARPALSARSIR-C/X-SARTOPSARERSJERSSeaWiFS(OrbView-2)CEOSHDFSPOT Data:SPOT5(DIMP) and level 1metadata1A,1B,2A,CAPACRESHDF VegetationGeoSPOT2ERISAATSRASAREROS(HDF-EOS)ASTERMISRMODISEROS A level 1a 和 1bESRI GRID FormatFORMOSAT-2Generic Image Format:ASCII(x,y,z columns,rids)BMPECWBinaryGeoJ2KHDFHDF-EOSJPEGJPEG 2000MrSIDEOSAT FASTGeoTIFFHDFNLAPSACRES CCRSMRLSESA CEOSLAS LidarMilitary Format:NITF 2.0,2.1NISIF 1.0ADRG,CADRGCIBTFRDMERISMIVISMODISMODIS Simulator(MAS-50 HDF)MrSIDOrbviewGEOTIFF/RPCNITF/RPCMosaic TiledThermal Data:TIMSMASTER(MODIS/ASTERSimulator)ASTERAATSRUser-Definable DataFormatsUSGS DOQ FilesVector Formats:ARC Interchange Format(Uncompressed)ESRI Shape(.shp) withattributesAutoCAD DXFUSGS DLGUSGS SDTSMapInfoMicrostation .DGN输出格式栅格格式:ArcView(bil) BMPENVI StandardERDAS (lan、img)ER Mapper(ers)ESRI GRIDGeoTIFFGzip CompressedJPEGNITF 1.1,2.0,2.1 PCI(pix)PICTPNGSRFTIFFXWD 矢量格式:ESRI Shapefiles(with attributes)DxfENVI Vector FormatDirect Output to PrinterPostScriptMPEGVRMLOutput to Tape2、ENVI的二次开发2.1 ENVI功能定制ENVI自身定制ENVI是非常开放的系统,用户可以定制、修改ENVI的菜单,为ENVI添加新的颜色、坐标系、投影类型以及各种类型的分析工具。

3-ENVI 波段运算功能扩展

3-ENVI 波段运算功能扩展

波段运算修改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
ENVI的功能扩展
波段和波谱运算函数
ENVI提供两个功能,用户能够对影像波段或波谱进行数学运算; 简单,无需了解ENVI内部的处理机制;
用户函数(扩展补丁)
ENVI菜单执行,通过ENVI获得输入数据,结果直接输入到ENVI中;
二次开发模式(批处理)
将常用处理编写成为IDL程序,常用于批量处理; 能够通过调用ENVI的绝大多数ENVI的功能; 可以编写自己的程序界面,后台使用ENVI功能;
去云处理 定量遥感
地表温度反演、水质监测、农业估产等。
波段运算-举例
像元值小于0的赋值为0(用以去除异常值) b1>0
像元值小于0的赋值为-999 (b1 LT 0)*(-999)+(b1 GE 0)*b1
三个波段求均值。要求如果某波段小于等于0则不参与运算。例如某像元b1:4、 b2:6、b3:0,那么均值为(b1+b2+b3)/(1+1) (b1>0 + b2>0 + b3>0)/(((b1 ge 0)+(b2 ge 0)+(b3 ge 0))>1)
ENVI 波段运算功能扩展
技术支持邮箱:ENVI-IDL@ 技术支持热线:400-819-2881-5 官方技术博客:http://www.envi.space 官方技术qq群:514396478

4ENVI的功能扩展与ENVI二次开发

4ENVI的功能扩展与ENVI二次开发
DIMS关键字是一个5个元素长整型数组。它定义了欲处理数 据的空间子集。 DIMS[0] 存储一个打开的ROI区域的指针,仅在ROI被定义 的时候使用,其它时候设为-1L DIMS[1] 采样的起始位置 Sample start DIMS[2] 采样的终止位置 Sample end DIMS[3] 行的起始位置 Line start DIMS[4] 行的结束位置 Line end
参考教程 P205 组件列表

事件管理


WIDGET_AUTO_BASE创建顶级base
AUTO_WID_MNG进行事件管理
参考教程 P209 编写组件事件管理的例子
ENVI二次开发模式-介绍

二次开发模式--在非GUI下使用ENVI

使用IDL工作但偶尔需要用到ENVI的函数; 进行大量ENVI处理而不需人工干预(批处理)
ENVI功能扩展介绍
ENVI功能扩展
ENVI的功能扩展

ENVI是使用IDL语言编写的优秀的遥感影像 处理平台,用户可以方便的通过IDL语言以 及ENVI提供的二次开发工具对ENVI的功能进 行增强,添加新的功能函数或调用ENVI已有 的功能。
ENVI的功能扩展

波段和波谱运算函数


ENVI提供两个功能,用户能够对影像波段或波谱 进行数学运算; 简单,无需了解ENVI内部的处理机制; ENVI菜单执行,通过ENVI获得输入数据,结果直接 输入到ENVI中; 将常用处理编写成为IDL程序,常用于批量处理; 能够通过调用ENVI的绝大多数ENVI的功能; 可以编写自己的程序界面,后台使用ENVI功能;

ENVI_GET_FILE_IDS
ENVI下的关键字和函数

ENVI二次开发指南

ENVI二次开发指南

ENVI二次开发指南ENVI是一款强大的遥感影像处理和分析软件,可以帮助用户从卫星、航空和地面传感器等源获取的多光谱和高光谱影像数据中提取信息。

除了提供完善的工具和算法,ENVI还支持二次开发,允许用户根据自己的需要进行定制和扩展。

本文将提供一些关于ENVI二次开发的指南。

首先,为了开始ENVI二次开发,您需要熟悉IDL(InteractiveData Language)编程语言。

ENVI是基于IDL编写的,因此对IDL的理解是进行二次开发的基础。

如果您不熟悉IDL,可以先学习IDL编程语言,以便更好地进行ENVI二次开发。

其次,ENVI提供了一些API(Application Programming Interface)和工具包,用于二次开发。

这些API和工具包可以帮助您进行影像处理、数据分析和可视化等操作。

其中一些常用的API和工具包包括:ENVI Core、ENVI Spectral Modeling、ENVI Photogrammetric Modeling和ENVI SARscape等。

根据您的具体需求,选择合适的API和工具包进行二次开发。

在进行ENVI二次开发之前,建议先对ENVI的基本功能和特性有一定了解。

可以通过阅读ENVI的官方文档和教程,或参加ENVI的培训课程来提高您的熟练程度。

掌握ENVI的基本操作和相关概念将有助于您更好地进行二次开发。

在进行ENVI二次开发时,您可以根据自己的需求编写IDL程序并调用ENVI的API和工具包进行影像处理和分析。

比如,您可以编写程序来读取、显示和保存影像数据,进行波段操作和色彩校正,执行空间分析和特征提取,进行分类和监督分类等。

通过自定义程序,您可以将ENVI的功能和算法与其他软件或系统进行集成,实现更复杂的应用。

在进行ENVI二次开发时,还可以利用ENVI的扩展功能和脚本功能。

ENVI支持使用各种脚本语言(如IDL、Python和MATLAB)编写脚本,可以通过脚本来批处理和自动化处理。

ENVI二次开发

ENVI二次开发

ENVI_OPEN_FILE,file,r_fid=fid IF (fid EQ -1) THEN RETURN
7
ENVI /IDL二次开发基础
R_FID和M_FID ENVI处理程序产生的影像结果也包括一个R_FID, 或者称为返回FID关键字。如果结果是存在内存 中 的,R_FID关键字是访问数据的唯一方法。 进行掩模的处理时还包括一个M_FID,或 者称为掩模关键字,用于确定用于掩模波段的文 件。
批处理模式简介 批处理模式的ENVI和正常模式下没有什么区别,只是通 过一系列的特定的函数库来执行ENVI的功能。为了使用 这些函数,必须首先将它们恢复到IDL内存中。因此为 了正确获取这些函数,有必要了解一下ENVI程序的结构。 ENVI功能文件由大约50多个小的IDL save文件组成,这 些文件是包括数据和编译后的程序的二进制文件。这些 save文件存放在ENVI安装目录下的Save目录下。ENVI的 核心save文件包括ENVI的基本功能函数,动态运行函数 以及ENVI运行所需的内部变量。

8
ENVI /IDL二次开发基础

DIMS
DIMS关键字是一个5个元素长整型数组。它定义了处 理数据的空间子集。当确定一个文件的时候,必须同 时确定该文件的空间范围。 DIMS[0] 存储一个打开的ROI区域的指针,仅在ROI 被定义的时候使用,其它时候设为-1L DIMS[1] 采样的起始位置 Sample start DIMS[2] 采样的终止位置 Sample end DIMS[3] 行的起始位置 Line start DIMS[4] 行的结束位置 Line end 如DIMS=[-1,0,ns-1,0,nl-1]
ENVI/IDL 二次开发

enviidl二次开发-自定义envi扩展工具

enviidl二次开发-自定义envi扩展工具

enviidl二次开发-自定义envi扩展工具envi idl 二次开发-自定义envi扩展工具ENVI扩展工具文件夹的在安装目录的Extension 下:”C:\Program Files\Exelis\ENVI53\extensions”,自定的的envi扩展工具保存为.sav文件到该路径下后,启动envi就可以使用自定的扩展工具。

2.新建扩展完成后,会生成定义的代码,在pro envi5_canny_extensions_init 过程中,是用于定义扩展工具的显示的地方,如需要在原始菜单下的【Edit】菜单里的【Redo】下,添加Canny扩展功能,就可以写>>> e.AddExtension, ‘Canny’, ‘envi5_canny’,/menu, PATH=’Edit’,after = ‘Redo’, /SEPARATOR; Add the extension to the toolbox. Called automatically on ENVI startup.pro envi5_canny_extensions_init; Set compile optionscompile_opt IDL2; Get ENVI sessione = ENVI(/CURRENT); Add the extension to a subfoldere.AddExtension, 'Canny', 'envi5_canny', PATH='';添加到原始菜单下,/Sep表示分割符e.AddExtension, 'Canny', 'envi5_canny',/menu,$PATH='Edit',after = 'Redo', /SEPARATORend3.在功能过程envi_canny中定义实现的方法,可以直接运行测试,之后进行【重置】,编译该过程,并将该过程保存到扩展工具目录下>>>IDL> save,filename =”C:\Program Files\Exelis\ENVI53\extensions\envi5_canny.sav”,/routines ; ENVI Extension code. Called when the toolbox item is chosen.pro envi5_canny; Set compile optionscompile_opt IDL2; General error handlerCATCH, errif (err ne 0) then beginCATCH, /CANCELif OBJ_VALID(e) then $e.ReportError, 'ERROR: ' + !error_state.msgMESSAGE, /RESETreturnendif;Get ENVI sessione = ENVI(/CURRENT);******************************************; Insert your ENVI Extension code here...;******************************************UI = e.ui;选择输入文件Raster = UI.SelectInputData(/Raster);如果用户点返回,判断raster是否可用if ~obj_valid(raster) then return;如果可用data = Raster.GetData(bands=[0])result = canny (data)outfile = e.GetTemporaryFilename();定义输出栅格的波段,并且保存outRaster = ENVIRaster(result, uri = outfile, nbands =1) outRaster.Save;显示边缘检测后的栅格View = e.getview()Layer = View.Createlayer(outRaster)end显示的结果如下:。

ENVI二次开发函数名称

ENVI二次开发函数名称
ENVI_FILTER_DOIT
快速傅立叶滤波。
ENVI_FX_DOIT
ENVI的面向对象特征提取,必须安装ENVI和ENVI EX并授权。
ENVI_GEOREF_FROM_GLT_DOIT
对影像进行GLT几何校正。
ENVI_GET_CONFIGURATION_VALUES
获取ENVI当前配置文件中的参数信息。
执行影像的匹配滤波。
MATCH_FILTER_MT_DOIT
Perform Mixture Tuned Matched Filtering (MTMF).
MATH_DOIT
执行波段运算功能。
MNF_DOIT
执行最小噪声分离转变换功能。
MNF_INV_DOIT
执行最小噪声分离的逆变换。
MORPH_DOIT
GEN_IMAGE_DOIT
生成测试影像。
HANDLE_VALUE
获取和设置当前数据值。
HIST_EXPORT_DOIT
Output images using an applied lookup table (LUT).
MAGIC_MEM_CHECK
必要的时候为内存中的函数清理内存。
MATCH_FILTER_DOIT
DESKEW_DOIT
消除地球旋转引起的倾斜。
DESTRIPE_DOIT
影像数据的条带去除。
DISP_OUT_IMG
输出影像为Postscript文件。
ELINE_CAL_DOIT
经验线性定标工具。
EMITTANCE_CALC_DOIT
转换为发射率。
ENVI_ACE_DOIT
调用自适应想干估计的目标检测功能。
ENVI_REGISTER_DOIT
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

遥感与GIS应用开发培训班
扩展补丁-添加菜单
ENVI菜单系统结构 – 使用文本编辑器打开envi.men文件。文件结构如下所 示:
0 {File} 1 {Open Image File}{open envi file}{envi_menu_event} 1 {Open Vector File}{open vector file}{envi_menu_event} 1 {Open External File} 2 {Landsat} 3 {Fast} {open fast tm} {envi_menu_event}
打开文件函数 • ENVI_OPEN_DATA_FILE
遥感与GIS应用开发培训班
ENVI下的关键字和函数
数据获取函数
• ENVI_GET_DATA • ENVI_GET_SLICE
感兴趣区函数 • ENVI_GET_ROI_DIMS_PTR
遥感与GIS应用开发培训班
ENVI下的关键字和函数
ENVIRasterSpatialRefStandard
ENVIRasterToFID ENVITime ENVIVector
对象:空间参考对象,可使用CreateRasterSpatialRef创建。
方法:将ENVIRaster转换为FID。 对象:ENVI时间对象。 对象:ENVI矢量数据对象。
全新的开发方式
遥感与GIS应用开发培训班
e的方法
方法
ENVI.AddCustomReader
ENVI.AddExtension ENVI.Close ENVI.CreateRaster ENVI.CreateRasterMetadata ENVI.CreateRasterSpatialRef ENVI.CreateView ENVI.ExportRaster ENVI.GetOpenData ENVI.GetPreference ENVI.GetTemporaryFilename ENVI.GetView ENVI.HideExtensionFiles ENVI.LogMessage
POS
• POS关键字定义处理波段位置,是一个长整型数组; • 波段从0开始,例如,要处理第三波段和第四波段,POS=[2,3]。
遥感与GIS应用开发培训班
ENVI二次开发模式-关键字和函数
遥感与GIS应用开发培训班
ENVI下的关键字和函数
文件管理函数
• • • • •
ENVI_PICKFILE ENVI_SELECT ENVI_OPEN_FILE ENVI_FILE_MNG ENVI_GET_FILE_IDS
ENVI.OpenRaster
ENVI.OpenVector ENVI.Refresh ENVI.ReportError ENVI.Show 遥感与GIS应用开发培训班
ENVI 5.0 数据控制
对象或方法
ENVICoordSys
ENVIFIDToRaster ENVIRaster ENVIRasterIterator ENVIRasterMetadata ENVIRasterSpatialRefPseudo ENVIRasterSpatialRefRPC
充分利用IDL的数组运算优势
遥感与GIS应用开发培训班
扩展补丁-介绍
• 为ENVI添加功能并通过ENVI的菜单进行访问。 • 用户能够添加任意数量的用户函数,每个函数都可以设 置它自己的菜单选项。 • 当用户通过菜单选择用户函数时,将会执行这些函数, 如同ENVI的其它函数一样。 • 用户函数和IDL程序没有区别,可以称为ENVI的程序。
ENVI功能扩展介绍
ENVI功能扩展
ENVI的功能扩展
ENVI是使用IDL语言编写的优秀的遥感影像处理平台,用户 可以方便的通过IDL语言以及ENVI提供的二次开发工具对 ENVI的功能进行增强,添加新的功能函数或调用ENVI已 有的功能。
遥感与GIS应用开发培训班
ENVI的功能扩展
波段和波谱运算函数
遥感与GIS应用开发培训班
ENVI 5.0 显示控制
对象
ENVIPortal ENVIRasterLayer ENVIUI ENVIVectorLayer ENVIView
功能介绍
ENVI透视窗口对象 ENVI栅格图层对象,可对图层进行移动等操作。 ENVI用户界面对象,可弹出文件选择对话框和地图坐标系统界面等。 ENVI矢量图层对象,可对图层进行移动等操作。 ENVI视图对象,可对视图进行平移、旋转、缩放等操作。
遥感与GIS应用开发培训班
波段、波谱运算
波段运算基础
– 波段运算对话框用来定义波段或文件作为输入,调用
用户编写的表达式或函数,并将结果输出到文件或内 存。
遥感与GIS应用开发培训班
波段、波谱运算
波段运算格式 – 直接编写表达式
• 波段变量名必须为b1,b2…;
– 表达式函数
• 波段变量名必须为b1,b2…; • 波段运算函数Function开头,并有返回值;
事件管理
– WIDGET_AUTO_BASE创建顶级base
– AUTO_WID_MNG进行事件管理
参考教程 P219 编写组件事件管理的例子
遥感与GIS应用开发培训班
ENVI二次开发模式-介绍
二次开发模式--在非GUI下使用ENVI
– 使用IDL工作但偶尔需要用到ENVI的函数;
– 进行大量ENVI处理而不需人工干预(批处理)
R_FID和M_FID
– ENVI程序产生处理的结果将包括一个R_FID,称为返回 FID; – 如结果数据是存在内存中,R_FID是访问该数据的唯一 方法; – 进行掩模处理的程序还包括一个M_FID,称为掩模FID, 它用于确定用作掩模波段的文件。
遥感与GIS应用开发培训班
ENVI下的关键字和函数
遥感与GIS应用开发培训班
扩展补丁-添加菜单
ENVI菜单修改 – 修改文件 • 在ENVI\menu\envi.men文件中添加如下部分:
– – – – 0{MyFunctions} 0 {My Functions} 1 {文件信息查看} {not used} {test_envi_file_info} 1 {文件多波段存储} {not used} {test_envi_file_save}
数据生成函数
• ENVI_ENTER_DATA • ENVI_SETUP_HEAD
遥感与GIS应用开发培训班
用户函数
ENVI组件介绍 – ENVI提供了以WIDGET_开头的20多个功能组件来满 足用户的需要,很多部件都包括“OK”和“Cancel” 等按钮方便用户进行交互操作。
参考教程 P215 组件列表 测试运行:test_envi_widget.pro
每一行开始的数据定义了菜单项的层次。0表示最顶层,1 表示一级子菜单,2表示二级子菜单,依次类推。
遥感与GIS应用开发培训班
扩展补丁-添加菜单
ENVI菜单系统结构 – {Open External File}第一个大括号部分定义了显示在 菜单上的内容。 – {open envi file}第二个大括号部分定义菜单项所赋给的 用户值。 – {envi_menu_event}第三个定义了事件响应理程序名称, 即使用的是用户函数。 – 需要注意:当编写用户函数时,大多数情况下,用户 值是没有用的,这时候,可以将用户值设为和用户函 数名一致。
• 模式初始化
– envi_batch_init, log_file=’batch.log’,batch_lun=batch_lun
• 模式关闭
– envi_batch_exit
运行测试 chapter14\envifile2tif.pro
遥感与GIS应用开发培训班
ENVI 5 二次开发
ENVI 5.0 全新的开发模式
功能介绍
对象:可通过ENVIVector的COORD_SYS属性获取此对象。
方法:将ENVI中的文件ID(FID)转换为ENVIRaster对象。 对象:ENVI栅格对象,包含一些栅格数据操作方法。 对象:ENVI分块处理对象。 对象:ENVI栅格元数据对象。 对象:空间参考对象,可使用CreateRasterSpatialRef创建。 对象:空间参考对象,可使用CreateRasterSpatialRef创建。
功能介绍
为File > Open As > Custom添加打开自定义格式数据的过程,ENVI 5.0 SP2新增 为Toolbox添加扩展工具,ENVI 5.0 SP2新增可添加菜单功能 关闭ENVI 创建ENVIRaster对象,栅格文件对象 创建ENVIRasterMetadata对象,栅格描述数据 创建ENVIRasterSpatialRef对象,即空间参考对象 创建新的视图(View)
DIMS
• DIMS关键字是一个5个元素长整型数组。它定义了欲处理数据的 空间子集。 • DIMS[0] 存储一个打开的ROI区域的指针,仅在ROI被定义的时候 使用,其它时候设为-1L • DIMS[1] 采样的起始位置 Sample start • DIMS[2] 采样的终止位置 Sample end • DIMS[3] 行的起始位置 Line start • DIMS[4] 行的结束位置 Line end
输出栅格文件,可另存为DTED、ENVI、NITF、TIFF格式等。
获取已经打开的数据,返回栅格或矢量对象数组。 获取ENVI设置参数,如输入输出路径等。 自动获取一个临时文件名,位于临时目录。 获取当前视图,返回值为ENVIView对象。 启动ENVI时隐藏某个扩展补丁 将自定义消息保存到日志文件LOG_FILE内。 打开栅格数据,支持大多数格式。 打开矢量数据。 可以禁用或启用ENVI刷新功能。 弹出错误提示对话框。 使ENVI处于当前激活窗口。
相关文档
最新文档