Any co-ordinate Frames described in the WCS component, together with the standard GRID, FRACTION, PIXEL, and AXIS Frames, form a collection of inter-related Frames called a FrameSet. A FrameSet contains descriptions of each Frame, plus recipes (called Mappings) describing how to convert positions from one Frame to another.20
Frames within a FrameSet are distinguished by their attribute values, primarily their Domain value. In addition, each Frame has an integer Frame index. These indices are (in general) allocated sequentially in chronological order as Frames are added into the FrameSet. Applications that require the user to specify a Frame will usually allow the Frame to be specified either by Domain name, or by index. Frame indices can be examined using NDFTRACE (see below).
One Frame within the FrameSet of an NDF is nominated as the current co-ordinate Frame. When-ever an application reports positions within an NDF (for instance, when annotating plot axes), the positions reported will refer to the current co-ordinate Frame. Likewise, when-ever an application requests a position from the user (for instance, the position to be placed at the centred of a displayed image), it will expect the position to be given within the current co-ordinate Frame of the NDF,
The contents of the WCS component of an an NDF can be examined using NDFTRACE. By default, this just shows the number of co-ordinates Frames defined within the NDF (including the four standard ones), and the Title and Domain of the current co-ordinate Frame. More detail can be obtained using the keywords FULLWCS and FULLFRAME. The first causes the Title, index and Domain of all Frames to be displayed, together with the index of the current Frame. The second causes a more complete description of each Frame to be displayed, including axis labels, units, celestial co-ordinate system (for SkyFrames), etc.
The current co-ordinate Frame can also be examined using WCSFRAME. This is an important application because it also allows you to change the current co-ordinate Frame in the NDF. For instance:
% wcsframe m31 pixel
will make the PIXEL Frame the current co-ordinate Frame in the NDF
m31. After this, all references to positions within the NDF
m31 will refer to pixel co-ordinates. You can also change the
current co-ordinate system using WCSATTRIB:
% wcsattrib myspectrum set system Frequency
% wcsattrib myspectrum set unit GHz
% wcsattrib myspectrum set sor Helio
The above changes the values of the `System', `Unit' and `SOR'
attributes of the current Frame in the NDF myspectrum so that
it represents heliocentric frequency in units of GHz (this assumes
that the current Frame in myspectrum is a
SpecFrame since only a
SpecFrame supports these particular attribute values).
KAPPA --- Kernel Application Package