ENVI二次开发中元数据基本操作研究
【免费下载】ENVI支持的数据格式和二次开发
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
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
IDL+envi二次开发介绍
ENVI介绍
ENVI是基于IDL语言开发的,主要用于遥感图像处理,其中不仅支持多种数 据格式,还囊括了众多成熟及特有的遥感处理功能函数。 ENVI真正比其他软件的优势,在于其二次开发的简便与齐备,再加上IDL语 言上的优势,使得ENVI二次开发成为自定义流程处理遥感影像的优选方案。
IDL编程基础
IDL+ENVI二次开发
IDL介绍
IDL是ITT公司的产品,主要优势在于矩阵运算速度比较快,对于大数据量、 多文件批处理比较适合。 IDL还经常被用来进行快速开发,制作一个带有界面的小功能模块往往比 其他语言要快很多,特别是有一些代码基础的情况下。 IDL集成了IMSL数学与统计函数库,针对用户自定义、偏重科学、比较复 杂运算有很强的优势。 IDL在快速数据可视化方面也有其优势,集成了很多小函数,直接可以将 线、二维图像简单的绘制出来。
IDL+ENVI二次开发简要步骤
1、初始化ENVI
2、打开文件,获得fid
3、查询文件信息 4、调用ENVI处理函数,输出结果 5、退出ENVI
IDL+ENVI二次开3;ENVI二次开发实战演练
ENVI二次开发函数
ENVI二次开发技巧
1、确定解决方案技术流程
1、数组与常量运算相当于数组的每个值都与常量运算 a + 1 = a[i] + 1 2、数组与数组运算相当于数组对应位置的值分别进行运算 a + b = a[i] + b[i] 3、数组创建默认都填了0值 4、数组取值方式多种多样 a[*] a[1:*] a[2:6] a[0:n_elements(a)-1] 5、数组维度变化 a = intarr(6) b = reform(a,2,3) c = reform(b,1,6)
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 二次开发指南航天星图(北京)有限公司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中文操作说明书
ENVI 用户指南第一章:ENVI 概述如何使用本手册本手册包括若干章节;每章描述ENVI 提供的一系列处理程序。
多数章节遵循ENVI 的菜单结构。
例如,第4 章的标题为“Basic Tools”,它描述的功能可以在ENVI 的Basic Tools下拉菜单下找到。
5 个附录分别针对:ENVI基本功能、文件格式、波谱库、地图投影以及描述ENVI 该版本的新特征。
该介绍性章节包括与ENVI 图形用户界面(GUI)的交互,使用ENVI 窗口,及其它介绍性材料。
新的ENVI 用户使用前务必认真阅读本手册,以及附带的ENVI 教程。
对于章节中的每个主题,功能描述之后给出了实现它的一步步向导。
向导中描述了参数,通常还附有建议和例子。
大多数功能(除了交互的功能)从ENVI 的下拉主菜单启动。
出现包含接受用户输入参数的对话框。
许多参数包含系统默认值并且有一些是可选的。
当功能运行时,出现一个处理状态窗口。
运行功能的一步步向导被编号并且用粗体显示。
鼠标控制菜单选项与用斜体字印刷的下拉菜单一同出现。
子菜单用“>” 连接。
每个步骤内的选项用项目符号显示。
按钮名用引号标明,对话框标题以大写字母开头。
一些对话框内部有下拉菜单。
每个下拉菜单下的选项通常在以该下拉菜单名为标题的一节中描述。
例如,这些是如何对一个文件进行中值滤波的向导:1. 从ENVI 主菜单,选择Filters > Convolutions > Median 。
将出现一个文件选择对话框, 允许你交互地改变目录并选定需要的输入文件。
2. 通过点击文件名,再点击“OK” 或“Open”,来选择所需要的文件。
若有必要,使用任意空间和/或波谱的构造子集(subsetting)。
3. 当出现Convolution Parameters 对话框,在“Size” 文本框中,输入所需要的滤波器大小。
4. 选择输出到“File” 或“Memory”,若需要,键入一个输出文件名。
ENVI基础操作(全)
ENVI基础操作(全)ENVI是一种专业的遥感数据分析和图像处理软件,它广泛应用于地理信息系统(GIS)和遥感领域。
以下是ENVI的基础操作指南,包括数据加载、图像增强、分类和制图等功能。
1.数据加载:- 打开ENVI软件后,通过菜单栏中的 "File" -> "Open" 来加载遥感数据。
-可以选择加载多种类型的数据,包括图像文件、数据集文件、栅格数据等。
-ENVI还支持加载多波段数据和多时相数据,方便进行多光谱分析和时间序列分析。
2.图像增强:-ENVI提供了多种图像增强算法,可以改善图像的对比度、亮度和清晰度。
- 通过菜单栏中的 "Basic Tools" -> "Display" 可以调整图像的亮度、对比度和伪彩色显示。
- 通过菜单栏中的 "Basic Tools" -> "Spatial Filter" 可以应用空间滤波算法,如平滑、锐化和边缘增强等。
-ENVI还支持直方图均衡化、波段拉伸、多尺度分析等高级图像增强方法。
3.数据分析:-ENVI提供了多种数据分析算法,包括统计分析、光谱分析和变化检测等。
- 通过菜单栏中的 "Basic Tools" -> "Statistics" 可以计算图像的统计信息,如均值、最大值、最小值和标准差等。
- 通过菜单栏中的 "Basic Tools" -> "Spectral" 可以进行光谱分析,如图像分类、聚类分析和主成分分析等。
-ENVI还支持变化检测算法,可以对多时相数据进行像元级变化检测和物体级变化检测。
4.数据分类:-ENVI提供了多种数据分类算法,包括监督分类和非监督分类等。
- 通过菜单栏中的 "Supervised Classification" 可以进行监督分类,需要提供训练样本和分类器。
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 二次开发
ENVI基础操作(全)
ENVI基础操作(全)ENVI(The Environment for Visualizing Images)Version 4.1 ,由美国系统研究公司(Research System INC.)开发。
⼀. 界⾯系统介绍1. 主菜单:菜单项,File、Basic Tool、Classification、Tranform、Spectral实习所涉及的(粗略介绍)2. Help ⼯具的使⽤3. 主菜单设置(preferences):内存设置⼆. ⽂件的存取与显⽰1.图像显⽰由⼀组三个不同的图像窗⼝组成:主图像窗⼝、滚动窗⼝、缩放窗⼝。
1)主图像Image窗⼝:(400*400) 100%显⽰(全分辨率显⽰)scroll的⽅框,可交互式分析、查询信息。
主图像窗⼝内的功能菜单:在主图像窗⼝内点击⿏标右键,切换隐藏⼦菜单的开启和关闭。
该 "Functions" 菜单控制所有的ENVI交互显⽰功能,这包括:图像链接和动态覆盖;空间和波谱剖⾯图;对⽐度拉伸;彩⾊制图;诸如ROI的限定、光标位置和值、散点图和表⾯图等交互特征;诸如注记、⽹格、图像等值线和⽮量层等的覆盖(叠置);动画以及显⽰特征。
2)滚动Scroll窗⼝:全局,重采样(降低分辨率)显⽰⼀幅图像。
只有要显⽰的图像⽐主图像窗⼝能显⽰的图象⼤时,才会出现滚动窗⼝。
滚动窗⼝位置和⼤⼩最初在 envi.cfg ⽂件中被设置并且可以被修改。
3)缩放Zoom窗⼝:(200*200)显⽰image的⽅框。
缩放系数(⽤户⾃定义)出现在窗⼝标题栏的括号中。
2.图像的头⽂件资料的获取和编辑ENVI:File>>Edit ENVI Header,选择相应的⽂件。
从 Header Info 对话框⾥,你可以点击 Edit Attributes 下拉菜单中的选项,调⽤编辑特定⽂件头参数的独⽴对话框。
这些参数包括波段名、波长、地图信息等。
3.图像的存取File > Open Image File. 当你打开任何⽂件,可⽤波段列表(ABL)⾃动地出现。
如何进行测绘数据的二次开发和应用
如何进行测绘数据的二次开发和应用随着科技和信息时代的发展,测绘数据的重要性也日益突显。
无论是在城市规划、交通建设、环境保护还是资源调查等领域,测绘数据都扮演着重要的角色。
然而,原始测绘数据往往存在一些局限性,需要进行二次开发和应用,以满足实际需求,并提供更加可靠、精准的信息。
本文将深入探讨如何进行测绘数据的二次开发和应用。
首先,测绘数据的二次开发需要借助先进的技术手段。
在现代测绘中,各种先进的仪器设备被广泛应用,例如全站仪、卫星定位系统等。
这些仪器能够高精度地获取空间数据,但原始数据仅仅是一堆数字,并不能直观地为人们所理解。
因此,需要将原始数据通过计算机软件进行处理和分析,以获得有用且可视化的信息。
同时,利用地理信息系统(GIS)技术,将测绘数据与其他相关数据进行关联,进一步挖掘数据的潜力。
其次,测绘数据的二次开发需要根据实际应用场景进行定制化处理。
不同的行业和领域对测绘数据的需求各不相同,因此二次开发的方法和技术也会有所不同。
以城市规划为例,测绘数据可以用于绘制地形图、土地利用图等,以辅助城市规划师进行规划设计。
在交通建设方面,测绘数据可以用于道路设计、铁路布局等,以提高交通运输的效率和安全性。
在环境保护方面,测绘数据可以用于水域调查、土壤污染监测等,以进行环境预警和治理。
因此,在进行测绘数据的二次开发时,需要根据具体应用场景进行有针对性的处理,以确保数据能够真正服务于实际需求。
此外,测绘数据的二次开发还需要注重数据质量的核验和验证。
测绘数据的准确性和可靠性直接影响到后续应用的可行性和结果的准确性。
因此,在对原始数据进行二次开发之前,需要进行严格的质量控制。
例如,对于使用全站仪测量的数据,可以通过与其他测量方法的数据进行对比,以验证其准确性。
同时,也需要注意数据的完整性和一致性,避免数据的漏洞和误差。
只有确保了数据的质量,才能更好地开展数据的二次开发工作。
此外,测绘数据的二次开发还需要关注数据隐私和安全的保护。
envi二次开发中文件的读取和存储
envi二次开发中文件的读取和存储在做程序开发时,最基本需要做的是如何编程实现文件的打开和保存,这里我们来介绍一下如何采用envi+idl的方式打开和保存一个文件首先我们来看这么一个程序;该程序是利用envi的二次开发功能来对数据进行处理;主要功能是利用envi打开文件,并将文件保存为另外一种格式;这个程序对于envi处理后的文件只能envi打开,其他文件打不开的情况下非常有用;这个程序包含了两个小程序,一个是处理单个文件,另外一个便是批处理的方式pro envi_savefile; filename =envi_pickfile();envi_pickflie()打开一个文件,返回选择的文件名cd,'d:\test'filenames=file_search('*.tif',count=n)print,n,filenameslen=strlen(filenames[0]);len计算文件名的长度for i=0,n-1 do beginfilename=filenames[i]envi_open_file,filename,r_fid =fid;envi_open_file,返回文件的fid;envi_select可以交互的选择文件,并返回fidenvi_file_query,fid,data_type=data_type, xstart=xstart, $ystart=ystart, interleave=interleave, nb=nb, nl=nl, ns=ns,$ offset=offset,dims=dims;envi_file_query查询文件的头文件信息map_info=envi_get_map_info(fid=fid)proinfo=envi_get_projection(fid=fid);envi_get_map_info and envi_get_projection返回图像的投影坐标信息data =envi_get_data(fid=fid,dims=dims,pos=[0]);envi_get_data是获取一个波段数据,dims是数据的范围,pos 是波段;用envi_get_data的方式,一次只能打开一个波段;envi_get_slice,可以获取一个数据中某一行的所有波段数据;envi_enter_data,将文件输出到envi文件列表中; image =strmid(filename,0,len-8)+'.tif';'tif';同样也可以用下面这一行程序image=envi_pickfile();在打开对话框中输入文件名即可,记着加后缀; 但是利用打开对话框的方式写入img格式的话,其他软件不能识别; openw,lun,image,/get_lun;; writeu,lun,data;; free_lun,lun;如果是保存为img格式,必须用writeu的方式写入,但是如果是tif,则用下面的命令write_tiff,image,data,/floatenvi_setup_head, fname=image, ns=ns, nl=nl, nb=nb, $data_type=data_type, offset=offset, interleave=interleave, $ xstart=xstart, ystart=ystart, $descrip='iimage', /write, /open, $map_info=map_info ,file_type=33;将头文件信息写入新的文件endforend如果采用envi_setup_head,来进行文件信息写入,要写上file_type对应的关键字,否则的话,会导致保存的图像有个偏移,此外ENVI_Write_ENVI_File也可以保存文件,如ENVI_Write_ENVI_File,data,out_name=image,map_info=ma p_info,r_fid=fid但是保存的文件不能被其他软件读用ENVI_OUTPUT_TO_EXTERNAL_FORMAT也可以输出你想要的格式,并且相对于write来写更容易被其他软件接受;其实用write_tiff写出的文件,在erdas中不认其坐标除非是采用了geotiff=geographictypegeokey如果是二进制文件,可以采用writeu保存,然后写入头文件。
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。
4ENVI的功能扩展与ENVI二次开发
参考教程 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下的关键字和函数
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二次开发教程_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], 各个字段代表的含义见下表。
ENVI基本操作
1、ENVI简介——LiDAR数据处理和分析模块
• 专为LiDAR数据处理和分析而设计,可 自动处理点云数据
• 包括完整的LiDAR数据浏览、处理和分 析工具
• 生成DTM、DSM、SHP文件等来表达建筑 物、电力线、树木和其他地物等
1、ENVI简介——LiDAR数据处理和分析模块
• 可高效、全自动地从LiDAR数据中提取信息 - 点云分类 - DSM(栅格和TIN) - DEM - 地面等高线 - 建筑物顶部/轮廓矢量 - 电力线矢量 - 电线杆(X、Y、Z、H、R) - 电力线的连接点(X、Y、Z) - 树木(X、Y、Z、H、R) - 点密度和覆盖率分析 - 桥梁 - 其他特征
• ENVI 5显示
- 将图层管理、图像显示、鼠标信息等集中在一个窗体中,很多流程 化的工具集成在此窗体中。
2、ENVI影像处理基础——数据显示窗口
2、ENVI影像处理基础——图像显示类型
• 灰度显示(黑白) - 一个波段
• RGB合成彩色显示 - RGB三个波段合成,最常见显示类型
• 伪彩色(索引色) - 一个波段,利用索引表显示彩色,常见的如影像分类结果
提供面向对象、易于使用的向导操作流程 从高分辨率全色和多光谱数据中提取地物 信息。包括:
•交通工具 - 飞机, 坦克, 汽车, 船只
•建筑物 - 建筑物轮廓, 屋顶
•基础设施 - 道路, 桥梁, 机场, 海港码头
•自然要素 - 河流, 湖泊,森林, 田地
•云和雾
1、ENVI简介——立体像对高程提取模块
• 使用DEM编辑工具对提取的DEM做局部编辑 • 交互量测特征地物的高度和收集3D信息并导出为
3D Shapefile文件格式
1、ENVI简介——正射校正模块
IDL数据可视化与ENVI遥感二次开发技术
杜会建 遥感事业部 duhj@
主要内容
IDL 数据读取与可视化
– IDL 8.3 新特性介绍及可视化方法 – 实例:IDL中显示分类图像的方法 – 实例:多普勒雷达数据读取与可视化
ENVI 遥感二次开发技术
– ENVI 5.1 全新开发模式 – 实例:分幅裁剪、数据镶嵌 – 实例:完全约束最小二乘法混合像元分解
Vectors
演示:动态方程可视化
equation = '9/sqrt((x-2)^2 + (y-4)^2) + 12/sqrt((x-5)^2 + (y-2)^2)' + $ ' + 25/sqrt((x-4)^2 + (y-5)^2)' title = 'Electric potential (V/k) of three point charges' cplot = CONTOUR(equation, XRANGE=[0,7], YRANGE=[0,7], $ RGB_TABLE=55, /FILL, C_VALUE=[0:50:5], $ TITLE=title, DIMENSIONS=[800, 800], ASPECT_RATIO=1) cb = COLORBAR(TARGET=cplot, /BORDER)
功能介绍
为File > Open As > Custom添加打开自定义格式数据的过程,ENVI 5 SP2新增。 为Toolbox添加扩展工具,ENVI 5 SP2新增可添加菜单功能。 关闭ENVI。 创建ENVIRaster对象,栅格文件对象。(被ENVIRaster代替)
ENVI.Close
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添加新的颜色、坐标系、投影类型以及各种类型的分析工具。
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)编写脚本,可以通过脚本来批处理和自动化处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引 言
元数 据是 管理 数据 的数 据 。 元 数 据 在 数 据 交换 、 网络 信 息 资 源 发 现 和 共 享 系统 建 设 中具 有 重 要 作 用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 ) ’ 字符 串
整 数 必 选 整 数 必 选
字符 串 必 选
在 大数 据 中心 、 物联 网、 云服 务 建 设 等 领 域 中 不 可 或 缺 , 是 提
升 数 据 应 用价 值 和 扩 大数 据 共 享 的 基 础 国 内外针 对 元 数 据 已 经 出 台 很 多 标 准 或 规 范 . 如 美 国 联 邦 地 球 数 据 委 员 会
b s q
4
1 6 5 3 9 1 4 91 5 0
字符 串 必选
整 数 必 选
整 数 必 选 整 数 必 选 整 数 理 学科 元 数 据 标 准 、 达 尔文 核 心 准 、 中科 院核 心 元数据标准、 国 土 资 源信 息 核 心 元 数 据 等[ 3 1 。元 数 据存 在 众 多
E N V I 二次开发 中元数 据 基本操 作研 究
索建军: ( 水利部新疆维吾尔自 治区 水利水电 勘测设计研究院, 乌 鲁木齐市8 3 0 0 0 0 )
【 摘 要 】 E N V I 提供 了强大 的元数据管理与操作技术。但在二次开发 中利用这些操作元数据时 , 有时会引发程序错误。主要原 因是 E N V I 元数
HE AD. E R O F F S ET
0
无 符 号 整 数 h e a d e r o f s e l
商业化遥感 、 G I S 、数 据 库 等 大 都 提 供 对 元 数 据 的操 作 技 术。 E N V I 是 著 名 的 遥 感 专 业 软件 、 3前 - 混 合 开发 主 流 软 件 。 ' 众 多 的 图像 分 析 师 和 科 学 家 选择 E N V I 来 处 理 遥 感 图像 和 获得 图像 中的 信 息 。 采 用 I D L结 合 E N VI 二 次开发功 能 . 可 以 开
D AT A j P E F I I 正 T Y P E
‘ B y t e’ ‘ EN VI ’
字符 串 字符 串
I N T E R L E A V E
NB AND S
N C OL UMNS N ROWS
’ B S Q’
4
字符 串
I n t e r l e a v e
发 功 能 强 大 的 遥 感 系 统目。利 用 Ar c GI S En g i n e和 E NVI开发
一
B A N DN B 1 ’ . ’ B 2 ’ . ’ B I , B 2 , 带“ { 的 可选 AME S B 3 ’ 字 符 串数 纽 b a n d n a me s f ’ B 4 ’ 】 B3 , B 4 】 字符 串
据的字段名、 字 段 值 数 据 类 型 在 设 置 与 提 取 时存 在 差 异 , 与头 文件 以及 其 他 元 数据 存 在 差 异 。Vi e w me t a d a t a能够 自动 处 理 这 些 差 异 和 转 换 。在
二次开发中 , 这些转换有时不会 自动进行 , 从而 引发程序 错误 。以 E N VI 元数据和头 文件为例 , 分析 了这些差异。通过 4个典型 I D L过程 , 演示
标准 , 并且 一 时 难 以 统 一 。 综 合 领 域 需要 。 研 究设 计 适 宜规 模 的元数据管理十分必要 。
无 符 号 整 数 Ba n d s
1 6 5 3 9 无 符 号 整 数 S a mp l e s 1 4 9 1 5 无 符 号 整 数 L i n e s
元 数 据 的 基 本 操 作 和 解 决 上 述 问题 的技 术 细 节 。
【 关键词 】 遥感 ; E N V I ; 二次开发 ; 元数据 ; 操作 【 中图分 类号 】 T P 7 5 1 . 1 【 文献标识码 】 A
【 文章编 号 】 1 0 0 6 — 4 2 2 2 ( 2 0 1 7 ) 0 2 — 0 1 6 3 - - - 0 3
8 7 7 D
6 0 . 8 7 7
小数 可 选
P R OD. U C P E
‘ S t a n d a r d P r o d u c t ’
S t a n d a r d 字符 串 可 选 字符 串 p r o d u c t t y p e P r o d u c t