之前bug全都是文件调用envi自动打开失败。。。。
[转载]ENVI-IDL的MATH_DOIT和CF_DOIT函数(对FID和POS_绿了芭蕉_新浪博客
IDL实现批量将图像波段单独存为文件_ENVI-IDL技术殿堂_新浪博客
科学网—IDL下保存数据为ENVI格式的方法 - 董彦卿的博文
IDL实现批量将图像波段单独存为文件_ENVI-IDL技术殿堂_新浪博客
科学网—IDL下保存数据为ENVI格式的方法 - 董彦卿的博文
pro bandtotif
COMPILE_OPT IDL2,hidden
e=envi(/headless)
;file = 'E:\data\tib_bt_201512122015.tif'
;files = file_search(path,'*.HDF',count=n)
;FOR i=0,N_ELEMENTS(files)-1 DO BEGIN
;ENVI_OPEN_FILE, files[i], r_fid=fid
ENVI_OPEN_data_FILE, file, r_fid=fid
print,fid
ENVI_FILE_QUERY, fid, dims=dims, nb=nb,bnames = bnames,DATA_TYPE = dt,ns = ns, nl = nl
startTime = systime(1)
outfiledir = 'E:\data\bandxin\'
for curBand =0,nb-1 do begin
out_name = outfiledir+"band"+string(curBand+1)+".tif"
envi_doit, 'cf_doit', $
fid=fid, pos=curBand, dims=dims, $
remove=0, out_name=out_name
endfor
print,'cf_doit time',systime(1)-startTime
;ENDFOR
end
在IDL中串联字符串和整数时出现错误的空格 - Thinbug
out_name = outfiledir+"band"+STRTRIM(curBand+1,2)+".tif"
导入envi查看时报错,想起来之前批量几何校正时候导tif也报错,换成dat正确
又试了一下img也正确
验证
band1.dat
band1.tif
band1.img
结论
拆开正确,且什么格式都可以读