首先是要了解HDF5文件的结构,利用pannoly文件能快速浏览文件的信息和命名,pannoly里面显示的数组行列和波段和IDL反过来的,IDL是 数组[列][行][波段] pannoly是数组(波段,行,列)
然后就是读取
file_id = H5F_OPEN('文件地址')
;打开Data这个群组
group_id=H5G_OPEN(file_id,'Data')
;H5D_OPEN打开这个叫b24数据集
dataset_id=H5D_OPEN(group_id,'b24')
;读取数据集中的数据
SdsData1=H5D_READ(dataset_id)
;读取属性可用
Intercept_id= H5A_OPEN_Name(dataset_id,'Intercept')
Slope_id=H5A_OPEN_Name(dataset_id,'Slope')
Intercept1=H5A_READ(Intercept_id)
Slope1=H5A_READ(Slope_id)
增加一个bug的心得,利用 thesefiles = FILE_SEARCH('*',count = numFiles)得到路径下的所有HDS5文件,我在读HDF程序中调用了另一个程序,并且cd了新的路径,之后重新进行下一个HDF读取时,file_id = H5F_OPEN(thesefiles[fidx])提示我无法读取该HDF5文件。
处理办法就是每次循环的开头CD回HDF5存在的路径。