2013-07-29 54 views
5

我正在做遙感項目。在matlab上使用HDF非常簡單。但我想用網格計算(Ubuntu)實現這一點。所以我正在嘗試八度。我有HDF4葉綠素文件。普通圖像處理將通過八度音程輕鬆完成。但我想知道八度中的hdfread,hdftool。我在八度圖像中添加了一個圖像包。任何人都可以告訴我如何閱讀和如何使用hdf數據。是否有任何要添加的軟件包?請讓我知道這件事。如何在Octave中讀取hdf數據

  • 如何讀取HDF數據
  • 如何加載HDF數據
  • 如何從
+0

'hdfread'和'hdftool'還沒有在Octave中實現(我在看版本3.6.4)... –

回答

2

對於HDF5,Octave可以在沒有額外包裝的情況下加載它。

對於HDF4,您可以使用h4tonccf或OPeNDDAP hdf4_handler將其轉換爲NetCDF文件,然後通過NetCDF調用通過Octave的octcdf軟件包進行加載。我們提供了一個完整的例子在這裏完全倍頻程源代碼:

http://hdfeos.org/software/octave.php

以下是通過OPeNDAP通過倍頻創建了一個示例NASA HDF4情節。

Octave's plot of NASA AIRS HDF4 product

+0

謝謝你的回覆。 – prabu

1

高密度纖維板具體功能尚未在八度尚未實現HDF數據檢索圖像。但是,Octave可以使用更加標準的load命令來處理該格式。只要做load path-to-hdf-file,你就會在內存中加載一個結構體。

請參閱幫助郵件歸檔文件上的以下文章:How to read HDF dataread data subsets from HDF5

+0

謝謝你的回答。我已經做到了。但它帶有錯誤。如果八度支持hdf4及其操作,那麼對我而言,它將非常有用,而不是使用matlab。 – prabu

+0

@prabu如果你想讓人幫你,你需要指定你得到的錯誤(和Octave版本)。 – carandraug

0

我相信你可以轉換HDF4數據與appropriate conversion tools,例如以HDF5 h4toh5

在八度,加載.h5文件(加檢查)是簡單的:

octave:1> load secondhdf5.h5 
octave:2> whos 
Variables in the current scope: 

    Attr Name   Size      Bytes Class 
    ==== ====   ====      ===== ===== 
     dbldata  4x3       96 double 
     fltdata  4x3       96 double 
     intdata  4x3       48 int32 

Total is 36 elements using 240 bytes 

octave:3> size(dbldata) 
ans = 

    4 3 

順便提一句, 'secondhdf5.h5' 的內容如下:

$ h5dump secondhdf5.h5 
HDF5 "secondhdf5.h5" { 
GROUP "/" { 
    DATASET "dbldata" { 
     DATATYPE H5T_IEEE_F64LE 
     DATASPACE SIMPLE { (3, 4)/(3, 4) } 
     DATA { 
     (0,0): 1.1, 1.2, 1.3, 1.4, 
     (1,0): 2.1, 2.2, 2.3, 2.4, 
     (2,0): 3.1, 3.2, 3.3, 3.4 
     } 
    } 
    DATASET "fltdata" { 
     DATATYPE H5T_IEEE_F32LE 
     DATASPACE SIMPLE { (3, 4)/(3, 4) } 
     DATA { 
     (0,0): 1.1, 1.2, 1.3, 1.4, 
     (1,0): 2.1, 2.2, 2.3, 2.4, 
     (2,0): 3.1, 3.2, 3.3, 3.4 
     } 
    } 
    DATASET "intdata" { 
     DATATYPE H5T_STD_I32BE 
     DATASPACE SIMPLE { (3, 4)/(3, 4) } 
     DATA { 
     (0,0): 1, 2, 3, 4, 
     (1,0): 5, 6, 7, 8, 
     (2,0): 9, 10, 11, 12 
     } 
    } 
} 
} 
1

Octave < = 4.0中的HDF5支持僅適用於Octave自身通過簡單文件IO功能寫入的文件。如果您的數據來自其他地方,那麼它有許多缺點,例如無法讀取單個任意數據集或其中的一部分數據集。

目前,針對讀/寫數據集和屬性更完整和Matlab兼容的功能,請參閱模塊

https://github.com/stegro/hdf5oct

編輯:我對這個項目做出了貢獻。

+0

請在某處披露您與該項目的關係,否則您的帖子可能被視爲廣告或垃圾郵件,可能是錯誤的。 – skuntsel