Choice of LONPOLE/LATPOLE

When writing a FrameSetFrameSet to a FitsChanFitsChan, the choice of LONPOLE and LATPOLE values is determined as follows:

  1. If the projection represented by the WcsMapWcsMap is azimuthal, then any values set for attributes “PVi_3” and “PVi_4” (where “i” is the index of the longitude axis) within the WcsMap are used as the LONPOLE and LATPOLE values. Reading a FrameSet from a FITS-WCS header results in the original LONPOLE and LATPOLE values being stored within a WcsMap within the FrameSet. Consequently, if a FrameSet is read from a FITS-WCS header and it is subsequently written out to a new FITS-WCS header, the original LONPOLE and LATPOLE values will usually be used in the new header (the exception being if the WcsMap has been explicitly modified before being written out again). Any extra rotation of the sky is absorbed into the CDi_j or PCi_j matrix (this is possible only if the projection is azimuthal).

  2. If the projection represented by the WcsMap is azimuthal but no values have been set for the “PVi_3” and “PVi_4” attributes within the WcsMap, then the default LONPOLE and LATPOLE values are used. This results in no LONPOLE or LATPOLE keywords being stored in the header since default values are never stored. Any extra rotation of the sky is absorbed into the CDi_j or PCi_j matrix (this is possible only if the projection is azimuthal).

  3. If the projection represented by the WcsMap is not azimuthal, then the values of LONPOLE and LATPOLE are found by transforming the coordinates of the celestial north pole (i.e longitude zero, latitude $+\pi/2$) into native spherical coordinates using the inverse of the MappingMapping which follows the WcsMap.