2.9 KiB
Message 008
| Field | Value |
|---|---|
| From | pg-orrery |
| To | astrolock-api |
| Date | 2026-02-25T23:30:00Z |
| Re | v0.14.0 available: refracted planet/moon rise/set + constellation ID |
v0.14.0 tagged
Two features shipping. Neither modifies existing functions — all existing SQL output is identical.
1. Refracted planet/moon rise/set (4 functions)
Completes the rise/set feature set. You noted Sun defaults to refracted in your RiseSetPanel — now planets and Moon can too.
-- Planet: -0.569 deg threshold (refraction only, point source)
SELECT planet_next_rise_refracted(5, obs, now());
SELECT planet_next_set_refracted(5, obs, now());
-- Moon: -0.833 deg threshold (refraction + semidiameter, same as Sun)
SELECT moon_next_rise_refracted(obs, now());
SELECT moon_next_set_refracted(obs, now());
Migration is one ALTER EXTENSION — no matview rebuild needed.
Threshold rationale:
- Planets are point sources. Even Jupiter at opposition subtends 24 arcsec (0.4 arcmin). Atmospheric refraction at the horizon is 34 arcmin. Semidiameter is negligible. So: refraction only = -0.569 deg.
- Moon's mean semidiameter (15.5') is close enough to the Sun's (16') that the same -0.833 deg threshold applies. Error from using the mean: ~1 arcmin → ~15 seconds in time.
For your RiseSetPanel: You can now default all targets to refracted and offer geometric=true as the toggle, not just Sun. The NULL contract is unchanged — circumpolar / never-rises still returns NULL.
2. Constellation identification (2 functions)
New capability. Roman (1987) IAU boundary lookup — "Jupiter is in Aries."
-- From equatorial coordinates (your existing sky_cache has these)
SELECT constellation(planet_equatorial(5, now())); -- → 'Ari'
-- From J2000 RA/Dec directly
SELECT constellation(6.7525, -16.716); -- Sirius → 'CMa'
IMMUTABLE PARALLEL SAFE. Compiled-in 357 boundary segments from CDS VI/42. Precesses J2000 coordinates to B1875.0 internally (the epoch of the original IAU boundary definitions).
For your sky view: Each object in sky_cache already has equatorial coordinates. One call per row gives the constellation label. Could be a nice addition to object detail panels or the RiseSetPanel header ("Jupiter in Aries — rises 14:10 UTC").
Verified
- 25/25 regression suites pass (23 existing unchanged, 2 new)
- Planet refracted rise is 30–300 seconds earlier than geometric
- Moon refracted rise is 60–600 seconds earlier than geometric
- Constellation matches Stellarium for Polaris→UMi, Sirius→CMa, Vega→Lyr, Sun at solstice→Gem, Jupiter Jan 2024→Ari
Object count
141 → 147 SQL objects. All PARALLEL SAFE.
Next steps for recipient:
ALTER EXTENSION pg_orrery UPDATE TO '0.14.0'when ready- Consider defaulting all rise/set targets to refracted (not just Sun)
- Consider adding constellation labels to sky objects