Python gdal用嵌入式压缩读取HDF5

时间:2014-06-13 11:46:15

标签: python hdf5 gdal

我正在尝试使用压缩图像数据库访问HDF5。我使用经典命令gdal

f = gdal.Open(path+product)

但这似乎无法正常工作,因为文件指向无,您可以在下面看到

Starting processing proba database
processing PROBAV_L1C_20131009_092303_2_V001.HDF5
None
processing PROBAV_L1C_20130925_092925_2_V001.HDF5
None
Processing complete

我想问一下是否有人可以给我一些指示如何处理hdf5哪个gdal而不使用不支持压缩数据块的h5py。

由于

2 个答案:

答案 0 :(得分:1)

它无法打开文件,因为它无法查看路径,或者您没有Python的HDF5驱动程序。行为返回None is expected behaivour,但如果无法打开文件,则可以修改以引发异常:

from osgeo import gdal
gdal.UseExceptions()

if not gdal.GetDriverByName('HDF5'):
    raise Exception('HDF5 driver is not available')

答案 1 :(得分:0)

我认为你在Open之前错过了协议。

这适用于其他Proba图像:

from os import gddal
path="PROBAV_L2A_20140321_031709_2_333M_V001.HDF5"
product="LEVEL2A/GEOMETRY/SAA"    
f = gdal.Open("HDF5:\"{}\"://{}".format(path,product))
f.ReadAsArray()

您还可以使用GetSubDatasets阅读完整名称,该名称会返回tuples列表:

ds = gdal.Open(path)
subdataset_read = ds.GetSubDatasets()[0]
print("Subdataset: ",subdataset_read)
ds_sub = gdal.Open(subdataset_read[0],
                   gdal.GA_ReadOnly)
ds_sub.ReadAsArray()