我目前正在开发一个关于压缩HDF5数据集的项目,最近开始使用h5py。我遵循基本教程,能够在创建文件时打开,创建和压缩文件。但是,在压缩现有文件时这是不成功的(这是我工作的目的)。
我尝试使用'r +'打开文件然后压缩分块数据集,但文件大小保持不变。
有关使用什么命令的建议,或者我的方法是错误的?
答案 0 :(得分:2)
压缩在h5py中非常容易使用。查看Wiki HowTo和Compression指南。 基本上,它会是这样的:
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
\获取可用的帮助文档