http://www.cams.cma.gov.cn/cams_973/cheres_docs/cheres_doc_sat.modis.1b.html
1、 HDF文件格式
1.概述
HDF 是美國國家高級計算應用中心(National Center for Supercomputing Application)爲了知足各類領域研究需求而研製的一種能高效存儲和分發科學數據的新型數據格式。一個HDF文件中能夠包含多種類型的數據,如柵格圖像數據,科學數據集,信息說明數據。這種數據結構,方便了咱們對於信息的提取。例如,當咱們打開一個HDF圖像文件時,除了能夠讀取圖像信息之外,還能夠很容易的查取其地理定位,軌道參數,圖像噪聲等各類信息參數。HDF 的數據結構是一種分層式數據管理結構。
2.HDF數據結構特色
HDF是一個可以自我描述、多目標、用於科學數據存儲和分發的數據格式。它針對存儲和分發科學數據的各類要求提供解決方法。HDF設計特色爲:
· 自我描述:一個HDF文件中能夠包含關於該數據的全面信息。
· 多樣性:一個HDF文件中能夠包含多種類型的數據。例如,能夠經過利用適當的HDF 文件結構,在某個HDF文件中存儲符號、數值和圖形數據。
· 靈活性:可讓用戶把相關數據目標集中一個HDF文件的某個分層結構中,並對其加以描述。同時能夠給數據目標記上標記,方便查取。用戶也能夠把科學數據存儲到多個HDF文件中。
· 可擴展性:在HDF中能夠加入新數據模式,加強了它與其它標準格式的兼容性。
· 獨立性:HDF是一種同平臺無關的格式。HDF文件在不一樣平臺間傳遞而不用轉換格式。
3.爲何創建HDF
人們一般在不一樣機器上創建、處理數據。在處理過程當中,除了原始數據信息之外,無疑會產生大量的結果、輔助、說明等信息,這些信息因爲具備不一樣的格式,因此每每被存於不一樣的文件中。這樣,在數據共享過程當中,咱們不得不利用各類軟件將其打包,進行傳輸。即使如此,也不免會出現遺漏或出錯現象,形成了許多沒必要要的麻煩。HDF經過提供「整體目錄結構」來處理這類問題:
·爲程序提供一種機制,使它可以直接從嵌套的文件中得到信息。
·能夠將不一樣類型的數據源存於同一個文件中,而這些數據源又能夠同時包含其數據信息和和其它相關信息。
·對經常使用數據集的格式和描述標準化。
·鼓勵全部機器和程序使用標準數據格式,產生包括具體數據的文件。
4.HDF數據類型
HDF有6種主要數據類型:柵格圖象,調色板,科學數據庫,註釋,Vdata和Vgroup。
· 柵格圖象: 數據模式提供一種靈活方式存儲、描述柵格圖象數據,包括8bit柵格圖象。
· 調色板: 也叫做彩色查對錶,它提供圖像的色譜。
· 科學數據集: 用來存儲和描述多維科學數據陳列。
· Vdata: 是一個框架,用於存儲和描述數據表。
· HDF註釋: 是文字串,用來描述HDF文件或HDF數據目標。
· Vgroup: 是用來把相關數據目標聯繫起來。一個Vgroup能夠含有其它Vgroup,以及數據目標。任一個HDF目標都可以包括進某個Vgroup中。
5.HDF文件格式
HDF格式能夠被當作一本帶目錄的多章節書。HDF文件做爲「數據書」,每一章包含不一樣類型的數據元素。HDF文件用「數據目錄」列出數據元素。
一個HDF 文件應包括一個文件頭,一個或多個描述符塊,若干個數據元素。
數據頭是用來肯定一個文件是否爲HDF文件,描述符塊存有數據描述符的序號。一個數據描述符和數據元素一塊兒組成了數據對象。數據對象是HDF 的基本結構。
1)文件頭
文件頭佔用文件的前4個字節,它由4個ASCII碼形式的控制字符組成,每一個字符佔用一個字節。第一個控制字符是‘N’,第二個是‘C’, 第三個是‘S’,第四爲‘A’,即(^N^C^S^A).
2) 數據對象
一個數據對象是由一個數據描述符和一個數據元素組成。數據描述符包含了數據元素的類型、位置、尺度等信息。數據元素是實際的數據資料。HDF 這種數據組織方式能夠實現HDF 數據的自我描述。
(1) 數據描述符
全部的數據描述符都爲12個字節長,它包含4個區域:標識符(佔16-bit),參照數(16-bit),數據偏移量(32-bit),數據長度(32-bit)。
標識符:
數據標識符(tag)是用來肯定數據元素區數據類型的。它是16位無符號整型值(1~65535),若是沒有與其相對應的數據元素,則tag爲DFTGA_NULL(或0)。下面爲tag的值的說明:
1~32767——HDF 結構專用
32768~64999——可由用戶定義
65000~65535——HDF 規格擴展使用
參照數:
對於HDF 文件中的每一個標記符,都有惟一的一個參照數與其相對應。參照數是一個16—bit無符號整型數,在數據對象中通常是不可變的。標記符和參照數相結合肯定惟一的數據對象。
數據偏移量和長度:
數據偏移量是指從文件開始位置到數據元素的起始位置所包含的字節數。長度是指整個數據元素區佔用字節數。數據偏移量和長度均爲32-bit 無符號整型數。
(2) 數據元素
數據元素是數據對象中的裸數據部分。
(3) 在HDF 文件中將數據對象分組
在HDF 文件中一般將含有相關數據的數據對象分爲一組。這些數據對象組稱爲數據集。HDF 用戶採用應用界面來處理這些數據集。例如:一套8-bit的圖像數據集通常有3個數據對象:一組對象用來描述數據集的成員,一組對象是圖像數據,另外一組對象則用來描述圖像的尺度大小。一個數據對象能夠同時屬於多個數據集,例如包含在一個柵格圖像中的調色板對象,若是它的標識號和參照值也同時包含在另外一個數據集描述符中,那麼則能夠被另外一個柵格圖像調用。html