LearningENVI&IDL分享 http://blog.sciencenet.cn/u/dongyanqing Learning ENVI&IDL

博文

IDL下保存数据为ENVI格式的方法

已有 31790 次阅读 2012-5-19 11:47 |个人分类:ENVI|系统分类:科研笔记| IDL, ENVI, 二次开发, 遥感数据

1.      保存到ENVI内存中

ENVI_ENTER_DATA可以将数据保存到内存,示例代码如下。这种保存到内存的方式需要获取r_fid便于后续操作。

ENVI> ;将读取的第一个波段存储到内存中

ENVI> ENVI_ENTER_DATA, data, r_fid = rFid

2.      保存为ENVI格式文件

ENVI标准格式文件包含二进制数据文件和头信息文件(扩展名为hdr),可以利用ENVI函数ENVI_WRITE_ENVI_FILE直接输出。或先输出二进制数据文件,再输出hdr头文件。示例代码如下:

ENVI> ;data = findgen(300,200)

ENVI> ;定义输出文件名

ENVI> out_file = 'c:temptm_band1.img'

ENVI> ;二进制方式输出

ENVI> OPENW,lun,out_file,/get_lun

ENVI> WRITEU,lun,data

ENVI> FREE_LUN,lun

ENVI> ;写出文件的头文件信息并打开文件(图20.4

ENVI> ENVI_SETUP_HEAD, fname=out_file, $

ENVI>   ns=300, nl=200, nb=1, $

ENVI>   interleave=0, $

ENVI>   data_type=size(data,/type), $

ENVI>    offset=0, /write, /open

多波段文件进行连续的writeu输出,最后envi_setup_head的时候nb等参数设置正确即可。

3.      存为其他数据格式

如果需要存储为其他格式如ArcGIS GDBArcViewASCIIENVIERDASERMAPPEREsri GridJPEG2000NITFPCITIFF格式等,可以先利用2方法存储为ENVI标准格式,再调用ENVI_OUTPUT_TO_GDBENVI_OUTPUT_TO_EXTERNAL_FORMAT输出为,最后删除原ENVI格式文件即可。

示例代码如下:

ENVI> ;获取待存储的文件fid

ENVI> envi_open_file,out_file,r_fid = fid

ENVI> ;获取文件相关信息

ENVI> envi_file_query,fid ,dims = dims,nb = nb

ENVI> ;定义输出文件名

ENVI> out_name = 'c:tempenvi_out.tif'

ENVI> ;调用函数输出为tiff文件

ENVI> ENVI_OUTPUT_TO_EXTERNAL_FORMAT, $

dims = dims,pos = lindgen(nb),out_name = out_name,/tiff,fid = fid

ENVI> ;删除原文件

ENVI> envi_file_mng,id = fid,/remove,/delete

 



https://wap.sciencenet.cn/blog-344887-572682.html

上一篇:IDL中绘制实心三角形
下一篇:Windows平台下配置IDL气象可视化演示程序(idl_guide5)
收藏 IP: 123.118.155.*| 热度|

1 郭梦辉

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-29 23:49

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部