|||
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 的GDB、ArcView、ASCII、ENVI、ERDAS、ERMAPPER、Esri Grid、JPEG2000、NITF、PCI和TIFF格式等,可以先利用2方法存储为ENVI标准格式,再调用ENVI_OUTPUT_TO_GDB或ENVI_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 |
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-16 11:41
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社