cislunar-observability (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 planar cislunar constellation observability (P6): tracks a four-spacecraft differential-corrected planar-DRO constellation with inter-satellite ranging and reports how much of a spacecraft's four-state [x,y,ẋ,ẏ] the arc makes observable. Emits (1) the rank-vs-arc-length table for a single range-only link — instantaneously rank-1, growing toward the full four-state as the arc extends (P6 Table 1); (2) the observability-Gramian eigen-spectrum + condition number over the arc; (3) the range-only-vs-range+range-rate instantaneous-rank comparison (the Doppler design lever) plus the range-only-singular / range+rate-defined GDOP reporting; and (4) an independent SRIF cross-validation whose posterior covariance turns finite / well-conditioned exactly at the arc where the observable rank reaches four. VALIDATED core: the observable rank is a rank-revealing singular-value threshold cross-checked against the Gramian eigen-rank; the eigen-spectrum obeys the spectral invariants (trace=Σλ, det=Πλ, Frobenius²=Σλ²); the variational STM is the finite-difference-validated CR3BP STM; the range/range-rate Jacobian rows are finite-difference-validated analytic partials (cross-checked against the crate's 3-D range-rate observable); the four initial conditions are differential-corrected planar DROs that close to a tight periodicity residual and are retrograde; the rank transition is cross-validated against the crate's square-root information filter (posterior covariance finite exactly at full rank, cond(P)=cond(OᵀO)); a rank-deficient snapshot is flagged GDOP-undefined (fim condition=inf), never a bogus finite value — the same singular-geometry guard pvt::solve_spp applies. MODELLED: the constellation design (DRO perilune amplitudes and phases) and the specific rank progression it produces. Not a certified navigation-performance product.
One run of scenarios/cislunar-observability.toml summarises as: cislunar-observability | 4 s/c (3 refs) | 6.0 h arc, 24 epochs | rank 1 → 4 of 4 over arc | Gramian λ [2.92e-11…5.98e-2] cond 2.05e9 | instantaneous rank range-only 2 → range+rate 4 (3 links) | GDOP range-only undefined range+rate 6.353 | DRO ICs (max periodicity residual 4.7e-9) | SRIF posterior finite at rank-4 epoch 8 (Validated rank/STM/DRO-closure/SRIF, Modelled design)
Inputs#
From the schema (kshana kinds --json):
- Required fields: none
- Optional fields:
mu,arc_hours,epochs,steps,rel_tol,spatial,sigma_range_m,family,n_spacecraft,sigma_pos_threshold_km
The example scenarios/cislunar-observability.toml sets, among others:
| Field | Value | Unit |
|---|---|---|
kind |
cislunar-observability | text |
Run it#
kshana scenarios/cislunar-observability.toml
What it gives#
The scalar results of that run, with the units the engine states:
| Result | Value | Unit |
|---|---|---|
arc_hours |
6 | h |
arc_time_tu |
0.057493 | rotating-frame time units |
gdop.range_only.defect |
2 | count |
gdop.range_only.rank |
2 | count |
gdop.range_only.reason |
GDOP undefined (rank-deficient / singula | text |
gdop.range_only.status |
“undefined” (text as the document states | text |
gdop.range_rate.gdop |
6.352566 | ratio (dimensionless) |
gdop.range_rate.rank |
4 | count |
gdop.range_rate.status |
defined | text |
gramian_spectrum.condition |
2.0452e9 | ratio (dimensionless) |
Result label (the engine's): MODELLED planar cislunar constellation observability (P6). VALIDATED core: the observable RANK is a rank-revealing singular-value threshold cross-checked against the Gramian eigen-rank; the Gramian eigen-spectrum obeys the spectral invariants (trace = sum eig, det = prod eig, Frobenius^2 = sum eig^2
Evidence#
MODELLED: the verification matrix rows that name this kind.
- MODELLED The cislunar arc-length observability threshold in the SPATIAL six-state CR3BP rather than the planar four-state, across DRO, L2 halo and L2 near-rectilinear halo families, with measurement noise entering the Gramian and TWO criteria report
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 cislunar arc-length observability threshold in the SPATIAL six-state CR3BP rather than the planar four-state, across DRO, L2 halo and L2 near-rectilinear ha. Oracle (InternalConsistency): An independent row-echelon rank by Gaussian elimination with partial pivoting confirms every six-state rank verdict — a different algorithm sharing no code with the eigen/SVD route under test. The 6×6 CR3BP state-transition matrix this composes carries its own ReferenceImpl oracle against SciPy variational integration, and the halo/NRHO initial conditions come from a corrector that reproduces the published L2 souther
Limitations#
What the run's own report says is not modelled or not validated:
- MODELLED planar cislunar constellation observability (P6). VALIDATED core: the observable RANK is a rank-revealing singular-value threshold cross-checked against the Gramian eigen-rank; the Gramian eigen-spectrum obeys the spectral invariants (trace = sum eig, det = prod eig, Frobenius^2 = sum eig^2); the variational STM is the finite-difference-validated CR3BP STM (crate::cr3bp); the range / range-rate Jacobian rows (result
label) - MODELLED planar cislunar constellation observability (P6): tracks a four-spacecraft differential-corrected planar-DRO constellation with inter-satellite ranging and reports how much of a spacecraft's four-state [x,y,ẋ,ẏ] the arc makes observable. (kind catalogue (
kshana kinds --json)) - MODELLED: the constellation design (DRO perilune amplitudes and phases) and the specific rank progression it produces. (kind catalogue (
kshana kinds --json)) - Honesty: MODELLED. VALIDATED core -- the observable RANK is a rank-revealing singular-value threshold cross-checked against the Gramian eigen-rank; the eigen-spectrum obeys the spectral invariants (trace = sum eig, det = prod eig, Frobenius^2 = sum eig^2); the variational STM is the finite-difference-validated CR3BP STM; the range / range-rate Jacobian rows are finite-difference-validated analytic partials (cross-che (scenario file comment, lines 16 to 25)
- 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))
- Spatial, noisy, multi-family cislunar arc-length observability 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