Topocentric libration #15

Closed
opened 2026-10-23 20:43:44 -05:00 by jeff · 1 comment
Owner

Part of #10

Parent

#10

What to build

The Moon's topocentric libration: moon.libration.topocentric, taking an instant and an observer and returning the same libration type as the geocentric one. It feeds the topocentric ecliptic longitude and latitude to the same selenographic reduction the geocentric libration uses, and the topocentric right ascension to the position angle of the axis; Meeus's approximate corrections are not used.

Acceptance criteria

  • Ch. 53's topocentric example, if the book has one, passes to the printed precision
  • The topocentric sub-observer point and north pole angle agree with Horizons from Palomar, Tromsø and Cerro Paranal, with the known 0.0224° lunar frame tilt explained rather than absorbed
  • Properties: the difference from the geocentric libration stays within about a degree; the optical and physical parts sum to the total; non-finite instants and out-of-range latitudes give NaN
  • A fuzz target, seeded at the poles and the antimeridian
  • Every new public declaration has a doc comment giving units, time scale and reference frame, and citing the chapter and equation of Meeus it implements
  • Every Horizons tolerance is set only after measuring, with the worst error recorded beside it
  • Every source used is in the README's references cited
  • zig build test, zig build check, zig fmt --exclude zig-pkg --check . and reuse lint pass

Blocked by

Part of #10 ## Parent #10 ## What to build The Moon's **topocentric libration**: `moon.libration.topocentric`, taking an instant and an observer and returning the same libration type as the geocentric one. It feeds the topocentric ecliptic longitude and latitude to the same selenographic reduction the geocentric libration uses, and the topocentric right ascension to the **position angle of the axis**; Meeus's approximate corrections are not used. ## Acceptance criteria - [ ] Ch. 53's topocentric example, if the book has one, passes to the printed precision - [ ] The topocentric sub-observer point and north pole angle agree with Horizons from Palomar, Tromsø and Cerro Paranal, with the known 0.0224° lunar frame tilt explained rather than absorbed - [ ] Properties: the difference from the geocentric libration stays within about a degree; the optical and physical parts sum to the total; non-finite instants and out-of-range latitudes give NaN - [ ] A fuzz target, seeded at the poles and the antimeridian - [ ] Every new public declaration has a doc comment giving units, time scale and reference frame, and citing the chapter and equation of Meeus it implements - [ ] Every Horizons tolerance is set only after measuring, with the worst error recorded beside it - [ ] Every source used is in the README's references cited - [ ] `zig build test`, `zig build check`, `zig fmt --exclude zig-pkg --check .` and `reuse lint` pass ## Blocked by - #12
jeff self-assigned this 2026-10-23 21:46:04 -05:00
Author
Owner

Done in 1f216fe. Meeus's direct calculation. Against Horizons from the three sites up to the last measured ΔT: 0.0082° in longitude, 0.0081° in P, 0.0049° in latitude with the known 0.0224° frame tilt taken out (0.0272° with it). After 2026 the ΔT prediction adds up to 0.0133°. Meeus has no worked example of it.

Done in 1f216fe. Meeus's direct calculation. Against Horizons from the three sites up to the last measured ΔT: 0.0082° in longitude, 0.0081° in P, 0.0049° in latitude with the known 0.0224° frame tilt taken out (0.0272° with it). After 2026 the ΔT prediction adds up to 0.0133°. Meeus has no worked example of it.
jeff closed this issue 2026-10-23 21:51:35 -05:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
jeff/zig-astro#15
No description provided.