lunar-station-coverage (scenario kind)
Scenario kind of the engine v0.38.0, family Lunar and cislunar. 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#
Modelled lunar reference-station coverage: a Monte Carlo sweep of the lunar differential-PNT model over a south-polar user grid and a day of epochs. A differential reference station at a known south-polar site corrects a stated constellation (illustrative Keplerian or a tabulated ephemeris) with a stated signal-in-space error, survey error, correction latency and link quantization; per point and over the region it reports the percentile corrected and uncorrected position error (3-D, horizontal, vertical), availability, coverage against a stated threshold, DO-229E protection levels, the coverage radius per azimuth and the correction-link budget at the station and at the worst point. Not a statement about the performance of any real system; not affiliated with or endorsed by any agency. MODELLED.
One run of scenarios/lunar-station-coverage.toml summarises as: lunar-station-coverage | 346 points x 144 epochs x 200 trials | availability 92.2 % | coverage 76.5 % (p95 <= 20 m) | corrected p95 3-D 15.592 m (uncorrected 1056.892 m) | HPL max 480.385 m | MODELLED; not a statement about any real system
Inputs#
From the schema (kshana kinds --json):
- Required fields: none
- Optional fields:
n_sats,sma_km,eccentricity,inc_deg,argp_deg,ephemeris_path,mask_deg,station_lat_deg,station_lon_deg,station_height_m,survey_sigma_m,orbit_err_m,clock_err_m,sise_sigma_m,sise_orbit_variance_fraction,noise_m,latency_s,quantization_bits,grid_lat_max_deg,grid_lat_step_deg,points,t_start_s,t_span_s,t_step_s,n_trials,accuracy_threshold_m,percentile,alert_limit_m,residual_sigma_m,p_hmi,seed,terrain,orbit_err_growth_m_per_s,receiver,solution
The example scenarios/lunar-station-coverage.toml sets, among others:
| Field | Value | Unit |
|---|---|---|
accuracy_threshold_m |
20 | m |
alert_limit_m |
10 | m |
argp_deg |
90 | deg |
clock_err_m |
30 | m |
eccentricity |
0.6 | 1 |
grid_lat_max_deg |
-80 | deg |
grid_lat_step_deg |
1 | deg |
inc_deg |
57.7 | deg |
kind |
lunar-station-coverage | text |
latency_s |
10 | s |
mask_deg |
5 | deg |
n_sats |
8 | count |
Run it#
kshana scenarios/lunar-station-coverage.toml
3 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 |
|---|---|---|
budget_at_station_and_at_edge.epoch_s |
0 | s |
budget_at_station_and_at_edge.station.ageing_clock_class |
rafs | text |
budget_at_station_and_at_edge.station.ageing_clock_time_error_s |
3.1623e-11 | s |
budget_at_station_and_at_edge.station.ageing_orbit_rate_m_per_s |
0.003083 | m/s |
budget_at_station_and_at_edge.station.latency_clock_position_sigma_m |
0.030329 | m |
budget_at_station_and_at_edge.station.latency_clock_range_sigma_m |
0.00948 | m |
budget_at_station_and_at_edge.station.latency_orbit_position_sigma_m |
0.106357 | m |
budget_at_station_and_at_edge.station.latency_orbit_range_sigma_m |
0.03083 | m |
budget_at_station_and_at_edge.station.latency_position_sigma_m |
0.110597 | m |
budget_at_station_and_at_edge.station.latency_range_sigma_m |
0.032254 | m |
Result label (the engine's): MODELLED
Evidence#
MODELLED: the verification matrix rows that name this kind.
- MODELLED Monte Carlo sweep of the lunar differential-PNT model over a south-polar user grid and a day of epochs (the
lunar-station-coveragekind): for a differential reference station at a known south-polar site, per point and over the region, the Tests: lunar_station_coverage_reference.rs.
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 NovaMoon-class differential reference station: common-mode cancellation + baseline-growing residual + DGNSS protection levels. Oracle (InternalConsistency): Differential error-cancellation identity + reuse of the DO-229E SBAS PL machinery; the single-difference + WLS solve is additionally cross-checked against RTKLIB's lsq()/matinv() (Takasu, BSD-2-Clause, compiled C) — independent solver code, but the same first-order LOS-difference algebra, so still InternalConsistency
- MODELLED The three terms a differential correction picks up between the epoch it is computed at and the epoch it is used at, each previously left as unmodelled headroom:. Oracle (InternalConsistency): Closed-form identities and self-consistency: the uniform-quantizer step²/12 variance, the exact (GᵀG)⁻¹GᵀRG(GᵀG)⁻¹ covariance propagation collapsing to σ·PDOP for equal σ, the survey term's 1:1 transfer as a consequence of û_user ≈ û_ref, and switching-off quadrature closure. The PDOP cross-check against orbit::dop shares the [−û, 1] normal matrix, so it is a consistency check and is labelled as one rather than an in
- MODELLED Monte Carlo sweep of the lunar differential-PNT model over a south-polar user grid and a day of epochs (the
lunar-station-coveragekind): for a differential r. Oracle (InternalConsistency): Arithmetic re-computed by an independent numpy script on exported cases (scripts/gen_lunar_station_ref.py, numpy 2.5.4; pre-registered in tests/fixtures/lunar_station/PREREGISTRATION.md, committed alone in 9caedf97 before the first run): on 20 cases with every error term on, the visible sets and status are identical, the raw range errors agree to 1.4e-14 m, the position-error vectors and magnitudes to 1.4e-9 m agains
Limitations#
What the run's own report says is not modelled or not validated:
- MODELLED (result
label) - MODELLED. (kind catalogue (
kshana kinds --json)) - HONESTY: MODELLED. Under the stated assumptions below the model gives these figures. Not a statement about the performance of any real system; not affiliated with or endorsed by any agency; no TRL or heritage claim. Omitted: terrain and horizon masking at the pole (the first limitation), multipath, receiver hardware. (scenario file comment, lines 15 to 18)
- 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))
- Lunar differential PNT 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))
- Lunar differential PNT — correction-link residual budget 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))
- Lunar reference-station coverage and accuracy map 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: Lunar and cislunar
- All kinds: KINDS.md
- Topic page: LUNAR-REFERENCE-STATION.md