文档

hdfpt

到HDF-EOS Point对象的接口

语法

着干活,…,outN] = hdfpt(funcstr,input1,...,inputN)

描述

hdfpt是MATLAB®HDF-EOS C库中Point函数的网关,该库由EOSDIS(地球观测系统数据和信息系统)开发和维护。点数据集包括在(可能)不规则的时间间隔和分散的地理位置拍摄的一系列数据记录。每条数据记录由一组表示时间点和/或空间点状态的一个或多个数据值组成。

着干活,…,outN] = hdfpt(funcstr,input1,...,inputN)返回一个或多个输出,对应于指定的HDF-EOS库中的Point函数functstr

在HDF-EOS C库中的PT函数和的有效值之间有一对一的对应关系funcstr.例如,hdfpt(“分离”,point_id)对应于C库调用PTdetach (point_id)

编程模型

用于访问点数据集的编程模型hdfpt如下:

  1. 打开文件并通过从文件名获取文件id来初始化PT接口。

  2. 通过从点名获取点id来打开或创建点数据集。

  3. 在数据集上执行所需的操作。

  4. 通过处理点id来关闭点数据集。

  5. 通过释放文件id终止对文件的点访问。

要访问HDF-EOS文件中已经存在的单点数据集,请使用以下MATLAB命令:

Fileid = hdfpt('open',filename,access);Pointid = hdfpt('attach',fileid,pointname);%数据集可选操作…Status = hdfpt('detach',pointid);Status = hdfpt('close',fileid);

要同时访问多个文件,请为要打开的每个文件获取单独的文件标识符。若要访问多个点数据集,请为每个数据集获取单独的点id。

正确处理点id和文件id非常重要,这样缓冲的操作才能完全写入磁盘。如果您退出MATLAB或清除所有PT标识符仍然打开的墨西哥文件,MATLAB将发出警告并自动处理它们。

注意返回的文件标识符hdfpt不能与任何其他HDF- eos或HDF函数返回的文件标识符互换。

访问例程

访问例程初始化和终止对PT接口和点数据集(包括打开和关闭文件)的访问。

的价值funcstr 函数的语法 描述
“开放” File_id = hdfpt('open',filename,access) 给定文件名和所需的访问模式,打开或创建HDF文件以创建、读取或写入点。访问可以“读”“读写”,或“创建”file_id如果操作失败,则为-1。
“创建” Point_id = hdfpt('create',file_id,pointname) 创建具有指定名称的点数据集。pointname包含点数据集名称的字符向量。point_id如果操作失败,则为-1。
“附加” Point_id = hdfpt('attach',file_id,pointname) 附加到文件中的现有点数据集。point_id如果操作失败,则为-1。
“分离” Status = hdfpt('detach',point_id) 从点数据集分离。
“关闭” Status = hdfpt('close',file_id) 关闭文件。

定义的例程

定义例程允许用户设置点数据集的关键特征。

的价值funcstr 函数的语法 描述
“deflevel” Status = hdfpt('deflevel',point_id,levelname,…
fieldList、fieldTypes fieldOrders)
在点数据集中定义一个新级别。levelname要定义的级别的名称。fieldList是包含新关卡中字段名称的字符向量的单元格数组。fieldTypes属性中每个字段的数字类型也是字符向量的单元格数组fieldList.有效的数字类型包括“uchar8”“uchar”“char8”“字符”“双”“uint8”“uint16”“uint32”“浮”“int8”“int16”,“int32”fieldOrders是一个包含每个字段的顺序的向量。
“deflinkage” Status = hdfpt('deflinkage',point_id,父,子,linkfield) 定义两个相邻层之间的链接字段。父级的名称。孩子子级别的名称。linkfield在两个级别上都定义的字段的名称。

基本I/O例程

基本的I/O例程向点数据集读取和写入数据和元数据。

的价值funcstr 函数的语法 描述
“writelevel” Status = hdfpt('writelevel',point_id,level,data) 将新记录追加到点数据集中的指定级别。水平所需的级别索引(从零开始)。数据一定是P-by-1单元格数组P为指定级别定义的字段数。每一个细胞数据必须包含M (k)——- - - - - -N矩阵的数据,其中M (k)是顺序的吗k-th field(字段中标量值的数量)和N是记录的数量。单元格的MATLAB类必须与为相应字段定义的HDF数据类型匹配。MATLAB中的文本数据会自动转换为匹配任何HDF字符类型。其他数据类型必须完全匹配。
“readlevel” [data,status] = hdfpt('readlevel',point_id,…
水平,fieldList,记录)
从点数据集中的给定级别读取数据。水平所需级别的索引(从零开始)。fieldList是字符向量的单元格数组,指定要读取的字段列表。记录包含要读取的记录的索引(从零开始)的向量。数据是一个P-by-1单元格数组P是请求字段的数量。每一个细胞数据包含一个M (k)——- - - - - -N数据矩阵,其中M (k)是顺序的吗k-th字段和N是记录的数量,还是长度(记录)
“updatelevel” Status = hdfpt('updatelevel',point_id,…
水平,fieldList、记录、数据)
更新(更正)点数据集中特定级别的数据。水平所需级别的索引(从零开始)。fieldList是字符向量的单元格数组,指定要更新的字段名列表。记录包含要更新的记录的索引(从零开始)的向量。数据是一个P-by-1单元格数组P指定字段的数目。每一个细胞数据必须包含M (k)——- - - - - -N矩阵的数据,其中M (k)是顺序的吗k-th field(字段中标量值的数量)和N是记录的数量,还是长度(记录).单元格的MATLAB类必须与为相应字段定义的HDF数据类型匹配。MATLAB中的文本数据会自动转换为匹配任何HDF字符类型。其他数据类型必须完全匹配。
“writeattr” Status = hdfpt('writeattr',point_id,attrname,data) 用指定的名称写入或更新点数据集属性。如果该属性不存在,则创建该属性。
“readattr” [data,status] = hdfpt('readattr',point_id,attrname) 从指定的属性中读取属性数据。

查询例程

查询例程返回关于点数据集中包含的数据的信息。

的价值funcstr 函数的语法 描述
“nlevels” Nlevels = hdfpt(' Nlevels ',point_id) 返回点数据集中的层数。nlevels如果操作失败,则为-1。
“nrecs” Nrecs = hdfpt(' Nrecs ',point_id,level) 返回指定级别的记录数。nrecs如果操作失败,则为-1。
“nfields” [numfields,strbufsize] = hdfpt('nfields',point_id,level) 返回指定级别的字段数。strbufsize包含字段名的数组的长度。numfields是-1和strbufsize[]操作失败。
“levelinfo” [numfields,fieldList,field Type,fieldOrder] =…
hdfpt(“levelinfo”、point_id级别)
返回指定级别的字段信息。fieldList包含字段名称的字符向量的单元格数组。fieldType为每个字段定义数据类型的字符向量的单元格数组。fieldOrder包含与每个字段关联的顺序(标量值的数量)的向量。如果操作失败,numfields为-1,其他输出为空。
“levelindx” Level = hdfpt('levelindx',point_id,levelname) 返回具有指定名称的级别的级别索引(从零开始)。水平如果操作失败,则为-1。
“bcklinkinfo” [linkfield,status] = hdfpt('bcklinkinfo',point_id,level) 返回上一级的链接字段。状态是-1和linkfield[]操作失败。
“fwdlinkinfo” [linkfield,status] = hdfpt('fwdlinkinfo',point_id,level) 返回链接字段到下面的级别。状态是-1和linkfield[]操作失败。
“getlevelname” [levelname,status] = hdfpt('getlevelname',point_id,level) 返回给定级别索引的级别名称。状态是-1和levelname[]操作失败。
“运算符” [byteSize,fieldLevels] = hdfpt('sizeof',point_id,fieldList) 返回指定字段的字节大小和字段级别。fieldList包含字段名称的字符向量的单元格数组。byteSize是指定字段的总字节大小,和fieldLevels包含与每个字段对应的级别索引的向量。byteSize是-1和fieldLevels[]操作失败。
“attrinfo” [numberType,count,status] =…
hdfpt (attrinfo, point_id attrname)
以字节为单位返回指定属性的数字类型和大小。attrname属性的名称。numberType是包含属性对应的HDF数据类型名称的字符向量。属性数据使用的字节数。状态是-1和numberType而且[]操作失败。
“inqattrs” [nattrs,attrnames] = hdfpt('inqattrs',point_id) 检索点数据集中定义的属性信息。nattrs而且attrnames分别是所有已定义属性的编号和名称。如果操作失败,nattrs是-1和attrnames[]
“inqpoint” [numpoints,pointnames] = hdfpt('inqpoint',filename) 检索定义在HDF-EOS文件中的点数据集的编号和名称。pointnames是包含一个点名称的字符向量的单元格数组。numpoints是-1和pointnames[]操作失败。

实用程序例程

占位符。

的价值funcstr 函数的语法 描述
“getrecnums” [outRecords,status] = hdfpt('getrecnums',…
point_id、inLevel outLevel inRecords)
返回记录数字outLevel所指定的记录组对应inRecords在水平inLevel.的inLevel而且outLevel参数是从零开始的级别索引。inRecords是由从零开始的记录索引组成的向量。状态是-1和outRecords[]操作失败。

子例程

子集例程允许从指定的地理区域读取数据。

的价值funcstr 函数的语法 描述
“defboxregion” region_id = hdfpt('defboxregion',point_id,cornerLon,cornerLat) 为点定义经纬度方框区域。cornerLon是包含相对方框角的经度的两元素向量。cornerLat是包含相对方框角纬度的两元向量。region_id如果操作失败,则为-1。
“defvrtregion” Period_id = hdfpt('defvrtregion',point_id,region_id,…
vert_field、范围)
为点定义垂直区域。vert_field要子集的字段的名称。范围是包含垂直值的最小值和最大值的两元素向量。period_id如果操作失败,则为-1。
“regioninfo” [byteSize,status] = hdfpt('regioninfo',point_id,…
region_id水平,fieldList)
返回指定级别的子集周期的数据大小,以字节为单位。fieldlist是字符向量的单元格数组,指定要提取的字段列表。状态而且byteSize如果操作失败则为-1。
“regionrecs” [numRec,recNumbers,status] = hdfpt('regionrecs',…
point_id、region_id级别)
返回指定级别的子区域内的记录编号。状态而且numrec分别是-1和recNumbers[]操作失败。
“extractregion” [data,status] = hdfpt('extractregion',point_id,…
region_id水平,fieldList)
从指定的子集区域读取数据。fieldList是指定所请求字段列表的字符向量的单元格数组。数据是一个P-by-1单元格数组P是请求字段的数量。每一个细胞数据包含一个M (k)——- - - - - -N数据矩阵,其中M (k)是顺序的吗k-th字段和N是记录的数量。状态是-1和数据[]操作失败。
“deftimeperiod” period_id = hdfpt('deftimeperiod',point_id,startTime,stopTime) 为点数据集定义一个时间段。period_id如果操作失败,则为-1。
“periodinfo” [byteSize,status] = hdfpt('periodinfo',point_id,…
period_id水平,fieldList)
以字节为单位检索指定时间段的大小。fieldList是指定字段名列表的字符向量的单元格数组。byteSize而且状态如果操作失败则为-1。
“periodrecs” [numRec,recNumbers,status] = hdfpt('periodrecs',…
point_id、period_id级别)
返回指定级别的子时间段内的记录数。numRec而且状态如果操作失败则为-1。
“extractperiod” [data,status] = hdfpt('extractperiod',…
point_id period_id,水平,fieldList)
从指定的时间段内读取数据。fieldList是指定所请求字段列表的字符向量的单元格数组。数据是一个P-by-1单元格数组P是请求字段的数量。每一个细胞数据包含一个M (k)——- - - - - -N数据矩阵,其中M (k)是顺序的吗k-th字段和N是记录的数量。状态是-1和数据[]操作失败。

输入/输出参数

大多数例程返回标志,状态,例程成功时为0,例程失败时为-1。语法不包含的例程状态在函数语法中标注的输出中返回失败信息。

levelName是一个字符向量。

一些C库函数接受用C宏定义的输入值。例如,CPTopen ()函数需要一个访问模式输入,可以是DFACC_READ、DFACC_RDWR或DFACC_CREATE,其中这些符号在适当的C头文件中定义。在C库中使用宏定义的地方,等效的MATLAB语法使用从宏名称派生的文本。您可以使用包含整个宏名称的文本,也可以省略公共前缀。你可以用大写或小写。例如,这个C函数调用:

status = PTopen("PointFile.hdf",DFACC_CREATE)
等价于下面这些MATLAB函数调用:
状态= hdfpt(“开放”“PointFile.hdf”“DFACC_CREATE”) status = hdfpt(“开放”“PointFile.hdf”“dfacc_create”) status = hdfpt(“开放”“PointFile.hdf”“创建”) status = hdfpt(“开放”“PointFile.hdf”“创建”

在C函数返回带有宏定义的值的情况下,等效的MATLAB函数将该值作为包含宏小写缩写形式的文本返回。

HDF数字类型被指定为:“uchar8”“uchar”“char8”“字符”“双”“uint8”“uint16”“uint32”“浮”“int8”“int16”,“int32”

在HDF-EOS库接受的情况,使用空矩阵([]).

另请参阅

R2006a之前介绍

这个话题有用吗?