我正在编写一些代码来删除现有HDF5文件的部分内容(一些维度,一些数据集等)。我希望新的HDF5文件与现有HDF5 API具有相同的块大小,但我似乎找不到任何地方可以检索当前块维度。有H5P_GET_CHUNK函数,但是它只在数据集创建时检索块维度。还有H5D_GET_CHUNK_STORAGE_SIZE函数,它只检索总大小(而不是维度)。有没有一种方法可以从我丢失的现有数据集中检索块维度(而不仅仅是总大小)?
j5fpnvbx1#
你可能想看看HDFql,因为它是一种(更)简单的操作HDF5文件的方法,特别是获取特定数据集的存储尺寸(即块大小)。例如,如果你想获取名为dset的数据集的存储尺寸,请执行以下操作:
dset
SHOW STORAGE DIMENSION dset
有关此操作的更多信息,请参见reference manual的第6.7.15节。
eqqqjvef2#
(接自https://support.hdfgroup.org/ftp/HDF5/examples/examples-by-api/hdf5-examples/1_8/C/H5D/h5ex_d_chunk.c)您可以通过以下命令从现有数据集获取数据创建属性列表:
hid_t dcpl = H5Dget_create_plist(ds_id);
您可以检查布局是否使用
H5D_layout_t layout = H5Pget_layout(dcpl);
如果是的话,你可以用
if (layout == H5D_CHUNKED) { hsize_t chunk_dims_out[ndims]; H5Pget_chunk(dcpl, ndims, chunk_dims_out); }
2条答案
按热度按时间j5fpnvbx1#
你可能想看看HDFql,因为它是一种(更)简单的操作HDF5文件的方法,特别是获取特定数据集的存储尺寸(即块大小)。例如,如果你想获取名为
dset
的数据集的存储尺寸,请执行以下操作:有关此操作的更多信息,请参见reference manual的第6.7.15节。
eqqqjvef2#
(接自https://support.hdfgroup.org/ftp/HDF5/examples/examples-by-api/hdf5-examples/1_8/C/H5D/h5ex_d_chunk.c)您可以通过以下命令从现有数据集获取数据创建属性列表:
您可以检查布局是否使用
如果是的话,你可以用