|||
MODIS产品一般是以HDF-EOS(HDF4)格式分发,并能实现自我描述的科学数据格式(HDF is self-describing, allowing an application to interpret the structure and contents of a file with no outside information.)。
本帖介绍Matlab读入HDF-EOS文件的过程,并提取当中特定的Dataset转存为GeoTiff格式文件。
Matlab操作HDF函数说明见参考文献[1]和[2]。
这里需要注意:HDF-EOS文件并不附带坐标格点数据,它只包含有几个参数构成的位置信息,以此计算全景影像的坐标,虽然这可以节约数据存储空间,但这也使得不借助HDF-EOS的API将不能获取影像的坐标(HDF-EOS grid data is special in that it does not store longitude and latitude values. Instead of storing those values, HDF-EOS grid keeps only several parameters that can generate the entire longitude and latitude values. This can save much space, but this also makes it difficult to retrieve those values unless HDF-EOS API is used. The degree of difficulty of obtaining longitude and latitude values depends on the projection method.)。
不过,有一个替代方法,该方法先在“IDL:HDF文件提取NDVI数据集”有应用,本帖就是它的Matlab版本。HDF-EOS文件有其固定的(hxxvxx)图块信息,将一景影像另存为GeoTiff(另存操作只能在ArcGIS中完成,ENVI的转存结果不能被Matlab识别),每次从HDF中读取SDS时(数据需要转置)都可以将GeoTiff的空间参考(Spatial Reference)赋予它并另存为GeoTiff文件。
附上测试数据及代码(MATHDF.rar)。
参考文献
[1] 陈林, 牛生杰, 仲凌志. Matlab对基于HDF格式的MODIS1B数据的提取方法与实现[J]. 气象科学, 2006, 26(6):6676-6681.
[2] 白龙,雷惠,张翾. 用MATLAB读取HDF格式数据的实用方法[A]. 中国仪器仪表学会. 第八届全国信息获取与处理学术会议论文集[C]. 中国仪器仪表学会, 2010:5.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-16 08:18
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社