#### Description:

This attribute allows a SkyFrame to represent offsets, rather than absolute axis values, within the coordinate system specified by the System attribute. If supplied, SkyRef should be set to hold the longitude and latitude of a point within the coordinate system specified by the System attribute. The coordinate system represented by the SkyFrame will then be rotated in order to put the specified position at either the pole or the origin of the new coordinate system (as indicated by the SkyRefIs attribute). The orientation of the modified coordinate system is then controlled using the SkyRefP attribute.

If an integer axis index is included in the attribute name (e.g. `"` SkyRef(1)`"` ) then the attribute value should be supplied as a single floating point axis value, in radians, when setting a value for the attribute, and will be returned in the same form when getting the value of the attribute. In this case the integer axis index should be `"` 1`"` or `"` 2`"` (the values to use for longitude and latitude axes are given by the LonAxis and LatAxis attributes).

If no axis index is included in the attribute name (e.g. `"` SkyRef`"` ) then the attribute value should be supplied as a character string containing two formatted axis values (an axis 1 value followed by a comma, followed by an axis 2 value). The same form will be used when getting the value of the attribute.

The default values for SkyRef are zero longitude and zero latitude.

Type:

  Floating point.

#### Applicability

##### SkyFrame

All SkyFrames have this attribute.

#### Notes:

- If the System attribute of the SkyFrame is changed, any position given for SkyRef is transformed into the new System.

- If a value has been assigned to SkyRef attribute, then the default values for certain attributes are changed as follows: the default axis Labels for the SkyFrame are modified by appending `"` offset`"` to the end, the default axis Symbols for the SkyFrame are modified by prepending the character `"` D`"` to the start, and the default title is modified by replacing the projection information by the origin information.

#### Aligning SkyFrames with Offset Coordinate Systems

The offset coordinate system within a SkyFrame should normally be considered as a superficial `"` re-badging`"` of the axes of the coordinate system specified by the System attribute - it merely provides an alternative numerical `"` label`"` for each position in the System coordinate system. The SkyFrame retains full knowledge of the celestial coordinate system on which the offset coordinate system is based (given by the System attribute). For instance, the SkyFrame retains knowledge of the way that one celestial coordinate system may `"` drift`"` with respect to another over time. Normally, if you attempt to align two SkyFrames (e.g. using the astConvert or astFindFrame routine), the effect of any offset coordinate system defined in either SkyFrame will be removed, resulting in alignment being performed in the celestial coordinate system given by the AlignSystem attribute. However, by setting the AlignOffset attribute to a non-zero value, it is possible to change this behaviour so that the effect of the offset coordinate system is not removed when aligning two SkyFrames.
Copyright (C) 2021 East Asian Observatory