solarEclipses function

List<SolarEclipse> solarEclipses(
  1. Ephemeris ephemeris,
  2. double startJdTT,
  3. double endJdTT
)

Solar eclipses with greatest eclipse in startJdTT … endJdTT.

Implementation

List<SolarEclipse> solarEclipses(
  Ephemeris ephemeris,
  double startJdTT,
  double endJdTT,
) {
  final result = <SolarEclipse>[];
  for (final p in lunarPhases(ephemeris, startJdTT - 1, endJdTT + 1)) {
    if (p.phase != MoonPhase.newMoon) continue;
    final beta = geocentricEcliptic(ephemeris, Naif.moon, p.jdTT).latitude;
    if (beta.abs() > _latitudeLimit) continue;
    final e = _solarEclipse(ephemeris, p.jdTT);
    if (e != null && e.jdTT >= startJdTT && e.jdTT <= endJdTT) result.add(e);
  }
  return result;
}