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
如下:
打开文件并通过从文件名获取文件id来初始化PT接口。
通过从点名获取点id来打开或创建点数据集。
在数据集上执行所需的操作。
通过处理点id来关闭点数据集。
通过释放文件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,… |
在点数据集中定义一个新级别。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 是字符向量的单元格数组,指定要读取的字段列表。记录 包含要读取的记录的索引(从零开始)的向量。数据 是一个P -by-1单元格数组P 是请求字段的数量。每一个细胞数据 包含一个M (k) ——- - - - - -N 数据矩阵,其中M (k) 是顺序的吗k -th字段和N 是记录的数量,还是长度(记录) . |
“updatelevel” |
Status = hdfpt('updatelevel',point_id,… |
更新(更正)点数据集中特定级别的数据。水平 所需级别的索引(从零开始)。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] =… |
返回指定级别的字段信息。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] =… |
以字节为单位返回指定属性的数字类型和大小。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',… |
返回记录数字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 要子集的字段的名称。范围 是包含垂直值的最小值和最大值的两元素向量。period_id 如果操作失败,则为-1。 |
“regioninfo” |
[byteSize,status] = hdfpt('regioninfo',point_id,… |
返回指定级别的子集周期的数据大小,以字节为单位。fieldlist 是字符向量的单元格数组,指定要提取的字段列表。状态 而且byteSize 如果操作失败则为-1。 |
“regionrecs” |
[numRec,recNumbers,status] = hdfpt('regionrecs',… |
返回指定级别的子区域内的记录编号。状态 而且numrec 分别是-1和recNumbers 是[] 操作失败。 |
“extractregion” |
[data,status] = hdfpt('extractregion',point_id,… |
从指定的子集区域读取数据。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,… |
以字节为单位检索指定时间段的大小。fieldList 是指定字段名列表的字符向量的单元格数组。byteSize 而且状态 如果操作失败则为-1。 |
“periodrecs” |
[numRec,recNumbers,status] = hdfpt('periodrecs',… |
返回指定级别的子时间段内的记录数。numRec 而且状态 如果操作失败则为-1。 |
“extractperiod” |
[data,status] = hdfpt('extractperiod',… |
从指定的时间段内读取数据。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)
状态= 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库接受的情况零
,使用空矩阵([]
).