HDF 文件數據的讀取


http://www.cams.cma.gov.cn/cams_973/cheres_docs/cheres_doc_sat.modis.1b.html
一、 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個數據對象:一組對象用來描述數據集的成員,一組對象是圖像數據,另一組對象則用來描述圖像的尺度大小。一個數據對象可以同時屬於多個數據集,例如包含在一個柵格圖像中的調色板對象,如果它的標識號和參照值也同時包含在另一個數據集描述符中,那么則可以被另一個柵格圖像調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM