These metadata provide formatting information specific to the named variable. There is no preferred order for parameters within a variable metadata block.
Each block of variable metadata takes the form,
START_VARIABLE = name |
parameter = value |
![]() ![]() |
END_VARIABLE = name |
The LABEL_i attribute is used when it is sufficient to provide a text label
for each entry for this index. For example a vector such as a velocity in cartesian gse coordinates will take a LABEL_1 attribute such as
LABEL_1 = "x", "y", "z"
and the stem "V" is provided by the LABLAXIS (see above). Similarly, a pressure tensor in cartesians would have
LABEL_1 = "x", "y", "z"
LABEL_2 = "x", "y", "z"
and stem "P" provided by LABLAXIS. This permits construction of labels
for individual components from the stem plus appropriate entry under
LABEL_i.
By contrast, DEPEND_i will normally point to another variable as it is used when arrays need descriptions that are more complex than labels. Vectors, tensors, and non-ordered arrays, such as Status have LABEL_i attributes rather than DEPEND_i. Quantities such as power spectra and particle spectra will require DEPEND_i attributes to describe numerical quantities such as bin boundaries and other metadata describing the physical quantities associated with that array index (see below). DEPEND_i attributes will in general take a LABLAXIS attribute themselves to provide a label stem for the numerical bin descriptions, but they do not normally require LABEL_i or DEPEND_i attributes themselves.
There must be as many of these parameters as there are entries in the Sizes value. Thus a 3-D array would require three parameters, DEPEND_1, DEPEND_2 and DEPEND_3 (or equivalently LABEL_i for one or more of the indices). The variables identified may be either non-record-varying or supplied for each record to allow for changing bin boundaries such as variable energy sweeps. Each of the identified dimension variables must have a defining variable block in the header as normal.
Depend variables should be 1-D arrays of the same size as the dimension for that array index. Thus for an array with the first index varying over azimuthal angular bins, a Depend_1 variable describing these N azimuthal angular bins might point to a variable Dimension_phi of size N, giving the centre of each bin.
Where DEPEND_i is providing information on binning (e.g. angle, energy and frequency ranges) then DEPEND_i will itself also have a DELTA_PLUS and a DELTA_MINUS attribute providing bin edge offsets. The lower bin boundary is given by the appropriate element in DEPEND_i - DELTA_MINUS and the upper boundary by DEPEND_i + DELTA_PLUS. The bin width is given by DELTA_PLUS + DELTA_MINUS.
If binning is regular so that all bins have the same width then a single value may be provided for the DELTA attributes, otherwise they must each have the same number of entries, N, as the dimension of index i. Where bins are open ended, e.g. "above 100MeV", then either DEPEND_i and DELTA_PLUS(MINUS) should represent an estimate of the instrument responsiveness to give an effective location and width, or they should fit a logical progression from lower bins. Descriptive attributes should be provided to explain this to the user.
The syntax does not permit the use of N+1 elements to describe a dimension of size N, even though this would be more efficient for uniform touching bins (i.e. just specifying the N+1 bin boundaries).
Complex data values are represented by an extra dimension taking a LABEL_i indicating either "Re" or "Im". If this is the last index then the real and imaginary parts of a value are successive entries in the record.
It is also advisable to supply extra information to describe the relationships between the DEPEND variables with the parent variable, such as the method required to construct the volume of the bin. No syntax is prescribed for these parameters which should be text, but examples of possible descriptors are listed below.
For some data it will be necessary to specify different area and volume factors depending on the slice to be taken through the data. Added parameters may be specified to cover any integration or processing factors appropriate.
For example, consider a 2-D array of phase space densities calculated at centre
energies and starting polar angles
and over a constant
azimuthal angular range of
. A suitable description parameter and described DEPEND variables could take the value
DEPEND_1 = E
and the variable E block would contain metadata
DELTA_PLUS = WE
DELTA_MINUS = WE
where WE is another variable (or a single constant entry or a comma separated
list of the right length) and
DEPEND_2 = theta
and the variable theta block would contain metadata
DELTA_PLUS = Wth
DELTA_MINUS = 0
Other attributes may be defined to show the use of these form factors in
calculating quantities associated with the binning, such as
Theta_Factor = "TFactor[j] is cos(theta[j])-cos(theta[j]+Wth[j])"
Energy_Factor = "EFactor[i] for volume is E[i]^2 *2*WE[i] + (2/3)WE[i]^3"
Volume_Factor = "V[i][j] = EFactor[i]*TFactor[j]* pi * 15/180"
In this example the energy dimension is tagged by an array giving the mid energies for each energy bin, and another for the bin half-width. The extra attributes then describe constructing the volume element of the [i][j] element in the data array. Thus, if the data array is in partial densities, then the phase space density is found by dividing the data dn[i][j] by V[i][j]. (In practice, the partial density would probably be an integration in velocity and require converting from energy to velocity, with a different V[i][j].
For fixed bin widths of 100 eV, say, the subscript would be removed from the WE[i] in the above, and a separate WE variable would not be used.