ENVI二次开发技术内幕
【免费下载】ENVI支持的数据格式和二次开发
![【免费下载】ENVI支持的数据格式和二次开发](https://img.taocdn.com/s3/m/2b38585abed5b9f3f90f1c79.png)
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
全新遥感二次开发技术ENVITask-杜会建45页PPT
![全新遥感二次开发技术ENVITask-杜会建45页PPT](https://img.taocdn.com/s3/m/16a52a72aaea998fcc220ecc.png)
颜色选择对话框
调用格式
调用示例
– 简单调用 – 修改行列数 – 修改默认颜色 – 添加首选、自定义颜色 – 嵌入用户界面
…\2-ColorPicker\xxxxxxx.pro
文件夹监视系统
FOLDERWATCH
– FolderWatch::Init – FolderWatch::Check – FolderWatch::Start – FolderWatch::Stop
…\5-ENVITask\t_ChangeDetection.pro
图像处理(ENVITask)
高分1号数据预处理
ENVIRPCOrthorectificationTask
ENVINNDiffusePanSharpeningTask
…\5-ENVITask\test_GF1_Process.pro
ENVI 全新智能化二次开发
● 面向对象(Object-Oriented) ● 虚拟栅格(Virtual Raster) ● 图像处理(ENVITask) ● 自定义 ENVITask 能力
面向对象(Object-Oriented)
ENVI 5.x 提供全新的开发模式
虚拟栅格(Virtual Raster)
—— 对象初始化 —— 检查是否正在监视某文件夹 —— 开始监视指定文件夹 —— 停止监视
…\3-FolderWatch\Example_FolderWatch.pro
静态方法与属性
所有IDL变量(除了结构体和对象)均可以 调用静态方法
所有IDL变量均具有属性
IDL Help > Language > Static Methods and Attributes
ENVI二次开发中元数据基本操作研究
![ENVI二次开发中元数据基本操作研究](https://img.taocdn.com/s3/m/a4ea163f192e45361066f5ee.png)
引 言
元数 据是 管理 数据 的数 据 。 元 数 据 在 数 据 交换 、 网络 信 息 资 源 发 现 和 共 享 系统 建 设 中具 有 重 要 作 用I q 。 E T L是 数 据 仓 库 抽取 、 转换 、 加 载 系统 。 元数据就是 E T L的控 制 中心伫 1 。 元 数 据
—
,
S U N A Z I MU T H 3 0 7 . 5 O l D
—
双 精 度 s u n a z i mu t h 3 0 7 . 5 0 l 0 0 7 小数 可 选 双 精 度
e l e v a t i o n
S UN E L E VA-
_
n0N
6 0
.
袭 1 元 数 据 与 头 文 件 宇 段 对 照 表
元 数 据 设 置 字 段 头 文 件 字 段 备
注
字段 名 称
—
字段 值
值 类 型
字段 名 称 b v t e o r d e l " d a t a t y p e i f l et y p e
字 段 值 值 类 型 1 l EN VI S
个遥感与 G I S一 体 化 应 用程 序 变得 非 常 轻 松 [ 6 t 。利用 E N V I
的元 数 据 操 作 技 术 , 可 以 开发 不 同规 模 、 不 同架 构 的元 数 据 管 理 系统 或 插 件 。 为批 量 数 据 处 理 、 业 务 化 系统 开发 、 海量 空间 数 据 库 建 设 等 提 供 关 键 技 术 . 为 此 需要 深入 研 究 E N V I的元
t a n d a r d
B Y T E ORD ER ‘ Ho s t ( 1 n t e 1 ) ’ 字符 串
ENVI的二次开发
![ENVI的二次开发](https://img.taocdn.com/s3/m/753ed1306bd97f192279e966.png)
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二次开发技术内幕](https://img.taocdn.com/s3/m/42cdb0eb9f3143323968011ca300a6c30c22f18b.png)
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二次开发](https://img.taocdn.com/s3/m/5634f835a300a6c30c229f83.png)
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函数进错误的捕获
enviidl二次开发-自定义envi扩展工具
![enviidl二次开发-自定义envi扩展工具](https://img.taocdn.com/s3/m/afb49a1bcd1755270722192e453610661ed95a38.png)
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二次开发指南](https://img.taocdn.com/s3/m/f72c6722192e45361066f509.png)
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](https://img.taocdn.com/s3/m/41057a9a6bec0975f465e252.png)
(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], 各个字段代表的含义见下表。
全新遥感二次开发技术ENVITask-杜会建
![全新遥感二次开发技术ENVITask-杜会建](https://img.taocdn.com/s3/m/9969d16001f69e314332947a.png)
图 像 裁
图 像 变
其 他 功
测
类
割
波
理
准
割
理
嵌
理
析
具
伸
剪
换
能
矢
量
3
13
3
10
17
13
9
4
5
1
3
7
7
7
14
6
2
314ຫໍສະໝຸດ 图像处理(ENVITask)
图像处理(ENVITask)
变化监测(Change Detection)
•
• • • • • •
30行代码
1、快速大气校正
2、计算两个 NDVI 3、计算两个 NDVI 差值 4、自动阈值分割 5、分割结果平滑处理 6、分割结果聚类处理 7、变化检测结果输出为矢量
④ 制作ENVI扩展
调用自定义 ENVITask
设定处理输入输出 参数
配置输入输出参数 属性
或使用Task文件完 整路径调用
免去了编写设计UI 的烦恼
…\6-CustomENVITask\GF1PreprocessingTask\
ENVI 功能扩展
调用高分1号预处理 ENVITask
① ② ③ ④ ⑤ ⑥ 编译pro为sav文件 将sav与task文件拷贝至custom_code文件夹 编写 ENVI Extension 代码 构建工程,生成sav文件 拷贝sav文件到Extensions文件夹 启动 ENVI 即可
…\1-PythonBridge\Call_Python_in_IDL.pro
Python Bridge
Python 中调用 IDL
>>> >>> >>> >>> >>> >>> >>> >>> from idlpy import IDL import numpy.random as ran arr = ran.rand(100) p1 = IDL.plot(arr, title='My Plot') p2 = IDL.plot(IDL.smooth(arr,5), overplot=1) p2.color = 'red' p2.thick = 2 p1.close()
IDL数据可视化与ENVI遥感二次开发技术
![IDL数据可视化与ENVI遥感二次开发技术](https://img.taocdn.com/s3/m/e9edc4e3ba0d4a7302763a13.png)
几个好玩的可视化例子
正弦余弦曲线 红心 泰森多边形
Game:2048
实例:IDL中显示分类图像的方法
演示:IDL中显示分类结果
双击DisplayClassificationImage.sav,选择分类文件。
ENVI中的显示效果
演示:IDL中显示分类结果
快速可视化
直接图形法 对象图形法
对象:ENVI栅格元数据对象。 方法:将ENVIRaster转换为FID。
对象:全新的ENVI感兴趣区域对象。 对象:空间参考对象,存储RPC信息。 对象:空间参考对象,包含了标准地理坐标系信息。 对象:ENVI时间对象。 对象:ENVI矢量数据对象。
ENVI 5 显示控制
对象 ENVIPortal ENVIRasterLayer ENVIROILayer ENVIUI ENVIVectorLayer ENVIView 功能介绍 ENVI透视窗口对象。 ENVI栅格图层对象,可对图层进行移动等操作。 ENVI感兴趣区域图层。 ENVI用户界面对象,可弹出文件选择对话框和地图坐标系统界面等。 ENVI矢量图层对象,可对图层进行移动等操作。 ENVI视图对象,可对视图进行平移、旋转、缩放等操作。
雷达扫描方式(圆锥)和扫描结果(平面)
三维和体数据可视化
单个PPI曲面展示——以倾角为0.5°为例 差值为体数据进行可视化
ENVI遥感二次开发技术
ENVI 5 全新开发模式介绍
面向对象的理念
e 的方法(e=envi())
方法
ENVI.AddCustomReader ENVI.AddExtension
ENVI 5 事件处理
鼠标事件 键盘事件
事件类型 鼠标按下 函数格式 Result = FunctionName(View, X, Y, Button, KeyMods, Clicks)
基于ArcGIS Engine的地理信息系统二次开发原理和方法
![基于ArcGIS Engine的地理信息系统二次开发原理和方法](https://img.taocdn.com/s3/m/7441da74a26925c52dc5bf02.png)
金 靖
( 湖北省鄂州市勘测院 , 湖北 鄂 州 4 60 ) 3 0 0
摘
要 : rGSE g e A c I9中新增 的两个突 出产品之一 , 为面 向对 象的嵌入 式 GS Ac I n n Ac I ni 是 rGS n 作 I , rGSE g e能用 i
来在一个组织 内建 立应 用 , 为用户提供 有针 对性的 G S功能。它 包含一 个构 建定制应 用的开发 包 , I 使得 进行 GS I 应用开发时彻 底脱 离 了A c I 面平 台, r S桌 G 方便 了地理信 息的开发 , 大大节约 了开发成 本。本 文结合 某大 学校 也
作, 这些 操作 定 义 了某 种 行 为 , 这组 操 作 的 规 范 , 即 而非
地理 信息 系统详 细介 绍其 具体 开发方 式 。
3 1 加 载 A c I 件 . rGS控
1 启动 Vsa Bs , 新 建工程 中新 建一个 工程 ; ) i l ai 并从 u c 2 将工 程命 名为 “ 大学校 园地 理信 息 系统 ” ) 某 并选 择
靖 (9 3 ) 女 , 1 6 一 , 湖北鄂 州 人 , 级工 程师 , 高 学士 , 主要 从事 测绘 生产 的技 术 与管理 工作 。
第 3期
22.ENVI功能扩展与二次开发
![22.ENVI功能扩展与二次开发](https://img.taocdn.com/s3/m/c754108ee53a580216fcfe5c.png)
启动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二次开发综述与代码分享](https://img.taocdn.com/s3/m/bc65a840767f5acfa1c7cd87.png)
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
4ENVI的功能扩展与ENVI二次开发
![4ENVI的功能扩展与ENVI二次开发](https://img.taocdn.com/s3/m/9eec2a5ff01dc281e53af041.png)
参考教程 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二次开发指南](https://img.taocdn.com/s3/m/64cf4bd0dbef5ef7ba0d4a7302768e9951e76e2e.png)
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)编写脚本,可以通过脚本来批处理和自动化处理。
4-ENVI Classic 二次开发(Envi)
![4-ENVI Classic 二次开发(Envi)](https://img.taocdn.com/s3/m/21521fa416fc700aba68fc0a.png)
• 每一行开始的数据定义了菜单项的层次。0表示最顶层,1表示一级子菜单,2表示二级子菜单, 依次类推。
扩展补丁-添加菜单
• ENVI菜单系统结构
– {Open External File}第一个大括号部分定义了显示在菜单上的内容。 – {open envi file}第二个大括号部分定义菜单项所赋给的用户值。 – {envi_menu_event}第三个定义了事件响应理程序名称,即使用的是用户函数。 – 需要注意:当编写用户函数时,大多数情况下,用户值是没有用的,这时候,可以将用户
IDLViewer
✓ 利用IDL组件搭建通用模板,可嵌入自定义功能,快速实现系统开发
专题:植被增强
植被增强流程
• 计算NDVI • 波段运算得到新的绿波段
– (ndvi gt 0.2)*(0.3*nir + 0.7*green) + (ndvi le 0.2)*green
• 波段组合
\03_ENVIClassic\envi_vegetation_enhance.pro
处理技术,用到了如下接口:
– ENVI_GET_TILE:获取影像分块中的一块。 – ENVI_INIT_TILE:初始化分块处理并返回块的ID号。 – ENVI_TILE_DONE:分块处理结束。
实现过程(2)
• 用户界面构建 • 为了工具具有更好的通用性,选择了如下接口:
– ENVI_SELECT:选择输入文件的组件。 – ENVI_COLLECT_SPECTRA:端元波谱收集界面,极大地降低了用户界面的构建难度,并
且保留了ENVI的操作习惯。 – WIDGET_OUTF:选择输出文件的组件。 – ENVI_REPORT_INC:设置ENVI进度提示界面状态。 – ENVI_REPORT_INIT:ENVI进度提示初始化和结束。 – ENVI_REPORT_STAT:ENVI进度提示百分比或进度更新。
ENVI支持的数据格式和二次开发
![ENVI支持的数据格式和二次开发](https://img.taocdn.com/s3/m/b03e66f8f90f76c661371af3.png)
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矢量格式。
数据的输入输出格式2、ENVI的二次开发2.1 ENVI功能定制ENVI自身定制ENVI是非常开放的系统,用户可以定制、修改ENVI的菜单,为ENVI添加新的颜色、坐标系、投影类型以及各种类型的分析工具。
用户函数可以用IDL、C、Fortran或者其它的高级语言编写,并集成到ENVI 软件中,通过ENVI的菜单来执行。
2.2底层开发语言IDL扩展借助IDL,用户能够非常方便的为ENVI添加新功能和算法,并且可以将遥感技术与专业应用紧密结合,构建出独有的专业遥感应用平台。
ENVI中可以直接调用IDL的函数、自定义算法等。
2.3自带函数库ENVI也提供了大量的功能函数供用户使用。
ENVI的功能函数非常完备,交互式ENVI中提供的所有功能,都有相应的功能函数与之对应,并且每个功能函数都提供了详细的文档说明和示例程序。
这些功能函数构建在IDL的基础上,能够被用户的IDL程序所调用。
用户使用这些功能函数,完全能够定制出属于自己的专业遥感应用平台。
2.2 IDL可视化开发语言简介IDL(Interactive Data Language)交互式数据语言是进行科学数据分析、可视化表达和跨平台应用开发的理想工具。
ENVI二次开发
![ENVI二次开发](https://img.taocdn.com/s3/m/41fac712763231126edb114b.png)
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 二次开发
全新遥感二次开发技术ENVITask杜会建
![全新遥感二次开发技术ENVITask杜会建](https://img.taocdn.com/s3/m/010a1c79011ca300a6c3904c.png)
图像处理(ENVITask)
高分1号数据预处理
ENVIRPCOrthorectificationTask
ENVINNDiffusePanSharpeningTask
• 1. 正射校正
全色图像
• 3. 正射校正
• 4. 图像融合
• 2. 转换为BIL
多光谱图像
融合结果
…\5-ENVITask\test_GF1_Process.pro
自动验证参数的正确性,用户无需添加错误处理代码;
如果用户没有设置输出路径,ENVITask会提供一个临时的 文件名,ENVI将在退出时自动清理临时文件;
自动生成一个动态的用户界面,允许用户交互式地输入参 数和运行任务; 已有的IDL代码,在很少代码修改的基础上即可实现自定义 ENVITask;
ESE 自定义服务发布
以动态变化监测为例
...\7-ESETask\ESE_ChangeDetection_Module\
ESE API for IDL
以 ESE_Canny 服务为例
IDL> task=ESE.FindTask('duhuijian','ese_canny') IDL> job = task.Run(input='image.tif') IDL> job.GetParameters(/names)
17
13
9
4
5
1
3
7
7
7
14
6
2
3
14
图像处理(ENVITask)
图像处理(ENVITask)
变化监测(Change Detection) 30行代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。
3)在弹出的界面中选择表达式中变量赋需要计算的波段。
波段、波谱运算函数编写波段运算函数跟数学表达式相比,在操作上更灵活,函数中可以添加更多的控制,如运算中的错误检测等。
函数的编写非常简单,接受输入波段,处理数据,并返回结果。
实例:以编写(b1+b2)/ (b1-b2)功能为例,步骤如下1)编写函数并保存2)加载函数加载函数的方法有两种。
注意的是不同的文件需要注意下使用环境,若是sav文件,启动ENVI或ENVI+IDL都可,但若是pro文件,必须要启动ENVI+IDL。
(1)直接编译文件,在ENVI的主菜单下,选择[File]→[Compile IDL Module],选择pro或sav文件进行编译;(2)把bm_ratio.pro或sav文件放入ENVI安装目录下的..\ envi46\save_add下,重启ENVI。
3)执行函数在ENVI主菜单下,选择[Basic Tools]→[Band Math],在弹出的BandMath 界面中,在[Enter an Expresion]里面输入函数调用点击[OK]执行。
2.1.2用户自定义功能用户自定义功能允许用户为ENVI添加新功能并通过ENVI菜单进行访问。
当用户通过菜单选择该函数对应的菜单项时,将会执行这些函数,就如同ENVI 本身自带的功能一样。
分为两个步骤,一是编写功能代码,二是修改菜单。
1)编写功能代码用户函数可以是pro或sav,如是pro则与普通的IDL程序无任何区别,用户函数必须放入到ENVI安装目录下的Save_add目录中,在ENVI启动时用户函数可以被自动编译或恢复。
用户函数pro代码可以随时进行修改,ENVI只需重新编译函数而不需要重启。
2)Menu文件修改ENVI的菜单文件envi.menu在系统中路径为itt\idlxx\products\envixx\menu,使用记事本就可以打开。
文件顶部有些介绍的注释文本,然后就是文件的结构:前面以;开头的是注释文本,后面是菜单定义。
菜单定义每一行开始的数据定义了菜单项的层次。
0表示最顶层,1表示一级子菜单,2表示二级子菜单,如此类推。
以1级菜单为例说下内容定义:{Open Image File}定义了显示在菜单上的内容。
{open envi file}定义了为菜单项所赋给的用户值,在处理多个菜单项时有用。
{envi_menu_event}定义了菜单项事件处理程序的名称。
修改保存该文件然后重启ENVI即可。
3)函数修改ENVI提供函数ENVI_DEFINE_MENU_BUTTON来实现菜单的程序添加。
用法如下:功能函数名称为My_Function,event,建立一过程PRO My_Function_define_buttons, buttonInfo,添加工作在这个过程中完成。
ENVI_DEFINE_MENU_BUTTON的调用格式如下:ENVI_DEFINE_MENU_BUTTON, ButtonInfo [, /DISPLAY], EVENT_PRO=string,/MENU, UV ALUE=string [, POSITION=long integer or string] [, REF_INDEX=long integer] [, REF_UV ALUE=variable], REF_V ALUE=string [, SEPARATOR={0 | 1 | -1}] [, /SIBLING],V ALUE=string关键字说明:Display-是创建在主菜单还是显示菜单;V ALUE -菜单的显示信息;UV ALUE –菜单的uValueEVENT_PRO-程序事件名称;Menu- 是否为菜单REF_INDEX-若REF_V ALUE不唯一则可用此来设置;REF_V ALUE -已存在菜单名;SIBLING -是否创建同级菜单。
4)实例编写Landsat-7 ETM+的单影像去条带补丁背景:由于Landsat-7 ETM+机载扫描行校正器(SLC) 故障导致2003年5月31日之后获取的图像出现了数据条带丢失,见下图。
严重影响了Landsat ETM遥感影像的使用。
针对该现象,实现一个对该传感器进行去条带的补丁。
分析:由于数据中包含有同名的掩膜文件,该掩膜文件可将条带完全覆盖。
基于此则程序实现的时候只需根据掩膜文件进行判断即可,而无需再根据数据值进行。
条带部分数据的填充方式采取条带两边数据线性插值,虽然有些地方数据有些失真,该方法是速度比较快的容易实现方式。
代码编写:根据前面的分析,代码函数名及功能如下。
tm_destripe:主函数,数据的读取、调用条带去除功能及存储;Tm_destripe_define_buttons:创建ENVI主菜单按钮;stripFill:条带数据的赋值填充;程序运行将pro或生成的sav放在\save_add 目录下,重启ENVI+IDL或ENVI,在[Basic Tools]→[Preprocessing]→[General Purpose Utilities]下会自出现Landsat-7 ETM+ Destripe功能菜单,如图。
处理后结果对条带数据进行处理后,关联显示后可发现,条带去除效果很明显。
2.2系统开发系统开发模式是脱离ENVI主界面的程序运行方式,充分利用了IDL语言的快速、简单等特点,可以轻松、方便的实现批处理数据转换等功能。
系统开发模式与ENVI下的使用不同,需要进行该模式的初始化,在系统关闭时需要对模式进行关闭。
实现起来比较简单,初始化和关闭就下面函数中的几行代码。
实例:批量将多个多波段数据的3、2、1波段存为三通道的TIF文件,若数据波段少于三则全部存储。
分析:实现这样的功能批处理模式最符合要求,因需求中波段固定3、2、1,故读取数据和存储TIF文件函数均可调用ENVI的函数来实现。
代码编写:分两部分,一是界面构建与交互处理,二是数据的存储功能。
界面部分:功能部分代码运行主界面2.3 集成开发集成开发指的是在其他语言如VC++、Visual 2005下调用ENVI的功能。
这种开发实现的方式跟IDL的集成开发一致,只是在功能方法编写的时候采用的ENVI的系统开发的形式,可以通过下面几种方式进行。
Callable技术ENVI/IDL函数可以作为动态链接库被外部程序调用启动,称之为Callable IDL技术。
使用Callable IDL技术,外部程序可以像在IDL环境中一样执行IDL的代码。
下面以Visual C++为例,实现调用ENVI或IDL函数的主要步骤:1.建立VC的MFC工程,添加\ITT\IDL70\external\include的idl_export.h头文件;2.工程→设置→连接中的对象/库模块中添加idl.lib;3.工具→选项→目录中的Library files 添加IDL的安装路径..\ITT\IDLxx\BIN\BIN.X86;4.我的电脑右键属性→高级→环境变量→系统变量path中添加IDL的安装路径\ITT\IDL70\BIN\BIN.X86;5.IDL初始化执行代码“IDL_Win32Init(0,handle,NULL,0)”;6.执行IDL的命令语句用“IDL_ExecuteStr(“***”)”;7.退出时清除IDL调用命令:“IDL_Cleanup(true)”。
IDLDrawWidget跟Callable技术类似,IDLDrawWidget技术,可以将ENVI/IDL函数作为COM组件被外部程序调用启动。
以C#为例,该方式调用ENVI/IDL函数的步骤:1.建立一个Windows应用程序;2.在工具箱上右键→选择项→COM组件选中IDLDrawWidget Control3.0并拖动控件到窗体上;3.设定IDL库文件目录axIDLDrawWidget1.IdlPath;4.初始化IDL控件:n = axIDLDrawWidget1.InitIDL((int)this.Handle);5.axIDLDrawWidget1.ExecuteStr(“***”);执行IDL命令。
对象导出使用对象导出向导可以将ENVI或IDL的功能添加到其他应用软件中,该种模式能够很容易地将ENVI或IDL对象输出到Java和COM环境,进而直接缩短接口开发时间。
可以导出ENVI或IDL的pro文件或sav文件,Java 和COM的实现步骤基本类似。
导出Java对象1在导出对象定义的过程后加__ define(以类的形式);2在IDL命令行中输入IDLEXBR_ASSISTANT 回车打开对象输出向导;3File → New Project → Java选择要输出的*_define.pro或*_define.sav文件加载进输出向导;4设置对象要输出的过程、函数及其参数;5保存工程File → Save project;6编译输出对象Build → Build object;7生成*.java 和*.class文件。