我已经从MODIS下载了陆地表面温度网格,该网格为.hdf格式。我想将包含这些.hdfs的文件夹转换为Geotiffs,以便于处理。
我尝试使用 hdfread('/User/....hdf')
命令,但是如果我仅将HDF文件作为输入,则输入参数不够。帮助函数指定我应该输入我的datasetName。
hdfinfo =
Filename: '/Users/Desktop//MODIS_MAT_2000_2014/2005/MOD11C3.A2005001.004.2005035221349.hdf'
Attributes: [1x4 struct]
Vgroup: [1x1 struct]
hdfinfo.Vgroup.Name
ans = MODIS_MONTHLY_0.05DEG_CMG_LST
但是,如果我将其输入为数据集名称,则会出现错误。有人以这种方式加载HDF文件有任何经验吗?
代码:
fileinfo = hdfread('/Users/Desktop/Windows_data/MODIS_MAT_2000_2014/2005/MOD11C3.A2005001.004.2005035221349.hdf');
错误消息:"输入参数不够",因为我错过了此数据集名称,但是我不知道如何找到命名不同的数据集。我也无法访问SD,只有属性和Vgroup。
hdfread
的文档提供了一些使用该功能的示例。
一种方法是使用您尝试使用的数据集名称,而另一个方法是直接使用HDFINFO。
您可以尝试
fileinfo = hdfinfo(''/User/....hdf') %Get the info
sds_info = fileinfo.SDS(2) %Choose a dataset
data = hdfread(sds_info); %Read the dataset
最后,我自己找到了解决方案,通过以下方式调整我的代码:
hdfread(fullfile('/Users/Desktop/Windows_data/MODIS_MAT_2000_2014/2006','LST_Day_CMG');
我只是找不到正确的标题(在这种情况下为'lst_day_cmg'),我最终在MODIS网站上找到了。