如何使用h5repack处理带分组结构的H5数据集?
解决h5repack处理带分组结构数据集的问题
要在带分组的HDF5文件中指定目标数据集,h5repack需要使用斜杠分隔的完整数据集路径,和你在h5py中使用的路径格式完全一致,不需要转换成点分隔的形式。
针对你的场景,正确的命令如下:
h5repack --filter "recordings/rec0000/well000/groups/routed/raw:NONE" -i input.h5 -o output.h5
也可以在路径开头加上斜杠,明确表示从根目录开始:
h5repack --filter "/recordings/rec0000/well000/groups/routed/raw:NONE" -i input.h5 -o output.h5
为什么之前的命令失败?
- 仅用
raw:NONE时,h5repack会在根目录下查找名为raw的数据集,而你的数据集在嵌套分组里,所以找不到。 - 点分隔的路径格式(如
recordings.rec0000...raw)不是h5repack识别的HDF5路径格式,HDF5内部分组层级默认用斜杠分隔,必须保持一致。
扩展:处理多个带路径的数据集
如果需要同时处理多个嵌套数据集,只需多次添加--filter参数即可,比如:
h5repack --filter "/recordings/rec0000/well000/groups/routed/raw:NONE" --filter "/recordings/rec0000/well001/groups/routed/raw:GZIP=5" -i input.h5 -o output.h5
内容的提问来源于stack exchange,提问作者David Parks
相关产品推荐
相关产品推荐

