新浪博客

保存为ENVI格式文件
ENVI标准格式文件包含二进制数据文件和头信息文件(扩展名为hdr),可以利用ENVI函数ENVI_WRITE_ENVI_FILE直接输出。或先输出二进制数据文件,再输出hdr头文件。示例代码如下:
ENVI> ;data = findgen(300,200)
ENVI> ;定义输出文件名
ENVI> out_file = 'c:\temp\tm_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
IDL下保存数据为ENVI格式的方法
多波段文件进行连续的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:\temp\envi_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

我的更多文章

下载客户端阅读体验更佳

APP专享