MODIS hdf数据批量转tif数据

有翅膀的大象 / 2024-02-21 / 原文

Python GDAL 地学分析 MODIS hdf数据批量转tif数据

一、概况

MODIS即中分辨率成像光谱仪(Moderate-resolution Imaging Spectroradiometer,缩写MODIS)是美国宇航局研制大型空间遥感仪器,以了解全球气候的变化情况以及人类活动对气候的影响。

1998年MODIS机载模型器安装到EOS-AM(上午轨道)和PM(下午轨道)系列卫星上,从1999年12月正式向地面发送数据。MODIS是NASA地球行星使命计划中总数为15颗。

二、数据处理

MODIS数据一般以hdf格式存储,下面我们使用GDAL对hdf数据批量转为tif数据。

from osgeo import gdal
import os
import glob

#  gdal打开hdf数据集
os.chdir("待处理数据的文件夹路径")
file_list = glob.glob("*.hdf")
for i in file_list:
    datasets = gdal.Open(i)
    #  获取hdf中的子数据集
    SubDatasets = datasets.GetSubDatasets()
    Metadata = datasets.GetMetadata()
    #  打印元数据
    for key,value in Metadata.items():
        print('{key}:{value}'.format(key = key, value = value))
    #  获取要转换的子数据集
    data = datasets.GetSubDatasets()[0][0] 
    Raster_DATA = gdal.Open(data)
    DATA_Array = Raster_DATA.ReadAsArray()
    print(DATA_Array)
    #  保存为tif
    TifName = "保存路径"
    geoData = gdal.Warp(TifName, Raster_DATA,
                    dstSRS = 'EPSG:4326', format = 'GTiff',
                    resampleAlg = gdal.GRA_Bilinear)
    del geoData
View Code