ENVI/IDL黑科技;利用已有geotiff将envi标准文件存储为tiff格式
标签:
envi/idl |
分类: ENVI/IDL |
在使用ENVI二次开发时,不知道什么原因,使用ENVI_SETUP_HEAD和WRITE LUN存储数据时没有投影信息,
compile_opt idl2
ENVI,/restore_base_save_files
envi_batch_init
filename =
'F:\Landsat输出数据\输出tiff格式\LC81240472013299LGN00_B8(subset_by_roi).tif'
InputFolder=DIALOG_PICKFILE(TITLE='Select
Folder For Input',/DIRECTORY)
;获取geoinfo信息
binary_img = READ_TIFF(filename,geotiff =
geoinfo)
;遍历文件夹下的图像,这里是有着tif后缀的envi文件,并不是真的tif文件
images=file_search(InputFolder,'*.tif',count =
num);此处没有/test_directory,这是寻找文件夹的
;设置输出路径,输出到子文件夹中
OutFolder=InputFolder+'TIFF_IMG';+
PATH_SEP();输出路径
file_mkdir,OutFolder
CD, OutFolder;切换到输出路径
;开始将每个图像进行转换
FOR i=0,num-1 DO BEGIN
ENVI_OPEN_FILE,images[i],r_fid = fid
ENVI_FILE_QUERY,fid, ns
= ns, nb = nb, nl = nl, dims = dims,BNAMES = BNAMES
;binary_img =
READ_TIFF(filename,geotiff = geoinfo)
temp_img =
ENVI_GET_DATA(fid=fid, dims=dims, pos=0)
out_name =
OutFolder+'\'+FILE_BASENAME(images[i],'.tif')+'_geo.tif'
WRITE_TIFF,out_name,temp_img,/float, geotiff=geoinfo
ENDFOR
envi_batch_exit
水平有限,只是讨巧的做法
在ENVI_SETUP_HEAD中设置map_info=map_info也没有成功,当然这个地方有待讨论,因为在当我使用了
ENVI_MASK_APPLY_DOIT之后图像的mapinfo信息就出现了问题,虽然文件用envi打开后能够看到mapinfo的信息,如图
但是在使用
ENVI_GET_MAP_INFO
时竟然无法运行,同样的我有试了
ENVI_GET_PROJECTION
这个竟然可以运行,对比了一下两个函数获得的数据,发现结构是一样的,于是想着能从projection得到Mapinfo,于是使用了函数
ENVI_MAP_INFO_CREATE
Result =
ENVI_MAP_INFO_CREATE(PROJ=structure)
然并卵,还是不可用,故而想到用tif格式的黑科技
利用一个具有正确Mapinfo信息的tiff影像,获取其geotiff参数值,然后赋给没有参数的数据,然后就可以了
重点是这两个图像区域要相同
PRO TEST_GET_PROJ_INFO
END
前一篇:二十六未立
后一篇:IDL实现数组合并(二维、三维)

加载中…