Repository navigation
PLANETARY_NODES_BACKEND_STANDARD
TheDaniel166 edited this page Oct 15, 2026
·
5 revisions
Version: 0.2 Date: 2026-09-16 Status: admitted backend standard through Orbital Core Stage 3
This standard governs Moira's orbital node and apsides surface:
moira.planetary_nodes
It covers:
- kernel-free mean planetary orbital nodes and apsides
- reader-backed osculating heliocentric nodes and apsides
- the
OrbitalNoderesult vessel
It does not govern lunar true/mean node computation, chart node placement, nodal aspects, nodal interpretation, or chart-backed node profiles.
Moira exposes two distinct node products.
Mean planetary nodes:
- use the Meeus / Simon et al. mean orbital element table in
moira.planetary_nodes - are kernel-free
- are documented by the engine as approximately valid from 2000 BCE to 3000 CE
- return slow mean orbital elements for Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune
Geometric osculating nodes:
- are an exact adapter over
osculating_elementswithcenter=SUNandframe=TRUE_ECLIPTIC_OF_DATE - derive the instantaneous heliocentric orbital plane from receipted reader state vectors using the strict orbital core's angular-momentum and eccentricity-vector geometry
- bind public UT1 to TT and exact TDB state evaluation once
- use the pinned JPL Horizons gravity policy and the core's singularity rules
- require a receiptable reader route covering the requested body and exact TDB epoch
- generalize to classical planets, Pluto, and loaded sovereign asteroid and comet catalogs
- are admitted only for JD(TT)
2415020.0through2488070.0; requests outside that true-date frame interval fail explicitly - reject Sun and Moon as heliocentric node targets for this frame
OrbitalNode.perihelion is the ecliptic longitude of the projected pericenter
vector. It is not the inclined-orbit dogleg Omega + omega.
The admitted backend object is:
OrbitalNode
Required fields:
planetascending_nodedescending_nodeperihelionaphelioninclinationeccentricitysemi_major_axis
The admitted computations are:
planetary_node(planet, jd)all_planetary_nodes(jd)geometric_node(body, jd_ut, reader=None)
REST transport must preserve:
- requested body identity
- returned body identity
- computation method:
mean_elementsorgeometric_osculating - JD and JD scale semantics
- coordinate frame
- coordinate basis
- kernel requirement truth
- kernel source truth
- ascending and descending node longitudes
- perihelion and aphelion longitudes
- inclination, eccentricity, and semi-major axis
- method-specific validity note
- canonical body name, NAIF ID, and body kind for geometric results
- UT1, TT, and TDB epoch values and source-owned time-conversion receipt
- selected Horizons gravity rule and GM receipt
- true-date frame construction and admitted interval
- path-free SPK route identities, release identities, hashes, and exact coverage intervals
- singularity and undefined-element policies
- stage sequence
REST transport must not:
- collapse mean and osculating nodes into one generic result
- imply small-body availability from catalog identity alone
- expose chart-backed lunar-node doctrine through this family
- treat Sun or Moon as valid heliocentric-node targets for geometric nodes
- claim kernel-backed truth for mean-element results
- claim mean-element validity beyond the engine's documented envelope
- imply that an installed catalog has frozen-Horizons numerical admission unless an exact release hash is bound by the governed catalog admission
Transport admission must verify:
- catalog route declares distinct mean and geometric methods
- mean single route returns node and provenance
- mean bulk route returns the admitted mean planetary set
- mean routes reject non-finite JDs
- mean routes reject empty and unknown planet names
- mean bulk routes reject empty and oversized lists
- geometric route passes the server engine reader into the computation
- geometric route records strict-core time, gravity, frame, state-source, singularity, and undefined-element provenance without exposing local paths
- geometric route rejects non-finite
jd_ut - geometric route rejects Boolean epochs before transport coercion
- geometric route rejects empty body names
- geometric route rejects Sun and Moon as non-meaningful heliocentric-node targets
- all nine admitted planet targets map exactly to one Sun/true-date core result
- loaded representative asteroid/comet targets map exactly to the same core
- requests outside the admitted true-date interval retain the typed frame error
- every installed full-catalog member receives an inventory-wide finite-node and
source-receipt check; a missing sovereign release is recorded as
NOT RUN - frozen Horizons catalog comparisons run only for releases whose manifests carry the reviewed fixture hash and acceptance-gate admission
This standard does not admit:
- lunar true-node or mean-node REST routes
- chart-backed node profiles
- natal, transit, or synastry nodal interpretation
- nodal aspect networks
- a catalog-wide node REST endpoint
- rendered node maps
- asteroid/comet position route changes
- small-body kernel manifest management