topocentric function
Topocentric position using the rigorous method (40.2, 40.3).
ra, dec geocentric equatorial coordinates (radians).
delta distance in AU.
rhoSPhi, rhoCPhi parallax constants (see globe).
lon observer longitude (radians).
h hour angle (radians).
sinPi sine of equatorial horizontal parallax.
Implementation
({double ra, double dec}) topocentric(
double ra, double dec, double delta,
double rhoSPhi, double rhoCPhi,
double h, double sinPi) {
final sH = math.sin(h);
final cH = math.cos(h);
final sDec = math.sin(dec);
final cDec = math.cos(dec);
final dAlpha = math.atan2(
-rhoCPhi * sinPi * sH, cDec - rhoCPhi * sinPi * cH);
final newRa = ra + dAlpha;
final newDec = math.atan2(
(sDec - rhoSPhi * sinPi) * math.cos(dAlpha),
cDec - rhoCPhi * sinPi * cH);
return (ra: newRa, dec: newDec);
}