HDF5 - Создание атрибутов для групп с помощью кода

В настоящее время я изучаю HDF5 и мне нужно выяснить, как добавить атрибуты в пустую группу с помощью C++. Я знаю, как сделать это через HDFView, но я не могу найти документацию о добавлении атрибутов в простую группу, только наборы данных (это вообще возможно?).

В HDFView, если вы добавите группу, затем щелкните правой кнопкой мыши по этой группе и выберите "Показать свойства", появится новое окно с вкладками "Общие" и "Атрибуты". На вкладке "Атрибуты" вы можете добавить несколько атрибутов. Я в основном хочу сделать это, но через код.

Мой код ниже добавляет одну группу в новый файл 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"));

1 ответ

Решение

Операции над атрибутами, прикрепленными к файлам, группам, наборам данных и т. Д., Являются функциями- членами класса H5Location. Чтобы написать атрибут с именем "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);

Более сложные атрибуты возможны, если вы используете более сложные пространства данных.

Другие вопросы по тегам