使用h5py压缩现有文件

时间:2013-04-09 13:54:58

标签: python compression hdf5 h5py

我目前正在开发一个关于压缩HDF5数据集的项目,最近开始使用h5py。我遵循基本教程,能够在创建文件时打开,创建和压缩文件。但是,在压缩现有文件时这是不成功的(这是我工作的目的)。

我尝试使用'r +'打开文件然后压缩分块数据集,但文件大小保持不变。

有关使用什么命令的建议,或者我的方法是错误的?

2 个答案:

答案 0 :(得分:2)

压缩在h5py中非常容易使用。查看Wiki HowToCompression指南。 基本上,它会是这样的:

ds = myfile.create_dataset('ds', shape, dtype, compression='lzf')

如何选择块大小以优化文件大小/访问权限也存在一些问题,请参阅我链接到的压缩指南。

我不记得默认启用了哪种压缩(如果有)。

答案 1 :(得分:1)

HDF组提供一个set of tools来转换,显示,分析,编辑和重新打包HDF5文件。

您可以使用h5repack实用程序压缩现有的hdf5文件。您也可以使用相同的实用程序更改块大小。

可以从命令行使用

h5repack。

h5repack file1 file2 //删除文件1的已占用空间并将其另存为file2。

h5repack -v -l CHUNK=1024 file1 file2 //将1024的分块应用于文件1

h5repack -v -l CHUNK=1024 GZIP=5 file1 file2 //制作1024个块并将其压缩                                                  使用GZIP 5级压缩

h5repack --help \获取可用的帮助文档

Detailed documentation也可用。