World Coordinate System (WCS) keywords in the header of a FITS or IRAF
image file define the relationship between pixel coordinates in the
image and sky coordinates. The WCSTools
package currently supports five ways of setting a world coordinate
system from header keywords:
FITS WCS (AIPS subset and FITS-WCS standard),
WCSTools and Spitzer
polynomial extensions to those projections,
IRAF TNX and ZPX projections,
Telescope coordinates, and
Digitized Sky Survey plate solution.
By default, Mark Calabretta's WCSLIB subroutines are used to deal with
the 25 projections of the proposed FITS WCS standard.
eight most commonly-used projections of classic AIPS
may be computed using the worldpos and worldpix subroutines
written by Bill Cotton and Eric Greisen of NRAO by using the -z
argument on the command line of a WCSTools program or calling setdefwcs(WCS_ALT)
if using the libwcs library. A data structure,
I/O software, and a few improvements have been added at SAO. Three pairs
of keywords are always used. Support for the NCP projection is
maintained despite its absence from the proposed standard.
Eric Greisen described four of them in this memo.
Sample images for all of the projections may be obtained
CTYPE1 and CTYPE2 indicate the coordinate type and
projection. The first
four characters are RA-- and DEC-, GLON and GLAT, or ELON and ELAT, for
equatorial, galactic, and ecliptic coordinates, respectively. The
second four characters contain a four-character code for the projection.
The presence of the CTYPE1 keyword is used to select for this
WCS subset. If a CTYPEn value of LINEAR is used, units are read
from the CUNITn keywords and returned by programs which return
world coordinates as strings. A flag in the data structure may be set
to select the AIPS subroutines.
CRPIX1 and CRPIX2 are the pixel coordinates of the
reference point to which the projection and the rotation refer.
CRVAL1 and CRVAL2 give the center coordinate as right
ascension and declination or longitude and latitude in decimal degrees.
There are three options for the scale and rotation:
Historically, CDELT1 and CDELT2 have been used to
indicate the plate scale in degrees per pixel and CROTA2 has
been used to indicate the rotation of the horizontal and vertical axes
in degrees. Usually the axes rotate together and CROTA2 is
used to indicate that angle in degrees. The libwcs subroutines assume
if either CROTA1 or CROTA2 is non-zero, the axes are
rotated together by the non-zero value, i.e. both are assumed to have
the non-zero value.
The FITS WCS standard uses a rotation matrix, CD1_1, CD1_2,
CD2_1, and CD2_2 to indicate both rotation and scale,
allowing a more intuitive computation if the axes are skewed. This
model has been used by HST and IRAF for several years.
The 1996 proposed FITS WCS standard used PC001001, PC001002, PC002001,
and PC002002 to represent the rotation matrix but retained
CDELT1 and CDELT2 for the scale. It is also read
by this software, but should not be used for new WCS's.
I: "Representations of world coordinates in
FITS", Greisen, E.W. & Calabretta, M.R. (2002),
Astronomy & Astrophysics, 375, 1061-1075
II: "Representations of celestial coordinates in
FITS", Calabretta. M.R., & Greisen, E.W.,
(2002), Astronomy & Astrophysics, 375,
An image may have multiple WCS transformations in its header, and they
may be dependent on each other if they follow the convention developed by
Doug Mink and Steve Allen in a memo, "The WCSDEP Convention", available in
The IRAF TNX projection, in which a polynomial is used to correct
a tangent plane (TAN) projection, has been implemented in parallel with the
standard FITS WCS projections. This cannot yet be fit by IMWCS, but
all pixel to sky and sky to pixel coordinate conversions can be carried out.
The IRAF ZPX projection follows the the FITS conventions for a zenithal
polynomial projection (ZPN) but adds an additional two-dimensional polynomial
distortion term to the evaluation. It has been implemented in parallel
with the standard FITS WCS projections. It cannot yet be fit by IMWCS,
but all pixel to sky and sky to pixel coordinate conversions can be
This is simply a fit of 12 polynomial coefficients, 6 each in X and Y,
equivalent to the first 6 terms used by the Digitized Sky Survey. It gives
a better fit than a plane tangent projection when the optical path is more
complicated than a simple tangent plane can deal with. The FITS WCS
community is working out a standard polynomial model, but it does not
yet exist. The 6 terms for each axis are constant, x, y, x*x, y*y, and xy.
This convention provides a straight-forward means for storing distortion
information in FITS image headers. SIP was initially developed before the
launch of the Spitzer Space Telescope. Images from the Spitzer instruments
are distorted by a few percent relative to a regular sky grid. This
distortion, expressed as a function of pixel position, is well-represented
In order to get a rough idea of the position of objects on the sky
without going to the trouble of fitting a world coordinate system to an
image and to provide an initial guess when fitting a WCS, a nominal WCS
can be created out of keywords which are usually present in a telescope
image. It is reasonable (though maybe not accurate) to assume that the
telescope pointing direction given by RA and DEC keywords is at the center
of the image, the coordinates of which are NAXIS1/2,
NAXIS2/2. This gives us CRVAL1, CRVAL2, CRPIX1, and
CRPIX2. Assuming the rotation to
be zero, CROTA1 and CROTA2 are set to zero.
There is currently no standard for a plate scale keyword. libwcs
uses the SECPIX or PIXSCALE keyword to set CDELT1
and CDELT2, or sets CDELT1 and CDELT2 separately
using SECPIX1 and SECPIX2 or
PIXSCAL1 and PIXSCAL2
by converting from arcseconds per pixel to degrees per pixel. The
PLTSCALE keyword is sometimes present instead of SECPIX,
but it is currently unimplemented in libwcs because it has been used
as both arseconds per pixel and degrees per pixel.
Because a CCD image can be closely approximated by a plane tangent projection,
CTYPE1 is set to RA---TAN and CTYPE2 to DEC--TAN.
The NRAO or WCSLIB subroutines can then be used for pixel to sky and
sky to pixel coordinate conversion.
Some information about the coordinate system is often omitted from file headers.
An attempt has been made to adopt reasonable default values when something
is missing or set strangely. The EPOCH keyword is expected to
mean the equinox of the coordinates in the FITS tradition.
In header: In wcs structure:
EPOCH EQUINOX RADECSYS epoch equinox radecsys
1950 none none date-obs 1950 FK4
2000 none none date-obs 2000 FK5
date<1980 none none date-obs date FK4
date>1980 none none date-obs date FK5
none none none date-obs 2000 FK5
none 1950 none date-obs 1950 FK4
none 2000 none date-obs 2000 FK5
0 none none date-obs 1950 FK4
0 1950 none date-obs 1950 FK4
0 2000 none date-obs 2000 FK5
This NASA-funded collection of 1479 compressed images which cover the
entire sky became a major astronomical tool as soon as it was released by
the Space Telescope Science Institute. The pixel to sky coordinate
transformation is a third-order polynomial with cross-terms; it uses
13 coefficient keywords per axis and additional keywords as well.
libwcs uses platepos and platepix subroutines adapted from code and
equations included with the 101 CDROMs which contain this data set.
The plate (not image!) center is given by the keywords PLTRAH, PLTRAM,
PLTRAS, PLTDECSN, PLTDECD, PLTDECM, and PLTDECS. The presence of the
first of these, PLTRAH, is used as an indication that this WCS is
present in an image header.
Last updated 19 May 2014 by