• Add v0.16.0: twilight dawn/dusk, lunar phase, planet apparent magnitude

    rsp2k released this 2026-02-26 19:42:01 +00:00 | 48 commits to main since this release

    Twilight: 6 functions (civil/nautical/astronomical × dawn/dusk) reusing
    the existing find_next_crossing() bisection search with Sun depression
    angle thresholds (-6°, -12°, -18°). Returns NULL for polar regions
    where the threshold is never reached.

    Lunar phase: 4 functions computing Sun-Earth-Moon geometry from VSOP87

    • ELP2000-82B. Phase angle [0,360) via elongation + cross product
      z-component for waxing/waning discrimination. 8 named phases in 45°
      bins. Moon age approximated from phase angle and mean synodic month.

    Planet magnitude: Mallama & Hilton (2018) polynomial model with VSOP87
    heliocentric distances and phase angle via law of cosines. All 7
    planets (Mercury-Neptune, excluding Earth). Saturn ring tilt not
    modeled.

    151 → 162 SQL objects. 26 → 27 test suites, all passing.

    Downloads