2013-05-21 6 views
2

MODIS 웹 사이트에서 다운로드 한 hdf 파일의 데이터를 추출하고 싶습니다. 샘플 파일이 링크에 제공됩니다.python h3py 패키지를 사용하여 hdf 파일을 읽는 중 오류가 발생했습니다

>>> import h5py 
>>> f = h5py.File('MYD08_M3.A2002182.051.2008334061251.psgscs_000500751197.hdf', 'r') 

오류 나는 점점 오전 : 나는 다음 코드 줄을 사용하여 HDF 파일을 읽고 있습니다 내가 다른 소스에서 여러 가지 다른 HDF 파일을 시도

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
f = h5py.File('MYD08_M3.A2002182.051.2008334061251.psgscs_000500751197.hdf', 'r') 
    File "C:\Python27\lib\site-packages\h5py\_hl\files.py", line 165, in __init__ 
fid = make_fid(name, mode, userblock_size, fapl) 
    File "C:\Python27\lib\site-packages\h5py\_hl\files.py", line 57, in make_fid 
fid = h5f.open(name, h5f.ACC_RDONLY, fapl=fapl) 
    File "h5f.pyx", line 70, in h5py.h5f.open (h5py\h5f.c:1640) 
IOError: unable to open file (File accessability: Unable to open file) 

을하지만 같은 무엇입니까 오류. 여기에 무슨 잘못이있는 것 같습니까?

1) 파일의 확장자는 "HDF는"있는 그대로, 어쩌면 이것은 HDF4 파일입니다

답변

4

나는 두 가지 문제가있을 수 있다고 생각. HDF5 파일은 일반적으로 ".hdf5"또는 ".h5"확장자를가집니다. h5py가 HDF4 파일을 읽을 수 있는지 확실하지 않습니다.

2) 아마도 파일 자체에 대한 사용 권한을 변경해야합니다. 리눅스 머신에 있다면 : chmod +r file.hdf

HDFView으로 파일을 열어 볼 수 있습니다. 이 소프트웨어는 여러 플랫폼에서 사용할 수 있습니다. 파일의 속성을 매우 쉽게 확인할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. hdf 파일에서 데이터를 시각화하기 위해 HDFView를 사용했으며 파일은 hdf4 형식입니다. 그래서 당신이 말했듯이 문제는 h5py가 hdf4 형식을 지원할 수 없다는 것입니다. hdf4 형식을 지원하는 pyhdf를 발견했습니다. 내 문제를 해결할 것 같아. 그건 그렇고, 나는 chmod하지 않았고, windows를 사용하고 있습니다. – Yash

+1

그게 좋습니다! 'pyhdf'로 직장을 구할 수 있기를 바랍니다. –

+1

또 다른 방법은'h4toh5'를 사용하여 파일을 HDF5로 변환하는 것입니다. 이를 통해 최신 도구에 의존 할 수 있습니다. 도구는 [project home] (http://www.hdfgroup.org/h4toh5/)에서 구할 수 있습니다. –

2

이것은 파일 권한 오류 또는 파일 존재와 같은 것 같습니다. 아마 같은 문제가 있었는데, 나중에 내 파일이 어떤 이유로 그것을 읽을 h5py을 중단하는 전용 "읽기 전용"것으로 확인

import os 

hdf_file = 'MYD08_M3.A2002182.051.2008334061251.psgscs_000500751197.hdf' 

if not os.path.isfile(hdf_file): 
    print 'file %s not found' % hdf_file 

if not os.access(hdf_file, os.R_OK): 
    print 'file %s not readable' % hdf_file 

f = h5py.File(hdf_file, 'r') 
+0

답장을 보내 주셔서 감사합니다. 파일은 실제로 139 개가 모두 있지만 폴더에있는 모든 파일을 반복하여 사용자가 제안한 검사를 수행했는지 확인하여 파일이 존재하며 액세스 할 수 있는지 확인하십시오. – Yash

0

과 같은 몇 가지 검사를 추가 할 수 있습니다. "쓰기"권한을 수정 한 후에 읽을 수있었습니다. 왜 이렇게 설정되었는지는 모르겠다.