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

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

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

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

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

04-03 15:53