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

时间:2017-03-08 15:37:46

标签: matlab file-conversion geotiff hdf format-conversion

我从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');

错误消息:'没有足够的输入参数',因为我错过了这个数据集名称,但我不知道如何找到不同数据集的名称。我也无法访问SDS,只有属性和Vgroup。

2 个答案:

答案 0 :(得分:0)

hdfread的文档提供了一些如何使用该函数的示例。

一种方法是按照您的尝试使用数据集名称,但另一种方法是使用use the hdfinfo directly

你可以尝试

fileinfo = hdfinfo(''/User/....hdf') %Get the info
sds_info = fileinfo.SDS(2) %Choose a dataset
data = hdfread(sds_info); %Read the dataset

答案 1 :(得分:0)

最后,我自己找到了解决方案,通过调整我的代码如下:

hdfread(fullfile('/Users/Desktop/Windows_data/MODIS_MAT_2000_2014/2006','LST_Day_CMG');

我找不到合适的标题(在这种情况下是' LST_Day_CMG'),我最终在MODIS网站上找到了。