A Coordinate Axis is a Variable that specifies one of the coordinates of a CoordinateSystem. Mathematically it is a scalar function F from index space to S:
F:D -> S where D is a product set of dimensions (aka index space), and S is the set of reals (R) or Strings.
If its element type is char, it is considered a string-valued Coordinate Axis and rank is reduced by one, since the outermost dimension is considered the string length: v(i, j, .., strlen). If its element type is String, it is a string-valued Coordinate Axis. Otherwise it is numeric-valued, and
isNumeric() is true.
The one-dimensional case F(i) -> R is the common case which affords important optimizations. In that case, use the subtype CoordinateAxis1D. The factory methods will return either a CoordinateAxis1D if the variable is one-dimensional, a CoordinateAxis2D if its 2D, or a CoordinateAxis for the general case.
A CoordinateAxis is optionally marked as georeferencing with an AxisType. It should have a units string and optionally a description string.
A Structure cannot be a CoordinateAxis, although members of Structures can.
@author john caron