我在新的 HDF5 文件上运行以下
h5repack
命令。我过去重新打包文件没有任何问题,但这个 HDF5 文件不合作。可能是由于分组结构,我通过h5py.File(filepath)['recordings/rec0000/well000/groups/routed/raw']
访问我感兴趣的表。在这个相关问题中,我确认了在命令行上引用组结构的方式。但是,我仍然收到下面的错误。
$ h5repack -v -f /recordings/rec0000/well000/groups/routed/raw:NONE -i 230208_c10984.h5 -o 230208_c10984.uncompressed.h5
No all objects to modify layout
No all objects to apply filter
</recordings/rec0000/well000/groups/routed/raw> with NONE filter
Opening file. Searching 52 objects to modify ...
</recordings/rec0000/well000/groups/routed/raw>Error occurred while repacking
这是
h5dump -pH 230208_c10984.h5
的(相关?)部分
DATASET "raw" {
DATATYPE H5T_STD_U16LE
DATASPACE SIMPLE { ( 880, 6000000 ) / ( 880, H5S_UNLIMITED ) }
STORAGE_LAYOUT {
CHUNKED ( 880, 200 )
SIZE 1449463146 (7.285:1 COMPRESSION)
}
FILTERS {
USER_DEFINED_FILTER {
FILTER_ID 401
COMMENT mxw-data
}
COMPRESSION DEFLATE { LEVEL 0 }
}
FILLVALUE {
FILL_TIME H5D_FILL_TIME_IFSET
VALUE H5D_FILL_VALUE_DEFAULT
}
ALLOCATION_TIME {
H5D_ALLOC_TIME_INCR
}
}
我也试过用类似的错误更改
--layout=/recordings/rec0000/well0000/groups/routed/raw:CHUNKED=1x30000
。
我在这里验证我可以打开和访问
h5py
中的数据集:
import h5py
>>> h5py.File('230208_c10984.h5')['recordings/rec0000/well000/groups/routed/raw']
<HDF5 dataset "raw": shape (880, 6000000), type "<u2">
这是我的第一个答案。它解决了
h5repack
命令中使用的数据集名称中的错误:
数你的零——我想你还有一个。
将 Python 代码与 h5repack 命令进行比较:
h5py.File(filepath)['recordings/rec0000/well000/groups/routed/raw']
rec0000 has 4 zeros and well000 has 3 zeros
$ h5repack -v -f /recordings/rec0000/well0000/groups/routed/raw:NONE
rec0000 has 4 zeros and well0000 has 4 zeros