Skip to main content
 首页 » 编程设计

python之读取/打开 modis aqua .hdf 文件并在 gdal 和 matplotlib 中显示/绘制输出

2025年05月04日20hnrainll

我已经尝试并搜索如何解决这个问题,但仍然找不到如何从给定的 Modis Aqua .hdf 文件中在 gdal 和 matplotlib 中读取和绘制它的方法。任何帮助深表感谢。顺便说一句,我在 Windows 7 中使用 Python 2.7.5。文件名为 A2014037040000.L2_LAC.SeAHABS.hdf。在 hdf 文件的地球物理数据中,我将只使用 chlor_a。

更新:

这是示例文件的链接。

A2014037040500.L2_LAC.SeAHABS.hdf

请您参考如下方法:

HDF 的诀窍是大多数时候您需要一个特定的子数据集。如果您使用 GDAL,则需要打开直接指向该子数据集的 HDF:

import gdal 
import matplotlib.pyplot as plt 
 
ds = gdal.Open('HDF4_SDS:UNKNOWN:"MOD021KM.A2013048.0750.hdf":6') 
data = ds.ReadAsArray() 
ds = None 
 
fig, ax = plt.subplots(figsize=(6,6)) 
 
ax.imshow(data[0,:,:], cmap=plt.cm.Greys, vmin=1000, vmax=6000) 

您还可以打开“主”HDF 文件并检查子数据集,然后从那里开始:

# open the main HDF 
ds = gdal.Open('MOD021KM.A2013048.0750.hdf') 
 
# get the path for a specific subdataset 
subds = [sd for sd, descr in ds.GetSubDatasets() if descr.endswith('EV_250_Aggr1km_RefSB (16-bit unsigned integer)')][0] 
 
# open and read it like normal 
dssub = gdal.Open(subds) 
data = dssub.ReadAsArray() 
dssub = None 
 
ds = None