我正在尝试使用压缩图像数据库访问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。
由于
答案 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()