% GFORMAT: A standardised format for handling gridded data. % % The gformat can be seen as a class for gridded data (but implemented in % a functional way). The format is based on a structure. A minimal % structure for a dimension of dim is obtained by % G = gf_empty( dim ); % % The mandatory fields are % % TYPE : Type of data. Derived "classes" can use this field to flag % the type/class. Set to 'basic' by gf_empty. % NAME : Overall name of data, e.g. 'CIRA86 temparature' % SOURCE : Source of data, such as the name of a file. % DIM : Dimensionality of data. That is, highest possible % dimension of data. % DATA : The data (dim1,dim2,...,DIM). % DATA_NAME : Name of data, such as 'Temperature'. % DATA_UNIT : Unit of data, such as 'K'. % % If DIM >= 1, fields describing the grids are mandatory: % % GRID1 : Grid for data dimension 1. % GRID1_NAME : Description of data dimension 1, such as 'Pressure'. % GRID1_UNIT : Unit for data dimension 1, such as 'Pa'. % % And so on up to the dimension specified by *DIM*. % % It is further allowed to add other fields. These fields can be used for % input to specific functions using gformat arrays as input. A consequency is % that data with different DIM can be mixed in an array of G. Some gformat % functions are vectorised, allowing G to be a vector (but not a matrix), and % should handle the case of a varying DIM. % % All interpolation is made as using *gridinterp* with its optional argument % *extrap* set to true. That is, the data are assumed to be defined % everywhere (end values valid all the way to +-INF). This is also valid for % singleton dimensions. The grid for empty/singleton dimensions can be empty % or a scalar. % % Definitions of derived types are described in the associated % is-function, such as isatmdata for the atmdata type.