hdfread
从 HDF4 或 HDF-EOS2 文件读取数据
语法
data = hdfread(filename, datasetname)
data = hdfread(hinfo)
data = hdfread(...,param,value,...)
data = hdfread(filename,EOSname,param,value,...)
[data,map] = hdfread(...)
说明
data = hdfread(filename, datasetname)
从 filename
指定的 HDF4 或 HDF-EOS2 文件返回 datasetname
指定的数据集中的所有数据。要确定 HDF4 文件中的数据集名称,请使用 hdfinfo
函数。
注意
hdfread
可用于 HDF4 文件或 HDF-EOS2 文件。要从 HDF5 文件读取数据,请使用 h5read
。
data = hdfread(hinfo)
返回结构体 hinfo
指定的数据集中的所有数据,该结构体由 hdfinfo
函数返回。在结构体 hinfo
中指定与特定类型的数据集相关的字段,并在有多个数据集时使用索引指定是哪个数据集。有关详细信息,请参阅 指定要读取的数据集。
data = hdfread(...,param,value,...)
根据指定参数和值对组返回数据子集。请参阅下表以查找不同数据集类型的有效参数和值。
data = hdfread(filename,EOSname,param,value,...)
从 EOSname
指定的 HDF-EOS 点、网格或分段中设置数据字段的子集。
[data,map] = hdfread(...)
返回 8 位光栅图像的图像 data
和颜色图 map
。
子集设置参数
下表说明了可以与 hdfread
函数一起用于特定类型的 HDF4 数据的子集设置参数。这些数据类型包括
请注意以下事项:
如果参数需要多个值,请使用元胞数组存储这些值。例如,
'Index'
参数需要三个值:start
、stride
和edge
。与元胞数组一样,也将这些值括在花括号中。hdfread(..., 'Index', {start,stride,edge})
作为索引的所有值都从 1 开始。
HDF 科学数据 (SD) 数据集的子集设置参数
使用 HDF SD 文件时,hdfread
支持该表中列出的参数。
参数 | 描述 |
---|---|
| 三元素元胞数组
|
例如,此代码从 HDF 文件 example.hdf
读取数据集 Example SDS
。'Index'
参数指定 hdfread
从每个维度开头开始读取数据,直到每个维度结束,但仅每隔一个数据值读取第一个维度中的数据值。
data = hdfread('example.hdf','Example SDS','Index',{[],[2 1],[]})
HDF Vdata 集的子集设置参数
使用 HDF Vdata 文件时,hdfread
支持这些参数。
参数 | 描述 |
---|---|
| 字符向量或字符串标量,指定要读取的字段的名称。指定多个字段名称时,请使用字符向量元胞数组或字符串数组。 |
| 从 1 开始的数字,指定要从其开始读取的记录 |
| 指定要读取的记录总数的数字 |
例如,此代码从 HDF 文件 example.hdf
读取 Vdata 集 Example Vdata
。
data = hdfread('example.hdf','Example Vdata','FirstRecord', 2,'NumRecords', 5)
HDF-EOS 网格数据的子集设置参数
使用 HDF-EOS 网格数据时,hdfread
支持以下三种类型的参数:
必需参数
可选参数
互斥参数 - 在调用
hdfread
时只能指定这些参数中的一个,不能将这些参数与任何可选参数结合使用。参数
描述
必需参数
'Fields'
字符向量或字符串标量,指定要读取的字段。只能为网格数据集指定一个字段名称。
互斥的可选参数
'Index'
三元素元胞数组
{start,stride,edge}
,指定要从数据集读取的位置、范围和值start
- 指定要在文件中开始读取的位置的数组默认值:
1
,从每个维度的第一个元素开始。指定的值不能超过数据集的任何维度大小。stride
- 指定要读取的值之间的区间默认值:
1
,读取数据集的每个元素。edge
- 指定要读取的每个维度长度的数组默认值:包含对应维度的长度的数组
'Interpolate'
二元素元胞数组
{longitude,latitude}
,指定定义双线性插值区域的经度和纬度点。每个元素都是指定经度和纬度坐标的 N 长度向量。'Pixels'
二元素元胞数组
{longitude,latitude}
,指定定义区域的经度和纬度坐标。每个元素都是指定经度和纬度坐标的 N 长度向量。该区域转换为像素行和列,原点位于网格左上角。注意:这是读取
'Box'
区域的等效像素。'Tile'
用于为支持图块的 HDF-EOS 网格文件指定要读取的图块坐标的向量
可选参数
'Box'
二元素元胞数组
{longitude,latitude}
,指定定义区域的经度和纬度坐标。longitude
和latitude
都是指定经度和纬度坐标的二元素向量。'Time'
二元素元胞数组
[start stop]
,其中start
和stop
是指定时间段起点和终点的数字'Vertical'
二元素元胞数组
{dimension, range}
dimension
- 字符向量或字符串标量,指定要从中读取内容的数据集字段的名称。只能为网格数据集指定一个字段名称。range
- 指定最小和最大子集范围的二元素数组。如果dimension
是维度名称,则range
指定要提取的元素范围。如果dimension
是字段名称,则range
指定要提取的值范围。'Vertical'
子集设置参数可以单独使用,也可以和'Box'
或'Time'
结合使用。要沿多个维度设置区域子集,在一个hdfread
调用中最多可以使用八次 vertical 子集设置参数。
例如,
data = hdfread('grid.hdf','PolarGrid','Fields','ice_temp','Index', {[5 10],[],[15 20]})
HDF-EOS 点数据的子集设置参数
使用 HDF-EOS 点数据时,hdfread
包含两个必需参数和三个可选参数。
参数 | 描述 |
---|---|
必需参数 | |
| 字符向量或字符串标量,包含要读取的数据集字段的名称。要指定多个字段名称,请使用字符向量元胞数组或字符串数组。 |
| 从 1 开始的数字,指定要从 HDF-EOS 点数据集中读取的级别 |
互斥的可选参数 | |
| 二元素元胞数组 |
| 指定要读取的记录数目的向量 |
| 二元素元胞数组 |
例如,
hdfread(...,'Fields',{field1, field2},... 'Level',level,'RecordNumbers',[1:50, 200:250])
HDF-EOS 分段数据的子集设置参数
使用 HDF-EOS 分段数据时,hdfread
支持以下三种类型的参数:
必需参数
可选参数
互斥参数
在调用 hdfread
时只能使用这些互斥参数中的一个,不能将这些参数与任何可选参数结合使用。
参数 | 描述 |
---|---|
必需参数 | |
| 字符向量或字符串标量,包含要读取的数据集字段的名称。只能为分段数据集指定一个字段名称。 |
互斥的可选参数 | |
| 三元素元胞数组
|
| 三元素元胞数组
|
可选参数 | |
| 三元素元胞数组
|
| 二元素元胞数组
|
例如,
hdfread('swath.hdf', 'Example Swath', 'Fields', 'Temperature', ... 'Time', {5000, 6000, 'midpoint'})
示例
版本历史记录
在 R2006a 之前推出