【发布时间】:2013-03-31 23:55:30
【问题描述】:
我目前正在从事一个有关 HDF5 数据集压缩的项目,最近开始使用 h5py。我遵循了基本教程,并且能够在创建文件时打开、创建和压缩文件。但是,在压缩现有文件时我一直没有成功(这是我工作的目标)。
我尝试使用“r+”打开文件,然后压缩分块数据集,但文件大小保持不变。
关于使用什么命令或者我做错了什么有什么建议吗?
【问题讨论】:
标签: python compression hdf5 h5py
我目前正在从事一个有关 HDF5 数据集压缩的项目,最近开始使用 h5py。我遵循了基本教程,并且能够在创建文件时打开、创建和压缩文件。但是,在压缩现有文件时我一直没有成功(这是我工作的目标)。
我尝试使用“r+”打开文件,然后压缩分块数据集,但文件大小保持不变。
关于使用什么命令或者我做错了什么有什么建议吗?
【问题讨论】:
标签: python compression hdf5 h5py
HDF 组提供set of tools 来转换、显示、分析和编辑和重新打包您的 HDF5 文件。
您可以使用h5repack 实用程序压缩现有的 hdf5 文件。您还可以使用相同的实用程序更改块大小。
h5repack 可以从命令行使用。
h5repack file1 file2 //删除文件1的占用空间,保存为文件2。
h5repack -v -l CHUNK=1024 file1 file2 //将1024的分块应用到file1
h5repack -v -l CHUNK=1024 GZIP=5 file1 file2 //生成 1024 的块并压缩它
使用 GZIP 5 级压缩
h5repack --help\获取可用的帮助文档
【讨论】:
压缩在 h5py 中非常容易使用。查看 Wiki HowTo 和 Compression 指南。 基本上,它会是这样的:
ds = myfile.create_dataset('ds', shape, dtype, compression='lzf')
如何选择块大小以优化文件大小/访问也存在一些问题,请参阅我链接到的压缩指南。
我不记得默认情况下启用了哪种压缩(如果有)。
【讨论】: