Scenario kind pagesEdit on GitHubSource: docs/kinds/by-kind/lunar-integrity.md

lunar-integrity (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#

Lunar south-pole ARAIM protection-level pass vs a representative LunaNet relay set. sigma_ure_m exposes the signal-in-space ranging accuracy (protection levels scale linearly with it, so sweeping it answers what ranging accuracy an alert limit requires). Defaults to the historical LNIS-class south-pole case.

One run of scenarios/lunanet-araim.toml summarises as: lunar-integrity | south pole | 0/24 epochs available (0.0%) | AL 50 m | σ_URE 30 m | HPL 263–452 m

Inputs#

From the schema (kshana kinds --json):

  • Required fields: none
  • Optional fields: step_s, duration_s, alert_limit_m, p_hmi, sigma_ure_m

The example scenarios/lunanet-araim.toml sets, among others:

Field Value Unit
alert_limit_m 50 m
duration_s 86400 s
kind lunar-integrity text
p_hmi 1.0000e-4 not stated
step_s 3600 s

Run it#

kshana scenarios/lunanet-araim.toml

What it gives#

The scalar results of that run, with the units the engine states:

Result Value Unit
alert_limit_m 50 m
max_hpl_m 452.18433 m
min_hpl_m 263.02565 m
samples_available 0 count
samples_total 24 count
sigma_ure_m 30 m
The chart the engine writes for scenarios/lunanet-araim.toml, kind lunar-integrity

Evidence#

No matrix row names this kind by name; the label on its result is the engine's own, above.

The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):

  • VALIDATED ARAIM multiple-hypothesis solution separation per the ARAIM Airborne Design Document (ADD) v4.2 (araim_reference::add_v42_protection_levels and add_v42_protecti. Oracle (ExternalDataset): Three independent tools, pre-registered (0123cee1) before any fixture or oracle output existed, tolerances fixed then. (1) ARAIM: Stanford MAAST for ARAIM 2 (commit ab70e2a3, BSD-3) mhss_raim_baseline_v5.m, run as a separate program under GNU Octave 8.4 with a driver-side unique() compatibility shim (disclosed, no algorithm change), at the ADD TOL_PL of 0.05 m: the Rust reproduces the ADD reference implementation on
  • 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
  • VALIDATED The lunar protection level's geometry-to-covariance step — (GᵀG)⁻¹ over the all-in-view and every single-fault sub-geometry, projected onto the local vertical a. Oracle (ExternalDataset): Two established third-party implementations composed, both run offline, with the fixture regenerated end-to-end and verified byte-identical. RTKLIB 2.4.2-p13 (T. Takasu, BSD-2-Clause), commit 71db0ff, src/rtkcmn.c compiled from C source with -ULAPACK: lsq() → matinv() → ludcmp()/lubksb() inverts the normal matrix by Crout LU with partial pivoting, an algorithm unrelated to kshana's hand-written Gauss-Jordan invert4()

Limitations#

What the run's own report says is not modelled or not validated:

  • 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))

See also#