You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:Python GDAL转换MODIS HDF为GeoTiff时影像左右翻转

问题:MODIS Aqua HDF转GeoTIFF后在Cesium Ion中左右翻转的解决方法

我需要将MODIS Aqua产品的HDF文件MAM35S0.A2008010.0000.002.2008010173218.hdf转换为GeoTIFF格式,指定子数据集为HDF4_EOS:EOS_SWATH:"MAM35S0.A2008010.0000.002.2008010173218.hdf":mod35:Cloud_Mask。因API无法正常转换,我采用Python调用gdal_translate命令实现转换,代码如下:

from osgeo      import gdal

import numpy                as np
import os
import subprocess

def run(base_dir:str=os.path.dirname(os.path.abspath(__file__)), hdf_file:str=None, src_dataset:str=None, proj=None):
    cmd:str                 = None
    abs_hdf_file:str        = os.path.join(base_dir, hdf_file)
    name, ext               = os.path.splitext(hdf_file)

    geotiff_file:str        = "{0}_temp.tif".format(name)
    abs_geotiff_file:str    = os.path.join(base_dir, geotiff_file)
    
    dataset                 = gdal.Open(abs_hdf_file, gdal.GA_ReadOnly)
    metadata                = dataset.GetMetadata()
    geo_longs:list          = metadata['GRINGPOINTLONGITUDE.1'].split(', ')
    geo_lats:list           = metadata['GRINGPOINTLATITUDE.1'].split(', ')

    upper_long:str        = geo_longs[0]
    upper_lat:str         = geo_lats[0]
    lower_long:str        = geo_longs[3]
    lower_lat:str         = geo_lats[3]
    type:str              = "Int16"  
    if src_dataset is None: src_dataset:str = dataset.GetSubDatasets()[5][0] 

    cmd = "gdal_translate -a_srs EPSG:4326 -ot {type} -b 1 -a_ullr {ulx} {uly} {rlx} {rly} -of GTiff {src_dataset} {dst_dataset} -a_nodata {value}".format(type=type, value=np.nan, ulx=upper_long, uly=upper_lat, rlx=lower_long, rly=lower_lat, src_dataset=src_dataset, dst_dataset=abs_geotiff_file)

    result = subprocess.run(cmd.split(), capture_output=True)            

    dataset = None

if __name__=="__main__" :
    run(hdf_file="MAM35S0.A2008010.0000.002.2008010173218.hdf", src_dataset='HDF4_EOS:EOS_SWATH:"MAM35S0.A2008010.0000.002.2008010173218.hdf":mod35:Cloud_Mask')

转换后的GeoTIFF文件上传至Cesium Ion后,影像出现左右翻转的异常情况。我尝试添加GCP信息、更换多种投影,但均未解决问题。现寻求正确的转换方法,实现MODIS HDF文件到GeoTIFF的正常转换,使其可在Cesium Ion等GIS平台正确投影。

内容的提问来源于stack exchange,提问作者ZEESEN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:27:57