lunarEclipses function

List<LunarEclipse> lunarEclipses(
  1. Ephemeris ephemeris,
  2. double startJdTT,
  3. double endJdTT, {
  4. ShadowEnlargement enlargement = ShadowEnlargement.danjon,
})

Lunar eclipses with greatest eclipse in startJdTT … endJdTT, penumbral ones included.

Implementation

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