加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

idl之envi常用函数介绍及多波段读入

(2015-09-05 08:41:21)
标签:

3s

分类: 遥感
ENVI_PICKFILE:
function,带返回值,打开一个对话框,让用户选择本地文件,返回用户选择的文件路径及文件名,具体用法参照ENVI帮助。示例:
  path = ENVI_PICKFILE(title='pick file')


envi_select:
routine,不带返回值,打开一个对话框,选择一个已经打开的文件,在该对话框中也可以打开新的文件,所以基本上可以替代ENVI_PICKFILE,能返回fid,尺寸等属性,具体用法参照envi帮助。示例:
  envi_select,fid=fid, dims=dims,pos=pos


envi_file_query:
routine,不带返回值,对某个已经打开的文件,查询其文件信息。例如大小,波段数等等。示例:
  envi_file_query, fid, dims=dims, nb=nb


envi_get_data:
function,带返回值,对一个已经打开的文件,获取它的值,可以整个获取,也可以按指定的下标范围获取一小块。一次只能读取一个波段的信息,要同时读取多个波段,需要使用循环读取。具体用法参照envi帮助。示例:
  for i=0,nb-1 do image[i,*,*]=$  
  envi_get_data(fid=fid,dims=dims,pos=pos[i])


envi_get_map_info:
function,带返回值,对某个已经打开的文件(ENVI支持的格式并带有头文件),读取其空间信息,例如椭球,坐标系等。示例:
   map_info_b = envi_get_map_info(fid=fid_b)
   map_info_w = envi_get_map_info(fid=fid_w)
   if (map_info_b.mc[2] ne 0.0) and (map_info_w.mc[2] ne 0.0) then begin

envi_convert_file_coordinates:
routine,不带返回值,图上某些点的矩阵坐标与空间坐标之间的转换(在有空间信息的情况下)。示例:
  envi_convert_file_coordinates, fid, xf, yf, xmap, ymap, /to_map                (xf,yf为矩阵的坐标,xmap,ymap为空间坐标)

载入多波段图像:
方法1:
pro testEnviImg,path
compile_opt idl2
envi,/restore_base_save_files
envi_batch_init
  path = ENVI_PICKFILE(title='pick file')
  envi_open_file, path, r_fid=fid 
  
  if (fid eq -1) then return 
  ;ENVI_SELECT, fid=fid ,pos=pos
  envi_file_query, fid, dims=dims, nb=nb
  pos = lindgen(nb) 
  num_cols = dims[2]-dims[1]+1
  num_rows = dims[4]-dims[3]+1
  image = fltarr(nb,num_cols,num_rows)
  for i=0,nb-1 do image[i,*,*]=$  
  envi_get_data(fid=fid,dims=dims,pos=pos[i])
  tv,image,/true
end

方法2:
pro testenviselect
  envi_select,fid=fid, dims=dims,pos=pos
  
  num_cols = dims[2]-dims[1]+1
  num_rows = dims[4]-dims[3]+1
  num_bands = n_elements(pos)
  
  ; BIP array
  image = fltarr(num_bands,num_cols,num_rows)
  
  for i=0,num_bands-1 do image[i,*,*] = envi_get_data(fid=fid,dims=dims,pos=pos[i])
  tv,image,/true
end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有