**2.1.1. Basic formalism**

For all coordinate types, the first step is a linear transformation
applied via matrix multiplication of the vector of *pixel
coordinate* elements, *p*_{j}:

(1) |

where *r*_{j} are the pixel coordinate elements of the
reference point
given by the `CRPIX j`. Henceforth we will consistently
use

The *m*_{ij} matrix is a non-singular square matrix of
dimension *N* × *N*. In the first instance, *N* is
given by the `NAXIS`
keyword value, but this will be generalized with the introduction of
the `WCSAXES` keyword in Sect. 2.2
so that the dimension of the world coordinates need not match that of
the data array.

The elements, *q*_{i}, of the resulting *intermediate pixel
coordinate* vector are offsets, in dimensionless pixel units, from the
reference point along axes coincident with those of the *intermediate
world coordinates*. Thus the conversion of *q*_{i} to
the corresponding intermediate world coordinate element,
*x*_{i}, is a simple scale:

(2) |

We defer discussion of the encoding of *m*_{ij} and
*s*_{i} as FITS header cards to
Sect. 2.1.2.

The third step in the process of computing world coordinates depends
on the `CTYPE`*i*. For simple linear axes, the
*x*_{i} are interpreted
as offsets to be added to the coordinate value at the reference point
given by `CRVAL i`. Otherwise, the

Non-linear coordinate systems will be signaled by `CTYPE i`
in "4-3"
form: the first four characters specify the coordinate type, the fifth
character is a "

Particular coordinate types and algorithm codes must be established by
convention. Paper II constructs the framework for celestial
coordinate systems, and Paper III does so for spectral axes
(frequency-wavelength-velocity). `CTYPE i` values that are
not in
"4-3" form should be interpreted as linear axes. It is possible that
there may be old FITS files with a linear axis for which