body-pnt (scenario kind)
Scenario kind of the engine v0.38.0, family Constellations, coverage and geometry. Advisory: analysis output from a research and engineering tool, not type-approved navigation equipment and not a safety-of-life service. Every label here is the engine's or the verification matrix's; a kind is MODELLED unless the matrix says otherwise (how a label is earned: the README's Evidence section).
What it does#
Positioning around any solar-system body: an orbiter or a surface lander around a central body chosen by name (Mars, the Moon, Europa, Ganymede, Titan and the rest of the solar-system catalogue), navigating with one-way pseudoranges from a small Walker navigation constellation around the body (two-body orbits with the body's own J2 secular drift, an unknown user clock) and optionally a clock-free deep-space two-way range from the Earth, whose direction and distance come from the analytic solar-system ephemeris at every epoch. Lines of sight are blocked by the body's mean sphere, and a surface user also needs the elevation mask. Per epoch: relays in view, whether the Earth is above the limb, the constellation-only GDOP and PDOP (geometric and position dilution of precision), the formal one-sigma position uncertainty with and without the Earth row, and the error of a seeded Gauss-Newton least-squares fix each way; over the run: availability, Earth visibility, median PDOP, RMS error and median formal sigma, plus the Earth-to-body light time, round trip, Shapiro delay and Sun separation at the epoch. MODELLED: the relay orbits, the noise levels and the instantaneous measurement model are modelling choices, not validated against a mission's navigation data; the body constants are the published values cited in body.rs, and the Earth geometry inherits the solar-system ephemeris labels.
One run of scenarios/mars-orbit-pnt.toml summarises as: Positioning around Mars — orbiter user, 12 relays at 10000 km, 296 epochs
Earth light time 338.3 s one-way, 676.6 s round trip; Sun-Earth-body angle 175.4 deg
availability: 1.000 constellation only, 1.000 with the Earth range (Earth in view 0.811)
median PDOP 1.375 ; RMS error 1.883 m constellation only, 1.629 m with the Earth range
median formal sigma 1.375 m constellation only, 1.304 m with the Earth range
Inputs#
From the schema (kshana kinds --json):
- Required fields: none
- Optional fields:
body,epoch,epoch_jd_tdb,duration_s,step_s,seed,table,user,constellation,earth_link
The example scenarios/mars-orbit-pnt.toml sets, among others:
| Field | Value | Unit |
|---|---|---|
body |
Mars | text |
constellation.altitude_km |
10000 | km |
constellation.inclination_deg |
60 | deg |
constellation.planes |
3 | not stated |
constellation.sats_per_plane |
4 | not stated |
constellation.sigma_range_m |
1 | m |
duration_s |
88775 | s |
earth_link.enabled |
true | flag |
earth_link.sigma_range_m |
1 | m |
epoch |
2027-02-19T00:00:00 | text |
kind |
body-pnt | text |
seed |
7 | not stated |
Run it#
kshana scenarios/mars-orbit-pnt.toml
2 bundled scenarios use this kind; the others are in scenarios/.
What it gives#
The scalar results of that run, with the units the engine states:
| Result | Value | Unit |
|---|---|---|
body.gm_m3_s2 |
4.2828e13 | m^3/s^2 |
body.j2 |
0.00196 | 1 |
body.j2_reference_radius_m |
3396200 | m |
body.name |
Mars | text |
body.radius_mean_m |
3389500 | m |
body.sidereal_rotation_period_h |
24.622962 | h |
earth_link_used |
true | flag |
earth_to_body.from |
Mars | text |
earth_to_body.geometric_distance_m |
1.0142e11 | m |
earth_to_body.one_way_light_time_s |
338.316188 | s |
Result label (the engine's): MODELLED: two-body relay orbits with J2 secular drift, geometric visibility, Gaussian range noise and an instantaneous measurement model around a body from the published constants; not validated against a mission's navigation data. The Earth-to-body geometry inherits the solar-system ephemeris label
Evidence#
MODELLED 1 · VALIDATED 1: the verification matrix rows that name this kind.
- VALIDATED The Newtonian one-way light time from any body to any other, received at an epoch, solved by the radiometric fixed-point light-time solver (radiometric::light_time_solution, transmitter at its retarded position) through solar_system::link_o Tests: solar_system_light_time_preregistered.rs.
- MODELLED The
body-pntkind: an orbiter or a surface lander around a body chosen by name navigates with one-way pseudoranges from a Walker navigation constellation around the body (two-body orbits with the body's J2 secular drift, an unknown user c
The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):
- MODELLED Deterministic, scenario-hashed, SBOM + cross-platform golden gates. Oracle (ExternalDataset): SBOM conformance to the official CycloneDX 1.5 JSON Schema (+ valid SPDX identifiers) — an external published standard, zero validation errors over the full dependency graph; the FoM-determinism / byte-reproducibility part remains a pinned self-consistency check, so the row stays MODELLED
- MODELLED The
body-pntkind: an orbiter or a surface lander around a body chosen by name navigates with one-way pseudoranges from a Walker navigation constellation arou. Oracle (InternalConsistency): Closed forms and self-consistency: Kepler's third law for the relay period, the orbit radius and the surface radius held over the run, adding a measurement never increasing the formal uncertainty, and the seeded errors agreeing with the covariance. The relay orbits ignore third bodies (Jupiter's pull on relays around Europa is not modelled), the noise is Gaussian at stated levels and the measurement model is instanta
Limitations#
What the run's own report says is not modelled or not validated:
- MODELLED: two-body relay orbits with J2 secular drift, geometric visibility, Gaussian range noise and an instantaneous measurement model around a body from the published constants; not validated against a mission's navigation data. The Earth-to-body geometry inherits the solar-system ephemeris labels. (result
label) - MODELLED: the relay orbits, the noise levels and the instantaneous measurement model are modelling choices, not validated against a mission's navigation data; the body constants are the published values cited in body.rs, and the Earth geometry inherits the solar-system ephemeris labels. (kind catalogue (
kshana kinds --json)) - MODELLED. The relay orbits, the 1 m range noise and the instantaneous measurement model are modelling choices; nothing here is validated against a mission's navigation data. The Mars constants are the published values cited in src/body.rs. (scenario file comment, lines 20 to 22)
- Reproducibility & software assurance is MODELLED, not validated: a sub-claim is externally checked, but the whole capability composes modelled pieces, so the capability stays Modelled. (verification matrix (docs/MODELLED-RATIONALE.md))
- Positioning around any solar-system body with a local constellation and a deep-space link from Earth is MODELLED, not validated: checked against its own closed-form / analytic identity — catches transcription and coefficient errors, but is not an external oracle. (verification matrix (docs/MODELLED-RATIONALE.md))
See also#
- Family page: Constellations, coverage and geometry
- All kinds: KINDS.md
- Topic page: SOLAR-SYSTEM.md
- Topic page: CONSTELLATION-DESIGN.md