Sun position
Sun position algorithm
Stellar reduction accuracy

Several tests were performed to compare the calculations of the routines in star.h / star.c with those given in examples in section B of the Astronomical Almanac (various years).

The 1987 Astronomical Almanac uses a fictitious star for its example calculations of stellar reduction. The catalog position of the star (given on page B40 of the Almanac) is

14 39 36.087, -60°50′07.14″, J2000,, -49.486 s/cy, +69.60″/cy, 0.752″, -22.2 km/s

The table below shows the results of converting this position to apparent coordinates (at the date shown in the table heading), using various approximations, and compared with the results from the Almanac itself.

Apparent coords at 1987-01-01 0h TT RA Dec
Almanac page B41 14:38:40.164 -60°46′44.82″
Confirmation (see 1. below) 14:38:40.1641 -60°46′44.822″
No light deflection (see 2.) 14:38:40.1652 -60°46′44.820″
Simpler nutation (see 3.) 14:38:40.1639 -60°46′44.820″
IAU 2000 prec&nut 14:38:40.1632 -60°46′44.829″
Approx Earth (see 4.) 14:38:40.1564 -60°46′44.843″
All of the above (see 5.) 14:38:40.1572 -60°46′44.841″

The simplest calculation (see 5. below) gives a position error in RA of 0.0069 s and in Dec of 0.019″, giving a total angular position error on the sky of 0.054″.

The same star appears on page B40 of the 1990 Astronomical Almanac. Likewise, the table below compares the calculations here with the results from the Almanac itself.

Apparent coords at 1990-01-01 0h TT RA Dec
Almanac page B41 14:38:54.112 -60°47′32.78″
Confirmation (see 1. below) 14:38:54.1120 -60°47′32.780″
No light deflection (see 2.) 14:38:54.1131 -60°47′32.778″
Simpler nutation (see 3.) 14:38:54.1119 -60°47′32.779″
IAU2000 prec&nut 14:39:54.1109 -60°47′32.784″
Approx Earth (see 4.) 14:38:54.1046 -60°47′32.790″
All of the above (see 5.) 14:38:54.1056 -60°47′32.789″

The simple calculation (see 5. below) gives a position error in RA of 0.0064 s and in Dec of 0.010″, giving a total angular position error on the sky of 0.048″.

The 2007 Astronomical Almanac introduced a very slightly different fictitious star for its example calculations on page B68. This one has a catalog position of

14 39 36.4958, -60 50 02.309 ICRS, J2000.0, -3678.06 mas/yr, 482.87 mas/yr, 0.742″, -21.6 km/s

Again, the table below compares the calculations here with the results from the Almanac itself.

Apparent coords at 2007-01-01 0h TT RA Dec
Almanac page B68 14:40:03.4343 -60°51′37.770″
Nutation IAU2000B (see 6. below) 14:40:03.4342 -60°51′37.770″
No light deflection (see 7.) 14:40:03.4353 -60°51′37.769″
Approx Earth (see 8.) 14:40:03.4265 -60°51′37.784″
All of the above (see 9.) 14:40:03.4276 -60°51′37.782″
Nutation IAU1980 with precision 0 14:40:03.4400 -60°51′37.784″
All above and Nutation 1980 14:40:03.4334 -60°51′37.796″
All above and simpler Nutation 1980 14:40:03.4336 -60°51′37.796″

The simple calculation (see 9. below) gives a position error in RA of 0.0067 s and in Dec of 0.012″, giving a total angular position error on the sky of 0.051″. Or if we use 1980 nutation, 0.0009s and 0.026″,

These three results show very small position errors.

Test conditions

  1. Confirmation: sky1_nutationIAU1980() called with precision set to 0, vectors Eb, Ėb, and Sb taken from the relevant Almanac, page B39, and star_lightDeflection() used to calculate aberration etc.
  2. Ignore light deflection. That is, conditions as for 1, but the much simpler routine star_annAberr() called instead of star_lightDeflection().
  3. Simpler nutation. Conditions as for 1, but sky1_nutationIAU1980() called with precision set to 4.
  4. Approx Earth. Conditions as for 1, but the vectors Eb, Ėb, and Sb are calculated by the very approximate routine star_earth()
  5. All simplifications: sky1_nutationIAU1980() called with precision set to 4, vectors Eb, Ėb, and Sb obtained approximately from star_earth(), and star_annAberr() used to calculate annual aberration
  6. Approximate confirmation: astc2_nutationIAU2000B() called to calculate nutation, vectors Eb, Ėb, and Sb taken from the 2007 Almanac page B68, and star_lightDeflection() used to calculate aberration etc.
  7. Ignore light deflection. That is, conditions as for 6, but the much simpler routine star_annAberr() called instead of star_lightDeflection().
  8. Approx Earth. Conditions as for 6, but the vectors Eb, Ėb, and Sb are calculated by the very approximate routine star_earth()
  9. All simplifications: astc2_nutationIAU2000B() called, vectors Eb, Ėb, and Sb obtained approximately from star_earth(), and star_annAberr() used to calculate annual aberration