【问题标题】:Convert MODIS LST in HDF to Geotiff using Matlab使用 Matlab 将 HDF 中的 MODIS LST 转换为 Geotiff
【发布时间】:2017-07-29 06:32:17
【问题描述】:

我从 MODIS 下载了 .hdf 格式的地表温度网格。 我想将包含这些 .hdfs 的文件夹转换为 geotiffs 以便于处理。

我曾尝试使用hdfread('/User/....hdf') 命令,但如果我只将我的 hdf 文件作为输入,它没有足够的输入参数。帮助函数指定我应该在此处输入我的数据集名称。

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。

【问题讨论】:

  • 请向我们展示您用来读取数据集的代码。
  • 感谢 cmets!我的代码如下所示: fileinfo = hdfread('/Users/Desktop/Windows_data/MODIS_MAT_2000_2014/2005/MOD11C3.A2005001.004.2005035221349.hdf'); atr_info = fileinfo.Attributes 问题是,我想访问 SDS 数据集。我只有这个 Vgroup 和 Attributes,它们由 4 个子数据集组成。我知道 hdf 文件由 16 个子数据集组成,但我似乎无法访问它们。来源:lpdaac.usgs.gov/dataset_discovery/modis/modis_products_table/… 但是文件在 ArcGIS 中很容易转换。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    我只是找不到正确的标题(在这种情况下是“LST_Day_CMG”),最终我在 MODIS 网站上找到了。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2016-08-14
      • 2019-07-26
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      相关资源
      最近更新 更多