标签:
;+
;:Description:
; Describe the procedure.
;
; Author: DYQ 2009-7-19;
;
;-
PRO TEST_READHDF
COMPILE_OPT idl2
file = FILE_DIRNAME(ROUTINE_FILEPATH(‘TEST_READHDF‘)) + $
‘\data\MOD04_L2.A2004196.0140.005.2007023163311.hdf‘
;
IsHdf = HDF_ISHDF(file)
IF IsHDF EQ 0 THEN RETURN;
;调用IDL自带的函数进行当前HDF数据的信息获得
; HDF_INFO,file
;如我们需要做一个地理纠正操作
;的预处理,那么需要获得原始数据
;及经纬度数据网格
;数据获取两种方式
;通过SD的信息中名字索引来判断,如纬度数据表示Latitude
;打开HDFSD文件
;
sd_id = HDF_SD_START(file , /READ)
HDF_SD_FILEINFO,sd_id,nmfsds,attr
FOR i=0,nmfsds-1 DO BEGIN
sds_id=HDF_SD_SELECT(sd_id,i)
;数据集中数据的名字
HDF_SD_GETINFO,sds_id,name=n,ndims=r,type=t,natts=nats,$
hdf_type=h,unit=u
IF n EQ ‘Latitude‘ THEN BEGIN
HDF_SD_GETDATA,sds_id,latdata
BREAK
ENDIF
ENDFOR
;自定义读取 ;
;计算SD中latitude的索引
latindex = HDF_SD_NAMETOINDEX(sd_id,‘Latitude‘)
;获得所在索引的ID
Result = HDF_SD_SELECT(sd_id, latindex)
;读取数据
HDF_SD_GETDATA, Result, tempLatData
;查看是否读取结果一致
HELP,ARRAY_EQUAL(latdata,tempLatdata)
END
;
;
标签:
原文地址:http://www.cnblogs.com/alex-bn-lee/p/4772152.html