【问题标题】:Reproject and mosaic MODIS level2 using gdal/python使用 gdal/python 重新投影和拼接 MODIS level2
【发布时间】:2015-05-24 22:09:00
【问题描述】:

我有一个 .hdf 格式的 MODIS 大气产品 (MOD04) 数据集,我想重新投影并将它们保存为 Geotiff。我知道使用 gdalwarp 可以做到这一点,但问题是我需要在保存图像之前进行一些操作。基本上,我需要的是从 hdf 文件中读取不同的子数据集,使用 numpy 进行一些修改,最后将数组保存为 Geotiff 文件。

我不是使用 gdal 的专家,但我大致知道它是如何工作的。我必须注意,当我通过 gdal 打开 MOD04 hdf 文件时,gdal 似乎无法读取其 GeoProjection 和 GeoTransform 数据!

>>> src = 'D:/Test/MYD04_L2.A2007231.0745.006.2014054160056.hdf'
>>> dataset = gdal.Open(src,gdal.GA_ReadOnly)
>>> print dataset.GetProjection()

>>> print dataset.GetGeoTransform()
(0.0, 1.0, 0.0, 0.0, 0.0, 1.0)

以上是读取我的 hdf 文件的示例。当我直接打开子数据集时也是如此。我想知道是否有人知道我该如何解决这个问题?

【问题讨论】:

    标签: python image-processing numpy gdal


    【解决方案1】:

    我认为您的数据尚未被投影,因此使用 gdalwarp 重新投影是行不通的。您首先需要将 MODIS Swath 数据重新采样到网格中。例如,您可以使用 MRTSwathPyResample 之类的工具来执行此操作。

    理论上gdalwarp 应该能够将纬度/经度网格处理为地理定位阵列,但由于扫描传感器的蝴蝶结效应,我认为它不能很好地工作。

    【讨论】:

    • 感谢您的回复。是的,你是对的,我的数据没有被投影,但 gdalwarp 可以完美地处理这些数据,并且没有领结效应。我刚刚将 gdalwarp 的结果与 HEGtool 进行了比较,它们几乎相同。问题是我不想投影我需要的每个子数据集,然后进行计算并保存结果。我正在寻找一种将子数据集读取为数组的方法,完成我的工作并将最终数组作为 Geotiff 进行项目。无论如何,我会看看 PyResample,如果找到解决方案,我会更新帖子。
    猜你喜欢
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 2018-12-31
    相关资源
    最近更新 更多