【问题标题】:Best way to access a HDF5 file in which datasets have consecutive name访问数据集具有连续名称的 HDF5 文件的最佳方法
【发布时间】:2014-06-18 12:35:48
【问题描述】:

这是我遇到的问题的精简版:

我有一个包含许多(可能是数百万)数据集的文件,它们都在同一个组中,如下所示:

"/组" + Dataset0001 [双数组2到3维和大量数据] + 数据集0002 + 数据集0003 + ... + 数据集XXXX

数据集被分块并写在一个循环中,该循环在每次迭代期间只知道每个数据集的一部分。因此,在每次迭代中,所有数据集都会发生不完整的写入。这意味着我必须用数据集的名称形成字符串,并告诉 HDF5 查找它并获取句柄,以便我可以写入它。

这很慢。

有没有办法通过使用文件中数据的偏移量来更快地获取句柄?

【问题讨论】:

    标签: c++ io hdf5


    【解决方案1】:

    在初始化期间创建一组数据集名称(或更好的:数据集句柄)。这样您就不必在每次迭代时形成字符串。时间很贵,内存很便宜!

    话虽如此,多维的单个数据集可能比具有顺序名称的数百万个相同大小的数据集更有效(如果可以的话)。

    【讨论】:

    • +1 表示“......一个多维的单个数据集可能比数百万个相同的数据集更有效......”我实际上将文件的结构更改为几个数据集和看到了巨大的进步。
    【解决方案2】:

    如果您不介意使用 C API,可以使用 H5Literate。这允许您将函数应用于组中的所有数据集。我认为唯一的问题是你的函数不应该抛出异常。

    【讨论】:

      猜你喜欢
      • 2012-10-31
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 2019-02-04
      • 2011-02-24
      • 1970-01-01
      • 2011-10-08
      • 2021-08-14
      相关资源
      最近更新 更多