Main Content

matlab.io.hdfeos.sw.defDataField

Namespace: matlab.io.hdfeos.sw

Define new data field within swath

Syntax

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

Description

defDataField(swathID,fieldname,dimlist,dtype) defines a data field to be stored in the swath identified by swathID.

The dimlist input can be a cell array character vectors or a string array containing dimension names, or a single character vector or string scalar if there is only one dimension. dimlist should be ordered such that the fastest varying dimension is listed first. This is opposite from the order in which the dimensions are listed in the C API.

dtype is the data type of the field and can be one of the following values.

  • 'double'

  • 'single'

  • 'int32'

  • 'uint32'

  • 'int16'

  • 'uint16'

  • 'int8'

  • 'uint8'

  • 'char'

defDataField(swathID,fieldname,dimlist,dtype,mergeCode) defines a data field that can be merged with other data fields according to the value of mergeCode. The mergeCode input can be 'automerge' or 'nomerge'. If mergeCode is 'automerge', then the HDF-EOS library will attempt to merge swath fields into a single object. This should not be done if you wish to access the swath fields individually with the another interface. By default, mergeCode is 'nomerge'.

Note

To assure that the fields defined by sw.defDataField are properly established in the file, the swath should be detached and then reattached before writing to any fields.

This function corresponds to the SWdefdatafield function in the HDF-EOS library C API, but because MATLAB® uses FORTRAN-style ordering, the dimlist parameter is reversed with respect to the C library API.

Examples

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