aberration function
Aberration corrections for equatorial coordinates.
Requires solar longitude and eccentricity. These are passed as parameters to avoid circular dependency on solar module.
ra, dec in radians.
sunLon true geometric longitude of the Sun (radians).
eccentricity of Earth's orbit.
t centuries from J2000.
Implementation
({double dAlpha, double dDelta}) aberration(
double ra, double dec,
double sunLon, double eccentricity, double t) {
final eps = nut.meanObliquity(julianYearToJDE(2000 + t * 100));
final pi = perihelionEarth(t);
final sAlpha = math.sin(ra);
final cAlpha = math.cos(ra);
final sDec = math.sin(dec);
final cDec = math.cos(dec);
final sS = math.sin(sunLon);
final cS = math.cos(sunLon);
final sPi = math.sin(pi);
final cPi = math.cos(pi);
final cEps = math.cos(eps);
final tEps = math.tan(eps);
final q1 = cAlpha * cEps;
return (
dAlpha: kappa *
(eccentricity * (q1 * cPi + sAlpha * sPi) -
(q1 * cS + sAlpha * sS)) /
cDec,
dDelta: kappa *
(eccentricity *
(cPi * (cEps * (tEps * cDec - sAlpha * sDec)) +
sPi * cAlpha * sDec) -
(cS * (cEps * (tEps * cDec - sAlpha * sDec)) +
sS * cAlpha * sDec)),
);
}