gpt4 book ai didi

python - LZF 压缩阵列的 HDF5 查看器

转载 作者:行者123 更新时间:2023-11-28 20:22:06 32 4
gpt4 key购买 nike

我正在使用 h5py with LZF compression将 NumPy 数组存储在 HDF5 文件中。

效果很好,我的压缩文件比未压缩的文件更便携。但是,如果我尝试使用 vitables 等应用程序查看压缩文件和 HDFView ,我收到以下错误:

错误:读取记录时出现问题。数据集似乎是用 None 库压缩的。请检查它是否安装在您的系统中”在 vitables

HDFView 中的“ncsa.hdf.hdf5lib.exceptions.HDF5Exception:ncsa.hdf.hdf5lib.exceptions.HDF5LibraryException:无法打开目录或文件”。

我可以在两个应用程序中正常浏览文件结构,但打开数组会产生错误。如果我关闭压缩,问题就会消失。例如,运行下面的代码后,打开 array_1 会出现错误,但 array_2 不会。

import numpy as np, h5py

h5_path = r'D:\test.h5'

f = h5py.File(h5_path, 'w')

# Create fake data
data = (np.random.random(1E6)*100).astype(int)

# Save with compression
dset1 = f.create_dataset(r'/path/to/arrays/array_1', data=data,
compression='lzf')

# Save without compression
dset2 = f.create_dataset(r'/path/to/arrays/array_2', data=data)

# Set some object properties
dset1.attrs['Description'] = 'Compressed array.'
dset2.attrs['Description'] = 'Uncompressed array.'

f.close()

这种行为是预料之中的,还是我做错了什么?

如果 vitables 和 HDFView 无法打开压缩数组,是否有可以替代的查看器?

非常感谢!

最佳答案

对于使用 LZF 压缩存储的数据集,我遇到了完全相同的问题,最终我找到了这篇文章。使用 HDFView,我设法查看了使用压缩级别为 9 的 GZIP 压缩的数据集,即:

dset = f.create_dataset('someData', data=data, compression="gzip", compression_opts=9)

但我仍然想查看 LZF 压缩数据集。有一个名为 HDF Compass 的 HDF5 文件的 GUI 界面( Github repo ),由 Andrew Collette 开发,在 HDF 世界中广为人知。当问到这个问题时,HDF Compass 的开发才刚刚开始。今天我测试了 0.6.0 版本,我设法正确查看 LZF 压缩文件。

PD:只是一个警告,与 HDFView 不同,HDF Compass 只是一个只读工具。但是,它仍然非常用户友好且非常活泼。

关于python - LZF 压缩阵列的 HDF5 查看器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24998946/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com