注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面朝大海 春暖花开

一点心得,转载本博客文章,请注明转帖,谢谢!

 
 
 

日志

 
 
关于我

中国科学院博士 主要从事遥感机理、定量反演、数据处理以及GIS应用研究。ArcGIS、Envi 、ERDAS、Ecognition软件、IDL语言、6S、SAIL

网易考拉推荐

IDL+ENVi 常用命令  

2016-08-01 12:23:21|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、IDL常用关键字

1、 FID

文件 ID(FID)是一个长整型的标量,FID 为 ENVI 的程序员提供了一个命名变量,可以被数个 ENVI 程序所使用,来打开或选择文件。

2、 R_FID 和 M_FID

ENVI 处理程序所产生的影像结果也包括一个 R_FID,或者称为返回 FID 关键字。如果

结果是存在内存中的,设置 R_FID 关键字是访问该数据的唯一方法。在掩模处理程序还包

括一个 M_FID,或者称为掩模 FID 关键字,用于确定用作掩模波段的文件

3、 DIMS

DIMS 关键字是一个 5 个元素长整型数组。它定义了处理数据的空间子集。当需要确定FID 的时候,用户必须同时使用 DIMS 关键字确定该文件的空间子集。

DIMS[0]:用于存储指向一个打开的 ROI 区域的指针,仅在 ROI 被定义的时候使用,其它时候设为-1

DIMS[1]:采样的起始位置(一个基于 0 的 IDL 数组下标)

DIMS[2]:采样的终止位置

DIMS[3]:行的起始位置

DIMS[4]:行的结束位置

4、 POS

POS 关键字定义了用于处理的波段位置。POS 关键字是一个变长的长整型数组。因为ENVI 处理的文件可能具有多个波段,而使用 POS 矢量来确定用于处理的波谱子集。

二、文件管理函数:

1、ENVI_PICKFILE

ENVI_PICKFILE 函数产生一个提示用户选择文件的对话框。该函数产生的界面和使用

ENVI 主菜单选择 File->Open Image File 一样的界面。该函数并不真正的打开文件,它只是以字符串的形式返回用户所选择的全路径文件名。

2、ENVI_SELECT

ENVI_SELECT 产生对话框提示用户从 ENVI 中已经打开的文件中选择一个文件。该函

数产生 ENVI 标准的文件选择对话框,其中包括空间和波谱子区裁剪按钮,以及掩模波段选

取按钮。

3、ENVI_OPEN_FILE

该函数返回一个文件的 FID,它是打开 ENVI 文件的最直接和简单的方法。默认情况下

它将文件信息添加到可用波段列表中,可以使用 NO_REALIZE 可以阻止文件信息加入到可

用波段列表中。

注:如果可用波段列表已打开,该关键字无效。

4、ENVI_FILE_MNG

该函数可以打开、关闭或者删除硬盘上的文件。无需用户交互。

5、 ENVI_GET_FILE_IDS

该函数返回所有当前打开的文件的 FID。

三、打开文件函数

ENVI_OPEN_FILE 仅能够打开具有 ENVI 头文件的影像文件。

1、ENVI_OPEN_DATA_FILE

该函数打开 ENVI 所支持的外部文件(通过关键字指定文件类型)并返回 FID,无需用

户交互。

四、获取数据函数

1、 ENVI_GET_DATA

该函数从一个打开的文件中获取影像数据。它每次只返回某一波段的数据。如果所需的空间数据不止一个波段, 必需多次调用该程序以获得该相应波段的数据。 数据的范围由 DIMS关键字控制。

2、 ENVI_GET_SLICE

该函数从一个打开的文件中获取波谱影像数据,它返回影像某一行所有波段的数据值。

结果以 BIP 或 BIL 的格式返回。

五、感兴趣区函数

很多 ENVI 函数提供了使用 ROI 进行影像的空间选取选项。在 ENVI 的函数中,DIMS关键字用于定义空间选取。DIMS 变量的第一个元素称为 ROI 指针,如果它被定义,则表明影像是基于 ROI 进行空间选取的。如果 ROI 指针设置为-1,表示没有使用 ROI。用户用使用 ENVI_GET_ROI_DIMS_PTR 正确的设置 ROI 指针。

数据 保存 函数

ENVI 影像格式可能是最简单的数据格式。它是二进制文件,栅格影像数据以二进制数

据流方式按 BSQ、BIL 或是 BIP 的存储顺序存储。文件中只有影像数据,头信息没有嵌入到文件中。当使用 WRITEU 程序将二维或三维影像数据写入到磁盘时,IDL 自动生成二进制格式文件。ENVI 格式的影像文件可用使用任意的名称,并且无需扩展名。同时每一个二进制文件都伴随有一个 ASCII 格式的头文件,这个头文件描述了影像的基本特征以及附加信息。为了 ENVI 能够识别这个头文件,它必需和影像文件具有同样的文件名,并以.hdr 做为扩展名。

1将影像数据 保存到内存

当用户函数的结果是包含在IDL数组中的影像数据时, 这些数据可用以内存方式被ENVI所使用。

ENVI_ENTER_DATA

该函数将 IDL 数组中的数据输入到可用波段列表中, 该程序自动的设置 ENVI 的头文件,该文件同样也存储在内存中,并返回内存影像的 FID。一旦影像出现的可用波段列表中,它就可以像其它 ENVI 影像一样使用,也能够被存入磁盘。

2、将影像数据存入硬盘

由于 IDL 的 WRITEU 函数能够产生 ENVI 格式的文件,ENVI 没有提供单独的程序来将

IDL 的数组写入到磁盘。可以直接使用 IDL 的 WRITEU 函数。

clip_image001

注: 必须考虑到,要随影像文件同时写入 ENVI 的头文件。

3、ENVI_SETUP_HEAD

使用该函数写某个已存入磁盘的影像数据的 ENVI 头文件。使用 OPEN 关键字,允许将影像文件输入到可用波段列表。 ENVI_SETUP_HEAD 函数也能够返回磁盘上影像文件的 FID。

5、 添加投影坐标信息

对数据文件添加投影信息, 也就是将投影信息写到 ENVI 数据的头文件中去。 明确 ENVI的头文件信息数据中投影坐标信息的内容和格式。

以一个全球的数据[180,90]为例, 如写入 WGS-84 的经纬度投影信息, 则需要明确下面的内容。

mc = [0.5D,0.5D,-180,90]

;这里的前面两个值代表的是图像的起点位置,[0.5,0.5]表示的是左上角第一个像素的中心位置为起点;[-180,90]表示左上角该点对应的地理坐标信息,我们想显示全球的数据,故设为[-180,90]。

ps = [2,2; 代表的是像素的分辨率,经纬度投影默认以度为单位,[180,90]的数据代表的是全球[36,180],故设置为[2,2]。

创建经纬度的投影类型:proj = ENVI_PROJ_CREATE(/geographic)

创建经纬度的 map 信息: mapInfo = ENVI_MAP_INFO_CREATE( $

name = 'Geographic', $

mc = mc, ps = ps, $

proj = proj, /GEOGRAPHIC)

后面就可以进行头文件信息的设置了,添加关键字 map_info 即可。

  评论这张
 
阅读(163)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017