Classify hybrid (annular-total) eclipses; add NASA 2031 Nov 14 hybrid reference (item 14)#15
Merged
Merged
Conversation
… the track Item 14: enumerate_real_solar_eclipses previously labelled every central eclipse by the sign of the near-side core radius at greatest eclipse only, so hybrid eclipses were mislabelled total (or annular). The classifier now samples the signed core radius along the whole central track (+/-3 h at 120 s steps via iter_real_track); if it takes both signs the eclipse is labelled "hybrid", matching NASA/GSFC catalog conventions. Adds the NASA/GSFC 2031 Nov 14 hybrid eclipse (Saros 143) as a validation reference, with all published values quoted verbatim from the GSFC Besselian-elements page. Regression tests pin 2031-11-14 as hybrid and guard 2026-08-12 (total) and 2027-02-06 (annular) against relabelling.
This was referenced Jul 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Work-plan item 14.
enumerate_real_solar_eclipseslabelled every central eclipse by the sign of the near-side core radius at greatest eclipse only, so genuinely hybrid eclipses were mislabelledtotal(orannular). The new_classify_central_eclipsehelper samples the signed core radius along the whole central track (±3 h at 120 s steps viaiter_real_track, off-ellipsoid samples skipped); if the radius takes both signs anywhere on the track the eclipse is labelledhybrid, matching NASA/GSFC catalog conventions. Otherwise the label falls back to the previous sign-at-greatest rule, unchanged.Adds the NASA/GSFC 2031 Nov 14 hybrid eclipse (Saros 143, member 24/72) as a validation reference, appended at the end of
NASA_GSFC_REFERENCESto keep the tuple chronological. All values are quoted verbatim from the GSFC Besselian-elements page: greatest eclipse 21:07:30.2 TDT (= 21:06:12.3 UT), ΔT 77.9 s, 0°38.0′S 137°37.8′W, central duration 01m08.3s. The existing parametrized tests intests/test_known_eclipses.pyautomatically pick this reference up, so DE440s timing (<60 s TT), greatest-eclipse position (<25 km), and thehybridtype label are all CI-enforced.New
tests/test_hybrid_classification.py:test_2031_nov_14_is_classified_hybrid— fails on main (main labels ittotal).totaland 2027-02-06 staysannular(no relabelling of unambiguous events).Scientific impact
Eclipse type labels move for genuinely hybrid rows in the real-Moon catalog (timing, coordinates, and geometry are untouched — the classifier only reads additional samples). Two caveats for review:
eclipse_typecolumn ofreal_moon_eclipses.csvagainst a pre-change run to see exactly which rows move; any downstream logic that filters ontotal/annularlabels would see those rows reclassified.Runtime: each central eclipse now costs up to ~180 extra shadow evaluations (one per 120 s track sample, short-circuiting once both signs are seen). Adding the 2031 reference also widens the validation enumeration window from 2026–2028 to 2026–2031, so the validation stage and
tests/test_known_eclipses.pytake proportionally longer.Checklist
test_2031_nov_14_is_classified_hybrid).Note for merge ordering: this PR appends to the end of
NASA_GSFC_REFERENCES; the item-17 PR inserts at the beginning and both keep the tuple chronological, so the two merge cleanly in either order.