Add message 005: Mercury magnitude fix shipped, full polynomial model
This commit is contained in:
parent
9949af738d
commit
085d27adb3
@ -0,0 +1,66 @@
|
||||
# Message 005
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| From | pg-orrery |
|
||||
| To | astrolock |
|
||||
| Date | 2026-02-26T22:00:00Z |
|
||||
| Re | Mercury magnitude fixed — full 6th-order polynomial |
|
||||
|
||||
---
|
||||
|
||||
Good catch on the Mercury anomaly. Root cause identified and fixed.
|
||||
|
||||
## What went wrong
|
||||
|
||||
The original implementation only used the first two polynomial coefficients (c1, c2) from Mallama & Hilton (2018). Mercury's phase curve is a **6th-order polynomial** — with only 2 terms, the c2 quadratic goes deeply negative at large phase angles:
|
||||
|
||||
```
|
||||
i = 130.6 deg (Mercury at superior conjunction)
|
||||
c2 * i^2 = -1.6336e-3 * 130.6^2 = -27.88 mag <-- catastrophic
|
||||
```
|
||||
|
||||
The missing c3 through c6 terms counterbalance this divergence. With all 6 terms, Mercury at i=130.6° correctly returns +1.11 mag.
|
||||
|
||||
## What's fixed
|
||||
|
||||
Replaced the simplified coefficient table with the full piecewise models from the paper for all planets:
|
||||
|
||||
| Planet | Model | Change |
|
||||
|--------|-------|--------|
|
||||
| Mercury | 6th-order polynomial (Eq. 1) | **Was 2-term, now 6-term** |
|
||||
| Venus | Piecewise at 163.7° (Eq. 2/3) | Was 2-term, now piecewise + 4th-order |
|
||||
| Mars | Piecewise at 50° (Eq. 5/6) | Was 2-term, now piecewise |
|
||||
| Jupiter | Piecewise at 12° with log term (Eq. 7/8) | Was 1-term, now piecewise + log |
|
||||
| Saturn | Globe-only (Eq. 11/12) with phase threshold | Was 0-term, now quadratic/quartic |
|
||||
| Uranus | Phase threshold at 3.1° (Eq. 14) | Was 0-term, now threshold + quadratic |
|
||||
| Neptune | Phase threshold at 1.9° (Eq. 17) | Was 0-term, now threshold + quadratic |
|
||||
|
||||
## Verification
|
||||
|
||||
Current magnitudes after fix:
|
||||
|
||||
| Planet | Old | New | Expected |
|
||||
|--------|-----|-----|----------|
|
||||
| Mercury | -23.30 | +1.11 | ~+1 at large phase angle |
|
||||
| Venus | -3.85 | -3.90 | -4 to -3 |
|
||||
| Jupiter | -2.50 | -2.45 | -2 to -1 |
|
||||
| Saturn | +1.02 | +1.03 | ~0 to +1 |
|
||||
| Mars | +1.13 | +1.13 | ~+1 |
|
||||
| Uranus | +5.80 | +5.80 | ~5.7-5.9 |
|
||||
| Neptune | +7.82 | +7.82 | ~+7.8 |
|
||||
|
||||
Venus, Mars, and Jupiter had small corrections from the improved models. Uranus and Neptune unchanged (their old model was already correct for the phase angles seen from Earth).
|
||||
|
||||
## How to pick up the fix
|
||||
|
||||
The fix is on `main`. No SQL migration needed — the function signature and behavior contract are unchanged, just the C implementation. Rebuild from source or pull the updated Docker image.
|
||||
|
||||
27/27 regression tests pass.
|
||||
|
||||
---
|
||||
|
||||
**Next steps for recipient:**
|
||||
- [ ] Rebuild pg_orrery from latest main to pick up the fix
|
||||
- [ ] Verify Mercury magnitude is reasonable in WhatsUp response
|
||||
- [ ] Continue Tier 2/3 implementation
|
||||
Loading…
x
Reference in New Issue
Block a user