HDF5 `h5repack` 重新打包时出错

问题描述 投票:0回答:1

我在新的 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">
hdf5 h5py
1个回答
0
投票

这是我的第一个答案。它解决了

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
© www.soinside.com 2019 - 2024. All rights reserved.