使用python的h5py包读取hdf文件时出错

Yas*_*ash 3 python h5py

我想从我从MODIS网站下载的hdf文件中提取数据。链接中提供了一个样本文件。我正在使用以下代码行读取hdf文件:

>>> import h5py
>>> f = h5py.File( 'MYD08_M3.A2002182.051.2008334061251.psgscs_000500751197.hdf', 'r' )
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

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)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了其他来自不同来源的其他hdf文件,但是却遇到了相同的错误。这似乎是什么错?

Iñi*_*res 5

我认为可能存在两个问题:

1)由于文件扩展名为“ hdf”,因此这可能是HDF4文件。HDF5文件通常具有“ .hdf5”或“ .h5·”扩展名。我不确定h5py是否能够读取HDF4文件。

2)也许您必须更改文件本身的权限。如果您使用的是Linux机器,请尝试:chmod +r file.hdf

您可以尝试使用HDFView打开文件。该软件可在多个平台上使用。您可以很容易地检查文件的属性。

  • 一种替代方法是使用“ h4toh5”将文件转换为HDF5。这允许依赖最新的工具。可在[项目主页](http://www.hdfgroup.org/h4toh5/)上使用该工具。 (2认同)