ENVI二次开发模式下的Landsat数据读取

从usgs网站或者马里兰大学下载TM或Landsat原始数据,数据可能包括9个tif数据,两个txt文件和一个gtf文件。示例结构如下:

ENVI二次开发模式下的Landsat数据读取

ENVI下可以直接打开*_MTL.txt文件打开,打开后波段列表如下:


ENVI二次开发模式下的Landsat数据读取

IDL程序用envi_open_data_file打开后只能获取到一个fid,此时需要用ENVI_GET_FIDS函数。示例代码如下:

 

 

PRO SAMPLE_IMPORT_LANDSAT_META

  COMPILE_OPT idl2 

  ENVI, /RESTORE_BASE_SAVE_FILES

  ENVI_BATCH_INIT

 

  file=DIALOG_PICKFILE(FILTER='*_mtl.txt')

  ;

  ; 打开文件

  ;

  ENVI_OPEN_DATA_FILE, file, /LANDSAT_METADATA, R_FID=fid

  IF (fid EQ -1) THEN RETURN

  ; 这个是关键!

  fids=ENVI_GET_FILE_IDS()

  HELP, fids

  ;

  ;依次对fid进行判断

  ;

  FOR i=0, N_ELEMENTS(fids) -1 DO BEGIN

    ENVI_FILE_QUERY, fids[i], NB=nb, SNAME=sname

    IF nb EQ 6 THEN mb_fid = fids[i]

  ENDFOR

  ; 

  ENVI_BATCH_EXIT 

END

原文地址:https://www.cnblogs.com/China3S/p/3588139.html