[fitsbits] Four WCS announcements
Mark Calabretta
Mark.Calabretta at atnf.CSIRO.AU
Tue Feb 10 23:13:18 EST 2004
Greetings,
The following are now available from http://www.atnf.csiro.au/~mcalabre:
1) Sample WCS FITS data files for each projection in Paper II.
2) Errata for Papers I & II.
3) Miscellaneous mathematical notes for Paper II.
4) WCSLIB 3.4.
Regarding (2), the main erratum is that the default value for LONPOLE
should have phi_0 added, as discussed at ADASS'03. Since phi_0 is
almost invariably zero this should not present a problem.
Regarding (4), production of the sample WCS images uncovered a number
of bugs, mainly in celset() relating to special values of the spherical
transformation parameters (phi_0, theta_0, alpha_0, delta_0, phi_p).
These special cases are correctly specified in Paper II but were not
always correctly implemented in celset(). A new interactive test
program, tcel2, now tests these conditions thoroughly. It is also a
useful tool for understanding the effect of changing the transformation
parameters. The special case transformations are derived and recorded
in tabular form in the miscellaneous mathematical notes.
Change notes for WCSLIB 3.4 are appended.
Mark Calabretta
ATNF
>>>
WCSLIB version 3.4 (2004/02/11)
-------------------------------
* In aitx2s(), apply the boundary condition 0.5 <= Z^2 <= 1 given after
Eq. (109) in WCS Paper II to detect outlying pixels.
* Fixed several special-case bugs in celset():
1) For theta_0 = 90, in substituting the default value for phi_p (LONPOLE),
a) for the special case when delta_0 = 90, celset() provided the wrong
value (180 instead of 0),
b) celset() neglected to add phi_0 (normally 0).
2) For theta_0 != 90,
a) for the special case when delta_0 = -90, celset() incorrectly computed
delta_p (as theta_0 instead of -theta_0),
b) for the special case when delta_p = +90 (or -90), celset() neglected
to subtract (or add) phi_0 (normally 0).
3) For |delta_0| = 90, celset() incorrectly allowed the particular, invalid,
value of phi_p (LONPOLE) that put the other pole at the fiducial point.
4) For theta_0 = 0, delta_0 = 0 LATPOLE determines delta_p completely. For
LATPOLE > 90 celset() now sets delta_p to 90, and for LATPOLE < -90 it
sets it to -90.
* Additional refinements in celset():
1) cel->ref[2] is normalized in the range [-180,180].
2) Account for rounding error in the computation of delta_p.
* sphx2s() and sphs2x() incorrectly handled the "change in the origin of
longitude" special case that arises when delta_p = -90, in the even more
restrictive case where |theta| = 90 also; it applied Eq. (3) instead of
Eq. (4) of Paper II.
* Added a new test program, tcel2.c, to exercise celset() more thoroughly.
Renamed the original tcel.c to tcel1.c and modified the Makefile to suit.
More information about the fitsbits
mailing list