A co-ordinate Frame is a system of co-ordinate axes which can be used to specify a position within an NDF data array. Within an NDF such co-ordinate Frames also have associated descriptive information such as axis labels, axis units, a Frame title, etc. These are called the attributes of the Frame, and the most commonly used are listed briefly below (full descriptions of these attributes are included later.
Digits: Number of digits of precision
Domain: Physical domain described by the co-ordinate system
Epoch: A date & time that defines the co-ordinate system
Format(axis): Format specification for axis values
Label(axis): Axis label
Naxes: Number of Frame axes
Symbol(axis): Axis symbol
System: Specific co-ordinate system used to describe the domain
Title: Frame title
Unit(axis): Axis physical units
The single most important attribute is the Frame Domain, which is an uppercase character string indicating the physical domain in which the co-ordinate system is defined. Frames with the same Domain can, in general, be aligned with each other.
Frames with the following Domain values are defined within every NDF, no matter how the NDF is created.
An AXIS structure is a one-dimensional array that maps pixel index along a given axis on to another related co-ordinate axis (e.g. wavelength) - the values on the other axes are assumed to be constant. Each dimension in the NDF should have an associated AXIS structure. Such structures can be created (for instance) using SETAXIS. If the NDF does not have defined AXIS structures, then a default AXIS Frame will be used in which the values along each axis correspond to pixel co-ordinates.
AXIS structures can only be used to represent independent axes. For instance, celestial co-ordinates cannot (in general) be described using AXIS structures because celestial longitude and latitude may both vary along any given row or column of an NDF.19 If an application is used that renders the AXIS structures in an NDF invalid, then the AXIS structures will not be copied to the output NDF. For instance, if ROTATE is used to rotate an NDF by an angle that is not a multiple of 90 , then the output NDF will not have any AXIS structures, and so the AXIS Frame will default to pixel co-ordinates.
The dimensionality of each of these Frames is equal to that of the NDF (e.g. a two-dimensional NDF will have two-dimensional PIXEL, FRACTION, GRID, and AXIS Frames). Axes within a Frame are identified by an integer index in the range 1 to the number of axes in the Frame. The above Frames are not stored permanently in the NDF, but are generated automatically by the NDF access library each time a reference is made to them.
In addition to the PIXEL, FRACTION, AXIS, and GRID Frames, an NDF may also contain any number of additional co-ordinates Frames. Descriptions of these extra Frames, together with recipes for converting positions between them, are stored permanently in the NDFs WCS component which may be examined using the NDFTRACE command. Application WCSADD allows new Frames to be added to the WCS component (positions in the new Frame must be related to the corresponding positions in an existing Frame by one of several different supported types of Mapping). WCSREMOVE allows Frames to be removed from the WCS component.
Two common additional Frame Domains are SKY and SPECTRUM. SKY
is reserved to refer to two-dimensional Frames that describe
celestial longitude and latitude (known as
`SkyFrames'). SPECTRUM is reserved to refer
to one-dimensional Frames that describe position within a spectrum
(known as `SpecFrames'). These sub-classes of
Frame have additional attributes indicating the particular celestial
or spectral co-ordinate system in use (e.g. equatorial,
galactic, ecliptic, wavelength, frequency, radio velocity, optical
velocity, etc.), and any required qualifying parameters
(equinox, rest frequency, standard of rest, etc.). Instances of
these Frames can be added to an NDF by importing suitable FITS headers
FITSIN or the CONVERT package (see SUN/55).
Alternatively, a SkyFrame can be created directly by specifying the pixel
co-ordinates of stars with known celestial co-ordinates (see
SETSKY and GAIA ).
KAPPA --- Kernel Application Package