CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
astro::rise_set::moon Namespace Reference

Lunar conventions and entry points: the Ch.15 standard altitude and the UT-day (almanac-style) API wired to the ELP2000-82B ephemeris. More...

Functions

auto horizontal_parallax (const double jde_tt) -> toolbox::AngleRad
 The Moon's equatorial horizontal parallax Π at one instant.
auto h0 (const toolbox::AngleRad &Π, const astro::earth::refraction::Params &p={}) -> toolbox::AngleDeg
 The standard altitude of the Moon's center at rise/set: 0.7275·Π − refraction.
auto calculate (const std::chrono::year_month_day &ymd_ut1, const GeoLocation &location, const astro::earth::refraction::Params &p={}) -> Result
 Compute moonrise, lunar transit, and moonset for one UT1 calendar day.

Variables

constexpr auto apparent_equatorial
 The Moon's position provider: apparent geocentric equatorial coordinates at one instant (TT) — an alias of astro::moon::equatorial_coord::apparent, the lunar counterpart of the solar provider.

Detailed Description

Lunar conventions and entry points: the Ch.15 standard altitude and the UT-day (almanac-style) API wired to the ELP2000-82B ephemeris.

Function Documentation

◆ calculate()

auto astro::rise_set::moon::calculate ( const std::chrono::year_month_day & ymd_ut1,
const GeoLocation & location,
const astro::earth::refraction::Params & p = {} )->Result
inlinenodiscard

Compute moonrise, lunar transit, and moonset for one UT1 calendar day.

Parameters
ymd_ut1The date, interpreted on the UT1 scale (callers handle time zones).
locationThe observer's location.
pThe atmospheric refraction parameters for the h₀ convention (defaults: standard 34′).
Returns
The events inside the UT day and the polar topology. Any instant may be absent — with lunar transits ~24.84 h apart, a UT date without a moonrise (or without a transit) is routine, and that absence must not be read as a polar verdict; check polar for the topology. On double-event days (the Moon can rise or set twice in one UT day at high latitudes near a standstill) the LATER event is reported; see calculate_day's note.
Exceptions
std::invalid_argumentIf ymd_ut1 is invalid, location is out of range, or p is invalid (see refraction::at_horizon), or a time conversion leaves its supported years.
std::runtime_errorFor a refraction failure at the h₀ stage (see h0's @throw — e.g. SAEMUNDSSON non-convergence), or numerical failures inside calculate_day (see its @throw).
Note
h₀ is evaluated with Π taken at mid-day (see h0's note for the error budget).
The window is the UT1 calendar day, matching almanac (e.g. USNO rstt/oneday at tz=0) cell semantics — unlike the solar API, which is transit-centered.

◆ h0()

auto astro::rise_set::moon::h0 ( const toolbox::AngleRad & Π,
const astro::earth::refraction::Params & p = {} )->toolbox::AngleDeg
inlinenodiscard

The standard altitude of the Moon's center at rise/set: 0.7275·Π − refraction.

Parameters
ΠThe equatorial horizontal parallax at (approximately) the event time. A per-day value is sufficient: Π's intra-day drift moves rise/set instants by seconds at most, invisible to the minute-level golden contract (enforced end-to-end by the golden tests).
pThe atmospheric refraction parameters. Defaults reproduce Meeus's 34′ term.
Returns
The geometric altitude of the Moon's center that makes its upper limb appear at the horizon. The 0.7275 factor folds the parallax (and the upper-limb semidiameter) into the horizon dip, so geocentric coordinates can be used directly — no topocentric reduction (Ch.40) is needed at minute-level accuracy.
Exceptions
std::invalid_argumentIf p is invalid (see refraction::at_horizon).
std::runtime_errorFor Model::SAEMUNDSSON, if the horizon iteration does not converge (see refraction::at_horizon).
See also
Jean Meeus, "Astronomical Algorithms", Second Edition, Chapter 15.

◆ horizontal_parallax()

auto astro::rise_set::moon::horizontal_parallax ( const double jde_tt) ->toolbox::AngleRad
inlinenodiscard

The Moon's equatorial horizontal parallax Π at one instant.

Note
Geocentric distance from the ELP2000-82B ephemeris; see moon::geocentric_coord::equatorial_horizontal_parallax.

Variable Documentation

◆ apparent_equatorial

auto astro::rise_set::moon::apparent_equatorial
inlineconstexpr

The Moon's position provider: apparent geocentric equatorial coordinates at one instant (TT) — an alias of astro::moon::equatorial_coord::apparent, the lunar counterpart of the solar provider.