Use CDi_j keywords to represent pixel scaling, rotation, etc?
If the attribute has a non-zero value then the transformation is represented by a set of CDi_j keywords
representing a square matrix (where "
i"
is the index of an intermediate world coordinate axis and "
j"
is the index of a pixel axis). If the attribute has a zero value the transformation is represented by a set
of PCi_j keywords (which also represent a square matrix) together with a corresponding set of CDELTi
keywords representing the axis scalings. See FITS-WCS paper II "
Representation of Celestial
Coordinates in FITS"
by M. Calabretta & E.W. Greisen, for a complete description of these two
schemes.
The default value of the CDMatrix attribute is determined by the contents of the FitsChan at the time the attribute is accessed. If the FitsChan contains any CDi_j keywords then the default value is non-zero. Otherwise it is zero. Note, reading a FrameSet from a FitsChan will in general consume any CDi_j keywords present in the FitsChan. Thus the default value for CDMatrix following a read will usually be zero, even if the FitsChan originally contained some CDi_j keywords. This behaviour is similar to that of the Encoding attribute, the default value for which is determined by the contents of the FitsChan at the time the attribute is accessed. If you wish to retain the original value of the CDMatrix attribute (that is, the value before reading the FrameSet) then you should enquire the default value before doing the read, and then set that value explicitly.