Repository navigation
GEODETIC_BACKEND_STANDARD
Version: 0.1
Date: 2026-06-12
Status: Active backend admission packet for Phase 10 REST evaluation
Scope: moira.geodetic
This standard records the backend truth that may be exposed by the REST server for P10-03 Geodetic. It is not a map-rendering standard and does not admit geographic search, projection, or relocation synthesis products.
It is downstream of:
wiki/00_foundations/ENGINE_VS_SERVICE_BOUNDARY.mddocs/architecture/MOIRA_SERVER_ROUTE_ADMISSION_CHECKLIST.mddocs/architecture/MOIRA_SERVER_PHASE10_LEDGER.mdwiki/03_validation/VALIDATION_EXPERIMENTAL.md
The governing object is the geodetic zodiac mapping for a terrestrial location:
- geographic longitude maps to native Geodetic MC
- geographic latitude plus obliquity derives the Geodetic Ascendant
- tropical and sidereal zodiac policies are explicit
- planet ecliptic longitudes may be inverted into geographic equivalent longitudes
These are geodetic astrology products. They are not map projections, rendered maps, local-space horizon products, Astrocartography lines, or relocation chart synthesis.
Authoritative module:
moira/geodetic.py
Public vessel:
GeodeticChart
Public functions:
geodetic_mc(geo_longitude, ayanamsa_deg=0.0)geodetic_asc(geo_longitude, geo_latitude, obliquity, ayanamsa_deg=0.0)geodetic_chart(geo_longitude, geo_latitude, obliquity, ayanamsa_deg=0.0, zodiac="tropical")geodetic_chart_from_chart(chart, zodiac="tropical", ayanamsa_system=None)geodetic_equivalents(planet_longitudes, ayanamsa_deg=0.0)geodetic_equivalents_from_chart(chart, bodies=None, zodiac="tropical", ayanamsa_system=None)
Facade exposure:
SpatialFacadeMixin.geodetic(...)SpatialFacadeMixin.geodetic_planet_equivalents(...)
Direct chart inputs:
- geographic longitude
- geographic latitude
- true obliquity of the ecliptic
- zodiac policy:
tropicalorsidereal - ayanamsa offset in degrees for sidereal policy
Chart-backed chart inputs:
- datetime
- geographic latitude
- geographic longitude
- zodiac policy
- ayanamsa system when zodiac is
sidereal
Direct equivalent inputs:
- body name
- ecliptic longitude in degrees
- ayanamsa offset in degrees when direct input is sidereal
Chart-backed equivalent inputs:
- datetime
- geographic latitude and longitude for chart construction
- optional selected bodies
- zodiac policy
- ayanamsa system when zodiac is
sidereal
Frame doctrine:
- tropical Geodetic MC is geographic longitude modulo 360.
- sidereal Geodetic MC is
(geographic longitude - ayanamsa) mod 360. - geodetic equivalents invert MC mapping and return geographic longitudes in
[-180, 180]. - chart-backed sidereal policy must resolve and serialize the ayanamsa system and ayanamsa offset.
- chart-backed obliquity must be derived from the chart epoch.
GeodeticChart preserves:
geo_latitudegeo_longitudemcascobliquityzodiacayanamsa_deg
Result invariants:
-
mcis in[0, 360). -
ascis in[0, 360). - stored geographic longitude is wrapped to
[-180, 180]. -
zodiacis eithertropicalorsidereal. -
ayanamsa_degis0.0for tropical unless a caller deliberately supplies a direct nonzero offset.
First REST admission may expose:
- direct geodetic location charts
- chart-backed geodetic location charts
- direct geodetic equivalent longitudes
- chart-backed geodetic equivalent longitudes
First REST admission must not expose:
- primitive-only MC routes
- primitive-only ASC routes
- rendered maps
- projection products
- geographic search
- relocation synthesis
- unbounded body catalogs
REST transport should bound chart-backed body count before admission.
Existing validation:
tests/unit/test_geodetic.py
Covered invariants include:
- direct MC wrapping
- sidereal MC and ayanamsa round trip
- ASC range and equatorial cases
- GeodeticChart vessel integrity
- geodetic equivalent inversion
- sidereal equivalent wrapping
- rejection of non-finite coordinates, obliquity, ayanamsa, invalid zodiac, empty body names, and non-finite equivalent longitudes
P10-03 Geodetic is eligible to move from evaluation to transport design for bounded location-chart and equivalent-longitude products.
REST design must still decide:
- direct and chart-backed route shapes
- zodiac policy schema
- ayanamsa policy serialization
- whether primitive MC/ASC helpers are public routes or internal only
- maximum chart-backed body count
Do not admit rendered map, projection, geographic search, relocation synthesis, or primitive-helper-only routes as part of first P10-03 transport.