2014-06-13 2 views
0

압축 된 이미지 datablok로 HDF5에 액세스하려고합니다. 파일이 없음을 가리키는 때문에 누군가가 나에게 몇 가지를 줄 수있는 경우 내가 묻고 싶다 당신이삽입 된 압축으로 HDF5를 읽는 Python gdal

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

아래에서 볼 수있다 나는 GDAL 고전 명령

f = gdal.Open(path+product) 

를 사용하지만이 작동하지 않는 것 같다 압축 데이터 블록을 지원하지 않는 h5py를 사용하지 않고 hdf5를 처리하는 방법을 표시합니다.

감사

+0

은'에서 오는 None' 않는

다른 Proba 이미지와 나를 위해 작동 ? f를 인쇄하고 있습니까? – Davidmh

+0

예 f를 인쇄하면 아무 것도 반환하지 않습니다. – rduca

답변

1

는 경로를 볼 수 있기 때문에 그것은 하나의 파일을 열 수, 또는 당신이 파이썬에 대한 HDF5 드라이버가 없습니다. 동작은 Noneis expected behaivour를 반환하지만,이 파일을 열 수없는 경우 예외를 발생하도록 수정 될 수 있습니다

from osgeo import gdal 
gdal.UseExceptions() 

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

난 당신이 Open 전에 프로토콜을 그리워 생각합니다.

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() 

또한 tuples의 목록을 반환 GetSubDatasets 사용하여 전체 이름 읽을 수 있습니다 :

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()