使用MATLAB将HDF中的MODIS LST转换为Geotiff



我已经从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网站上找到了。

最新更新