[daip] CLCOR source position rounding bug?
Walter Brisken
wbrisken at aoc.nrao.edu
Mon Jun 28 00:06:59 EDT 2004
For a pulsar astrometry project I'm applying source position updates to
those calibrators with recently improved positions to simplify the
accounting of true positions. Based on some recent tests, I'm concerned
about some internal rounding within CLCOR, but only in some circumstances
that I cannot understand.
I have explored the effect on the first two epochs of an 8 epoch data set.
The data are mostly similar. Epoch 2 is the one showing behavior that is
quite idicative of rounding, but Epoch 1 (which behaves like epochs 3
throuh 8) does not.
I discovered the problem when using DBCON to concatenate databases from
two epochs. A warning suggested that the coordinates differed. I then
began investigating by looking at the SU table. Note that tbout is needed
to print the source coordinates to sufficient precision. Since the effect
is the same whether UV data exists or not, I used tasav to duplicate the
database sans UV data to minimize the amount of data. Note that I've only
investigated the SU table issue. I'm not sure if the changes to the CL
correspond to the intended or the actual shifts reported in the SU table.
I made 5 copies of the TASAV "database" for each of epoch 1 and 2. I used
CLCOR / ANTP with clcorprm(5) and (6) each set to 0.00001, 0.001, 1, 10
(arcsec) and saved the resultant SU table for checking. For each, I
extracted RAEPO and DECEPO and computed the difference in picture plane
arcseconds between the new coordinates and original coordinates. For
epoch 1, the results differed from the desired shift by 20%, but this has
been ascribed to the use of apparent coordinates and is not of concern
right now. Note that even at the 10^-7 arcsecond (or 10^-13 of the
absolute angle) level the shift is linear in the input value with no signs
of rounding.
For epoch 2, a noise of about 10^-7 of the absolute angle is introduced (a
value possibly consistent with the use of a 32 bit floating point
somewhere internally). Linearity is not observed until the 1 arcsec level
is reached. The tables of numbers follow.
I wonder if at some place in the code, a conditional is executed (perhaps
to subtract 2pi from an angle???) with 32 bit floats.
If looking at the particular datasets would be of use, you can find them
on my computer (parallax) aipsid 2179, disc 8, files epoch1.* and epoch2.*
The source name is J2052+3635 .
-Walter
Epoch 1 (normal)
Table RA (deg) Dec (deg) Delta RA (arcsec) Delta Dec (arcsec)
tasav.su: 3.132168958166667E+02 3.659313894722222E+01 0 0
10muas.su: 3.132168958201270E+02 3.659313894999956E+01 0.0000125 0.00000803
1mas.su: 3.132168961626927E+02 3.659313922495799E+01 0.001245 0.0008027
1asec.su: 3.132172418426647E+02 3.659341668299719E+01 1.24569 0.8027674
10asec.su: 3.132203560766177E+02 3.659591630500037E+01 12.45693 8.0276746
Epoch 2 (weird)
Table RA (deg) Dec (deg) Delta RA (arcsec) Delta Dec (arcsec)
tasav.su: 3.132168958166667E+02 3.659313894722222E+01 0 0
10muas.su: 3.132168240895452E+02 3.659313071063108E+01 -0.2073 -0.02965
1mas.su: 3.132168244321204E+02 3.659313098554775E+01 -0.2063 -0.02866
1asec.su: 3.132171701216848E+02 3.659340840144551E+01 0.79 0.9700
10asec.su: 3.132202844419903E+02 3.659590764379131E+01 9.794 9.9673
More information about the Daip
mailing list