首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LZF压缩数组的HDF5查看器

LZF压缩数组的HDF5查看器
EN

Stack Overflow用户
提问于 2014-07-28 15:43:20
回答 2查看 1.7K关注 0票数 2

我使用LZF压缩的h5py将NumPy数组存储在HDF5文件中。

它工作得很好,而且我的压缩文件比未压缩的文件更可移植。但是,如果我试图使用履历HDFView等应用程序查看压缩文件,则会出现以下错误:

错误:读取记录时出错。数据集似乎是用无库压缩的。请检查它是否安装在您的系统中,请“在可移植的

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

我可以在两个应用程序中浏览文件结构,但是打开一个数组会产生一个错误。如果我关掉压缩,问题就解决了。例如,在运行下面的代码之后,打开array_1会给出错误,但是array_2不会。

代码语言:javascript
复制
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()

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

如果和HDFView无法打开压缩数组,是否有其他查看器可以打开?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-29 13:35:29

虽然h5py附带了LZF,但HDF5本身通常并不是用LZF发布或编译的。相反,您可以使用gzip,它包含在所有HDF5版本中,因此可以在任何系统上打开:

代码语言:javascript
复制
dset1 = f.create_dataset(r'/path/to/arrays/array_1', data=data, 
                         compression='gzip')

HDFView可以打开用gzip压缩的数组。

此外,如果使用gzip,可以使用compression_opts设置压缩级别(0到9之间的整数):

代码语言:javascript
复制
dset1 = f.create_dataset(r'/path/to/arrays/array_1', data=data, 
                         compression='gzip', compression_opts=9)
票数 2
EN

Stack Overflow用户

发布于 2017-04-05 10:26:45

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

代码语言:javascript
复制
dset = f.create_dataset('someData', data=data, compression="gzip", compression_opts=9)

但我还是想看到LZF压缩的数据集。HDF5文件有一个GUI界面,名为HDF罗盘 (Github回购),它是由安德鲁·科莱特开发的,在HDF世界中非常有名。当这个问题被问到时,HDF指南针的发展才刚刚开始。今天,我测试了0.6.0版本,并设法正确地查看了一个LZF压缩文件。

PD:只是一个警告,HDFView只是一个只读工具,不像HDFView.但是,它仍然是非常友好的用户和真正的快捷。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24998946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档