eclipticAberration function

({double dLat, double dLon}) eclipticAberration(
  1. double lon,
  2. double lat,
  3. double jde
)

Aberration corrections for ecliptic coordinates.

Returns (dLon, dLat) corrections in radians. Formula 23.2, p. 151.

Implementation

({double dLon, double dLat}) eclipticAberration(
    double lon, double lat, double jde) {
  final t = j2000Century(jde);
  final sun = solar.trueSun(t);
  final e = solar.eccentricity(t);
  final pi = perihelionEarth(t);
  final sBeta = math.sin(lat);
  final cBeta = math.cos(lat);
  final ssLon = math.sin(sun.lon - lon);
  final csLon = math.cos(sun.lon - lon);
  final sinPiLon = math.sin(pi - lon);
  final cosPiLon = math.cos(pi - lon);
  return (
    dLon: kappa * (e * cosPiLon - csLon) / cBeta,
    dLat: -kappa * sBeta * (ssLon - e * sinPiLon),
  );
}