【问题标题】:How to get HDF5 chunk dimensions in existing file?如何在现有文件中获取 HDF5 块尺寸?
【发布时间】:2021-01-07 23:58:33
【问题描述】:

我正在编写一些代码来使用 C HDF5 API 删除现有 HDF5 文件的某些部分(一些维度、一些数据集等)。我希望新的 HDF5 文件与我现有的 HDF5 文件具有相同的块大小,但我似乎无法找到可以检索当前块尺寸的任何地方。有 H5P_GET_CHUNK 函数,但它只在数据集创建时检索块维度。还有 H5D_GET_CHUNK_STORAGE_SIZE 函数,它只检索总大小(而不是尺寸)。

有没有办法从我丢失的现有数据集中检索块尺寸(不仅仅是总大小)?

【问题讨论】:

  • 我同意下面的 cmets。块属性在 Python 中可用(位于 C API 之上)。因此,应该有一种方法可以在 C 中执行此操作。您是否在 The HDF Group 论坛上提问过?那里的人应该能够解释程序。

标签: c hdf5


【解决方案1】:

您可能想看看HDFql,因为它是一种(非常)简单的操作 HDF5 文件的方法,特别是用于获取某个数据集的存储维度(即块大小)。例如,如果要获取名为 dset 的数据集的存储维度,请执行以下操作:

SHOW STORAGE DIMENSION dset

有关此操作的更多信息,请参阅reference manual 的第 6.7.15 节。

【讨论】:

  • 这很有趣,但我真的很想避免将 另一个 库集成到这个项目中,坦率地说,许可证把我吓坏了。此外,我无法自己编译库是不行的,因为我确实希望能够将代码部署到使用自己的 MPI 的 HPC 上。不过建议很好。
  • 显然有一种方法可以在 HDF5 中执行此操作,因为 h5dump 和此工具都可以执行此操作,但我无法解开 h5dump 的意大利面,并且该项目不是开源的。
  • @Laxsnor:根据参考手册,HDFql 没有发布自己的 MPI 库,而是(动态)加载安装在机器/HPC 环境中的库。
猜你喜欢
  • 2019-12-30
  • 2017-06-01
  • 1970-01-01
  • 2011-09-21
  • 2013-02-18
  • 2021-05-19
  • 2018-05-15
  • 1970-01-01
  • 2011-05-28
相关资源
最近更新 更多