IDL读取MODIS 1B数据中500分辨率下的数据 并显示成伪彩
2014-01-22 15:05 池戎 阅读(404) 评论(0) 编辑 收藏 举报 pro readhdf_cr
; 读取某个HDF文件
FILE_NAME=dialog_pickfile(default_extension= '.hdf',filter='*.hdf')
;读取其中的某个Data Set里面的数据,可以用HDF Explore看一下HDFl里面的文件结构
SDS_NAME="EV_250_Aggr500_RefSB"
AeroWidth=2708 ;影像的宽度
AeroLength=4060 ;影像的高度
;打开HDF文件并初始化HDF接口
sd_id = HDF_SD_START( FILE_NAME, /read )
sds_index = HDF_SD_NAMETOINDEX(sd_id,SDS_NAME)
sds_id = HDF_SD_SELECT( sd_id, sds_index )
HDF_SD_GETDATA, sds_id, data
HDF_SD_ENDACCESS, sds_id
;关闭HDF文件
HDF_SD_END, sd_id
imagedata = bytscl(congrid(data,AeroWidth*0.2,AeroLength*0.2,1));按比例缩小影像
DEVICE,DECOMPOSED=0 ;显示伪彩
LOADCT,36 ;加载第37个调色板
window, 0, Title='Aeromatex',xsize=AeroWidth*0.2, ysize=AeroLength*0.2, retain=2
TVSCL,imagedata
end
; 读取某个HDF文件
FILE_NAME=dialog_pickfile(default_extension= '.hdf',filter='*.hdf')
;读取其中的某个Data Set里面的数据,可以用HDF Explore看一下HDFl里面的文件结构
SDS_NAME="EV_250_Aggr500_RefSB"
AeroWidth=2708 ;影像的宽度
AeroLength=4060 ;影像的高度
;打开HDF文件并初始化HDF接口
sd_id = HDF_SD_START( FILE_NAME, /read )
sds_index = HDF_SD_NAMETOINDEX(sd_id,SDS_NAME)
sds_id = HDF_SD_SELECT( sd_id, sds_index )
HDF_SD_GETDATA, sds_id, data
HDF_SD_ENDACCESS, sds_id
;关闭HDF文件
HDF_SD_END, sd_id
imagedata = bytscl(congrid(data,AeroWidth*0.2,AeroLength*0.2,1));按比例缩小影像
DEVICE,DECOMPOSED=0 ;显示伪彩
LOADCT,36 ;加载第37个调色板
window, 0, Title='Aeromatex',xsize=AeroWidth*0.2, ysize=AeroLength*0.2, retain=2
TVSCL,imagedata
end
如有疑问,请和我一起讨论。