HDF5 資料集 (.hdf5)

The 標準

階層式資料格式 5(HDF5)是用於大量多維陣列的頂級科學資料管理架構,廣泛應用於超級運算、氣候建模、神經科學與機器學習中。

將 HDF5 轉換為 CSV

免費的瀏覽器端 HDF5 轉 CSV 轉換器。在您的裝置上即時轉換檔案。

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 HDF5 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 HDF5 檔案:

十六進位簽章(偏移量 0):

89 48 44 46 0D 0A 1A 0A

ASCII 表示法: \x89HDF\r\n\x1a\n

標準化: The HDF Group 開放標準規格

技術規格

容器架構類似階層式檔案系統的二進位容器,將資料組織成具有屬性的群組(資料夾)與資料集(多維陣列)
壓縮基於區塊的壓縮過濾器:Gzip(Deflate)、SZIP、Zstandard、Blosc 與 LZF
位元組序宣告於超級區塊中(小端序或大端序)
色彩空間不適用(多維數值陣列)
色版與結構高維度科學陣列、複合資料型別與變動長度字串
最大尺寸實際上不受限制(支援 64 位元座標與 PB 級資料集)
透明度無
串流與漸進式分塊儲存可進行部分超矩形切片,無需將完整資料集載入記憶體

技術比較矩陣:HDF5 對比競爭格式

技術屬性HDF5 (目前)NETCDFFITSZARR
階層結構完整的 POSIX 風格檔案系統(群組與資料集)NetCDF-4 底層使用 HDF5固定區塊陣列與表格雲端原生分塊目錄格式
資料集切片超快速二進位超矩形讀取快速超矩形讀取直接區塊索引雲端平行分塊擷取
機器學習用途模型權重的標準(Keras .h5)在 AI 中很少使用無逐漸增加的 AI 訓練資料集用途
主要生態系統NCSA、超級運算、Python h5pyNOAA、氣象學、海洋學NASA、天文學、望遠鏡雲端原生資料科學

常見損壞模式與十六進位修復指南

Python h5py 錯誤:「Unable to open file (file signature not found)」(無法開啟檔案,找不到檔案簽章)。

根本原因: 檔案開頭處的 8 位元組超級區塊損壞。

修復: 檢查超級區塊位移,或使用 File2File.app HDF5 工具復原資料集。

安全性分析與解析器攻擊向量

官方 libhdf5 函式庫會剖析複雜的 B 樹與堆積表格,其中損壞的位移曾導致堆積溢位弱點。

已知攻擊向量

  • 在 B 樹節點索引走訪期間發生堆積緩衝區溢位(例如 CVE-2021-37501)。
  • 自訂解壓縮過濾器管線外掛程式中發生越界寫入。
  • 透過循環群組連結迴圈造成阻斷服務。

防禦最佳實務: 使用受記憶體限制且具有沙箱機制的 WebAssembly 引擎來處理不受信任的 HDF5 檔案。

歷史起源與里程碑

2020HDF5 v1.12 引入了用於雲端物件儲存(Amazon S3)的虛擬物件層(VOL)連接器。
2006The HDF Group 從伊利諾大學 NCSA 分拆出來,成為獨立的非營利基金會。
1998NCSA 發布 HDF5,徹底重新設計了原始的 HDF4,消除了 2 GB 檔案大小限制。

主要優勢與優點

  • 單一檔案中的完整檔案系統:將複雜的多 PB 資料集組織成類似目錄的具名群組與資料集。
  • 高效能超矩形切片:無需讀取整個檔案,就能從 100 GB 的 5D 矩陣中讀取小型 2D 切片。
  • 與現代科學 Python(h5py)、MATLAB、R 以及高效能 MPI 平行超級電腦深度整合。

技術限制與缺點

  • 高規格複雜度使得在官方 libhdf5 C 函式庫之外的獨立剖析器實作變得困難。
  • 傳統 HDF5 中的單一寫入者鎖定限制,在歷史上讓並行寫入工作流程變得很複雜。
  • 損毀的超級區塊可能會導致整個階層樹無法存取。

有趣的技術冷知識

  • HDF5 檔案簽章(\x89HDF\r\n\x1a\n)衍生自 PNG 簽章。The HDF Group 表示,這個簽章可用來識別 HDF5 檔案,並有助於偵測常見的檔案傳輸問題。
  • 美國太空總署(NASA)的地球觀測系統(EOS)將每日數 PB 的衛星氣候資料儲存於 HDF5 格式中。
  • Keras 和 TensorFlow 等深度學習框架普及了用於儲存類神經網路權重的 HDF5(.h5)格式。

常見技術問題

什麼是 HDF5 檔案?

HDF5 檔案就像是儲存在單一檔案中的完整檔案系統,旨在有效率地儲存大量的科學陣列、表格和機器學習模型。

.h5 與 .hdf5 有什麼不同?

沒有不同;.h5 與 .hdf5 是完全相同的階層式資料格式 5(Hierarchical Data Format 5)的兩種副檔名。

我該如何檢視 HDF5 檔案的內容?

您可以使用 HDFView、Python h5py,或線上使用 File2File.app 來檢查任何 HDF5 檔案內的群組、資料集與中繼資料。