Main Content

matlab.io.hdfeos.sw.defDataField

命名空间: matlab.io.hdfeos.sw

在分段中定义新数据字段

语法

defDataField(swathID,fieldname,dimlist,dtype)
defDataField(swathID,fieldname,dimlist,dtype,mergeCode)

说明

defDataField(swathID,fieldname,dimlist,dtype) 会定义一个数据字段,该字段将存储在 swathID 所标识的分段之中。

dimlist 输入可以是包含维度名称的元胞数组字符向量或字符串数组;如果只有一个维度,可以是单个字符向量或字符串标量。dimlist 的排序方式应当是先列出变化最快的维度。这与 C API 中维度的列出顺序正好相反。

dtype 是字段的数据类型,可以是下列值之一。

  • 'double'

  • 'single'

  • 'int32'

  • 'uint32'

  • 'int16'

  • 'uint16'

  • 'int8'

  • 'uint8'

  • 'char'

defDataField(swathID,fieldname,dimlist,dtype,mergeCode) 定义一个可根据 mergeCode 的值与其他数据字段合并的数据字段。mergeCode 输入可以是 'automerge''nomerge'。如果 mergeCode'automerge',则 HDF-EOS 库将尝试将分段字段合并到单个对象中。如果您希望使用另一接口逐个访问分段字段,则不应执行此操作。默认情况下,mergeCode'nomerge'

注意

为保证 sw.defDataField 定义的字段能正确建立在文件中,应先分离分段,再重新附加,然后才能写入任何字段。

此函数对应于 HDF-EOS 库 C API 中的 SWdefdatafield 函数,但因为 MATLAB® 采用 FORTRAN 样式排序方法,所以 dimlist 参数与 C 库 API 相反。

示例

import matlab.io.hdfeos.*
swfid = sw.open('myfile.hdf','create');
swathID = sw.create(swfid,'MySwath');
sw.defDim(swathID,'GeoTrack',2000);
sw.defDim(swathID,'GeoXtrack',1000);
sw.defDim(swathID,'DataTrack',4000);
sw.defDim(swathID,'DataXtrack',2000);
sw.defDim(swathID,'Bands',3);
sw.defDimMap(swathID,'GeoTrack','DataTrack',0,2);
sw.defDimMap(swathID,'GeoXtrack','DataXtrack',1,2);
dims = {'GeoXtrack','GeoTrack'};
sw.defGeoField(swathID,'Longitude',dims,'float');
sw.defGeoField(swathID,'Latitude',dims,'float');
dims = {'DataXtrack','DataTrack','Bands'};
sw.defDataField(swathID,'Spectra',dims,'float');
sw.detach(swathID);
sw.close(swfid);