##
Frame Attributes

We will now briefly outline the various attributes associated with a FrameFrame (this is, of course, in addition to those inherited from the MappingMapping class). We will not delve too deeply into the details of each attribute, for which you should consult the appropriate description in Appendix C. Instead, we aim simply to sketch the range of facilities available:

NaxesNaxes
  A read-only integer giving the number of Frame axes.

TitleTitle
  A string describing the coordinate system which the Frame represents.

Label(axis)Label(axis)
  A label string for each axis.

Unit(axis)Unit(axis)
  A string describing the physical units on each axis. You can choose whether to make this attribute “active” or “passive” (using astSetActiveUnitastSetActiveUnit ). If active, its value will be taken into account when finding the Mapping between two Frames (e.g. a scaling of 0.001 would be used to connect two axis with units of “km” and “m”). If passive, its value is ignored. Its use is described in more detail in §7.14.

Symbol(axis)Symbol(axis)
  A string containing a “short form” symbol (e.g. like “X” or “Y”) used to represent the quantity plotted on each axis.

Digits/Digits(axis)Digits/Digits(axis)
  The preferred number of digits of precision to be used when formatting values for display on each axis.

Format(axis)Format(axis)
  A string containing a format specifier which determines exactly how values should be formatted for display on each axis (§7.6). If this attribute is un-set, the formatting is based on the Digits value, otherwise the Format string over-rides the Digits value.

Direction(axis)Direction(axis)
  A boolean (integer) value which indicates in which direction each axis should be plotted. If it is non-zero (the default), the axis should be plotted in the conventional direction—i.e. increasing to the right for the abscissa and increasing upwards for the ordinate. If it is zero, the axis should be plotted in reverse. This attribute is provided as a hint only and programs are free to ignore it if they wish.

DomainDomain
  A character string which identifies the physical domain to which the Frame's coordinate system applies. The primary purpose of this attribute is to prevent unwanted conversions from occurring between coordinate systems which are not related. Its use is described in more detail in §7.12.

SystemSystem
  A character string which identifies the specific coordinate system used to describe positions within the physical domain represented by the Frame. For a simple Frame, this attribute currently has a fixed value of “Cartesian”, but could in principle be extended to include options such as “Polar”, “Cylindrical”, etc. More specialised Frames such as the SkyFrameSkyFrame, TimeFrameTimeFrame and SpecFrameSpecFrame, re-define the allowed values to be appropriate to the domain which they describe. For instance, the SkyFrame allows values such as “FK4” and “Galactic”, and the SpecFrame allows values such as “frequency” and “wavelength”.

EpochEpoch
  This value is used to qualify a coordinate system by giving the moment in time when the coordinates are correct. Usually, this will be the date of observation. The Epoch value is important in cases where coordinates systems move with respect to each other over time. An example of two such coordinate systems are the FK4 and FK5 celestial coordinate systems.

ObsLonObsLon
  Specifies the longitude of the observer (assumed to be on the surface of the earth). The basic Frame class does not use this value, but specialised sub-classes may. For instance, the SpecFrame class uses it to calculate the relative velocity of the observer and the centre of the earth for use in converting between standards of rest.

ObsLatObsLat
  Specifies the latitude of the observer. Use in conjunction with ObsLon.

There are also some further Frame attributes, not described above, which are important when Frames are used as templates to search for other Frames. Their use goes beyond the present discussion.