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);