我想以編程方式更改與HDF5文件中的數據集關聯的數據。我似乎無法找到通過名稱刪除數據集的方法(允許我使用修改後的數據再次添加它)或按名稱更新數據集。我爲HDF5 1.6.x使用C API,但是指向任何HDF5 API的指針都會很有用。刪除或更新HDF5中的數據集?
1
A
回答
5
HDF5不此時提供了一種簡單的機制來從文件中刪除數據集或回收由已刪除的對象所佔據的存儲空間。
如此簡單的刪除似乎是不可能的。但部分繼續:
刪除數據集,並回收其使用可以與
H5Ldelete
函數來完成的空間和h5repack
應用程序。使用H5Ldelete
函數,可以從文件結構中刪除指向數據集的鏈接。在所有鏈接被刪除後,數據集變得對任何應用程序都不可訪問,並且從文件中被有效地刪除。恢復未鏈接數據集佔用空間的方法是將文件的所有對象寫入新文件。任何未鏈接的對象對應用程序不可訪問,並且不會包含在新文件中。將對象寫入新文件可以使用自定義程序或實用程序完成。
1
如果你想++,你需要下面的命令來刪除在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所說,硬盤空間沒有恢復。您必須使用重新包裝工具。 但是,HDF5 v.1.10可以恢復空間。但用戶指南還沒有準備好:https://support.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesFileSpaceMgmtDocs.html
相關問題
- 1. 從HDF5文件中刪除數據
- 2. MVC更新刪除數據
- 3. D3:數據集更新不會刪除DOM中的元素
- 4. 只刪除或只更新或更新+刪除mysql
- 5. 插入或更新或刪除數據從表值參數
- 6. 更新集合將刪除
- 7. 搜索HDF5數據集
- 8. Chunked HDF5數據集和slabsize
- 9. HDF5數據集中事件的鏈接
- 10. Mongoose.js:刪除集合或數據庫
- 11. 刪除(或更新)RichTextBox中的圖像
- 12. 刪除和數據集的更新行(C#)
- 13. updateAll回送數據源不會刪除更新數據中的刪除
- 14. Sqlite的Android數據庫沒有更新或刪除FTS?
- 15. 刪除或刷新數據表
- 16. 使用HDF5庫重命名和刪除HDF5文件中的組
- 17. 數據集綁定存儲過程更新/插入/刪除
- 18. GridView更新gui刪除並添加項目到數據集合
- 19. 更新和刪除數據庫中的數據庫mysql
- 20. 可以更新和刪除數據庫中的數據
- 21. 在asp.net中更新或刷新gridview時,在數據庫中有任何插入,更新或刪除
- 22. 調整Julia的HDF5數據集
- 23. 更新表:數據集或LINQ
- 24. Clear()或Dispose()清除分配給C#中新數據集()的數據集?
- 25. 更新或刪除哪個更快?
- 26. 更新數據行刪除事件
- 27. 更新表刪除一些數據
- 28. 更新網頁數據庫被刪除
- 29. 從Datagrid更新/刪除數據
- 30. 更新S3文件刪除元數據
謝謝。任何想法PyTables(一個建立在HDF5之上的python引擎)如何處理? – 2009-01-16 22:01:37