HDF5 - 通过代码为组创建属性

HDF5 - Creating attributes for groups via code

我目前正在学习 HDF5,需要了解如何使用 C++ 向空组添加属性。我知道如何通过 HDFView 做到这一点,但我似乎找不到任何关于将属性添加到简单组的文档,只有数据集(这甚至可能吗?)。

在 HDFView 中,如果您添加一个组,然后右键单击该组和 select "Show properties",将弹出一个新的 window,其中包含 'General' 和'Attributes'。在 'Attributes' 选项卡中,您可以添加多个属性。我基本上想这样做,但是通过代码。

我下面的代码将单个组添加到新的 H5 文件中:

//Create a new file using default properties
H5File file("NewH5.h5", H5F_ACC_TRUNC);

//Create PLATFORM_t and SONAR_t groups in the file
Group groupPlatform(file.createGroup("/PLATFORM_t"));

对文件、组、数据集等附加属性的操作是H5Locationclass的成员函数。为了在您的组中写入一个名为 "some_attribute" 的 double 类型的属性,您只需调用

double value=42;
DataSpace dspace(H5S_SCALAR);
Attribute att = groupPlatform.createAttribute("some_attribute",PredType::NATIVE_DOUBLE,dspace);
att.write(PredType::NATIVE_DOUBLE,&value);

如果您使用更复杂的数据空间,则可以使用更复杂的属性。