我正在进行遥感项目。在matlab上使用HDF非常容易。但是我想在网格计算(Ubuntu)中实现此功能。因此,我正在尝试使用Octave。我有叶绿素的HDF4文件。普通图像处理可以轻松地在Octave中完成。但是我想了解关于Octave中的hdfread、hdftool的信息。我已经在Octave图像中添加了一个图像软件包。请问如何读取和处理HDF数据?是否有需要添加的软件包?请告诉我这方面的信息。
- 如何读取hdf数据
- 如何加载hdf数据
- 如何从hdf数据中检索图像
我正在进行遥感项目。在matlab上使用HDF非常容易。但是我想在网格计算(Ubuntu)中实现此功能。因此,我正在尝试使用Octave。我有叶绿素的HDF4文件。普通图像处理可以轻松地在Octave中完成。但是我想了解关于Octave中的hdfread、hdftool的信息。我已经在Octave图像中添加了一个图像软件包。请问如何读取和处理HDF数据?是否有需要添加的软件包?请告诉我这方面的信息。
http://hdfeos.org/software/octave.php
以下是由Octave通过OPeNDAP创建的NASA HDF4样本图。load
命令来处理该格式。只需执行load path-to-hdf-file
即可在内存中加载一个结构体。h4toh5
。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
$ 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
}
}
}
}
hdfread
和hdftool
在Octave中尚未实现(我正在查看版本3.6.4)... - Eitan T