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