Удалить или обновить dataset в HDF5?

Я хотел бы программно изменить данные, связанные с набором данных в файле HDF5. Кажется, я не могу найти способ удалить dataset по имени (позволяя мне добавить его снова с измененными данными) или обновить dataset по имени. Я использую C API для HDF5 1.6.x, но указатели на любой API HDF5 были бы полезны.

    Согласно руководству пользователя :

    HDF5 в настоящее время не обеспечивает простой механизм удаления набора данных из файла или для восстановления пространства памяти, занимаемого удаленным объектом.

    Такое простое исключение, похоже, не может быть и речи. Но раздел продолжается:

    Удаление набора данных и исправление используемого им пространства можно выполнить с H5Ldelete функции h5repack утилиты h5repack . С H5Ldelete функции H5Ldelete ссылки на dataset могут быть удалены из файловой структуры. После того, как все ссылки были удалены, dataset становится недоступным для любого приложения и фактически удаляется из файла. Способ восстановления пространства, занятого несвязанным набором данных, заключается в том, чтобы записать все объекты файла в новый файл. Любой несвязанный объект недоступен для приложения и не будет включен в новый файл. Запись объектов в новый файл может осуществляться с помощью специальной программы или с h5repack служебной программы h5repack .

    Если вы хотите удалить dataset в c ++, вам понадобятся следующие команды:

     H5File m_h5File (pathAndNameToHDF5File, H5F_ACC_RDWR); //The hdf5 c++ object. std::string channelName = "/myGroup/myDataset"; int result = H5Ldelete(m_h5File.getId(), channelName.data(), H5P_DEFAULT); 

    результат будет неотрицательным значением в случае успеха; иначе возвращает отрицательное значение. https://support.hdfgroup.org/HDF5/doc/RM/RM_H5L.html#Link-Delete

    Как сказал @MaxLybbert, пространство на жестком диске не восстанавливается. Вы должны использовать инструмент repack. Однако с HDF5 v.1.10 пространство может быть восстановлено. Но руководство пользователя еще не готово: https://support.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesFileSpaceMgmtDocs.html