lunar-frame-campaign (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#
Seven-parameter Helmert (similarity) frame datum driven by a SIMULATED OBSERVING CAMPAIGN rather than by an injected transform. A network of Earth stations observes a catalogue of lunar-surface beacons over an explicit schedule; the lunar-VLBI delay partials are accumulated over that schedule into a beacon-coordinate Fisher information matrix exactly as lunar-vlbi-fim does; and that information is propagated through the Helmert design A = [I3 | [p]_x | p] at the catalogue points into the datum covariance H = A^T M_b A, diagnosed by crate::fim::crlb. NO transform is injected and nothing is recovered from a planted answer, so the reported datum accuracy derives from the observing programme: halving the delay sigma halves it exactly, and lengthening the arc improves it because the libration the report MEASURES (sub_earth_direction_sweep_deg) is what separates the line-of-sight beacon coordinate from the plane-of-sky ones. Rank, datum defect, condition number, the full spectrum, the unobservable directions IN THE SEVEN-PARAMETER BASIS, the weakest direction even at full rank and each parameter's share of it are emitted on every run; a parameter the campaign does not constrain is published as NULL with a status, never read out of a near-singular inverse. Beacon-error correlation is measured, not assumed: with the stations held fixed no observation touches two beacons so the information matrix is exactly block-diagonal (offblock_fraction 0), and with the stations estimated the Schur-marginalised block is coupled, with the induced correlation printed and the whole propagation re-run with it discarded so the price of an independence assumption is a number. The same propagation under an isotropic per-coordinate sigma, and the recovery error the lunar-frame-realisation scenario reports, are both run here and printed beside the campaign value with their ratios. MODELLED: the beacon catalogue is sourced but the CAMPAIGN is simulated — the station network and the delay sigma are illustrative inputs, individual delay observations are treated as independent, and the Moon-centre ephemeris, station clocks, troposphere and Earth-orientation parameters are held FIXED, so the datum covariance is a Cramer-Rao bound for a reduced parameter set. Not a geodetic product.
One run of scenarios/lunar-frame-campaign.toml summarises as: lunar-frame-campaign | 4 beacons x 3 baselines x 49 epochs = 64 obs (delay sigma 1.000e-11 s) | station datum fixed | Helmert rank 7/7 cond 3.798e5 | datum translation sigma 6.397500 m vs injected-transform recovery error 0.3125 m (ratio 0.049)
Inputs#
From the schema (kshana kinds --json):
- Required fields: none
- Optional fields:
stations,beacons,epoch_year,epoch_month,epoch_day,arc_hours,step_min,delay_sigma_s,elevation_mask_deg,earth_elevation_mask_deg,station_datum,rel_tol,assumed_coordinate_sigma_m,solver
The example scenarios/lunar-frame-campaign.toml sets, among others:
| Field | Value | Unit |
|---|---|---|
kind |
lunar-frame-campaign | text |
Run it#
kshana scenarios/lunar-frame-campaign.toml
What it gives#
The scalar results of that run, with the units the engine states:
| Result | Value | Unit |
|---|---|---|
beacon_information.defect |
0 | count |
beacon_information.dimension |
12 | count |
beacon_information.max_interbeacon_correlation |
0 | 1 |
beacon_information.offblock_fraction |
0 | 1 |
beacon_information.rank |
12 | count |
campaign.arc_hours |
24 | hr |
campaign.delay_sigma_range_equivalent_m |
0.002998 | m |
campaign.delay_sigma_s |
1.0000e-11 | s |
campaign.earth_elevation_mask_deg |
0 | deg |
campaign.elevation_mask_deg |
10 | deg |
Result label (the engine's): MODELLED campaign-driven lunar frame datum. The seven-parameter Helmert covariance is propagated from a beacon-coordinate information matrix accumulated from the engine's own lunar-VLBI delay partials over an explicit schedule of beacons, baselines and epochs; NO similarity transform is injected and
Evidence#
MODELLED 2 · VALIDATED 3: the verification matrix rows that name this kind.
- MODELLED The seven-parameter Helmert datum propagated from a SIMULATED OBSERVING CAMPAIGN instead of recovered from an injected transform.
- VALIDATED The seven-parameter Helmert datum covariance, with its two simulated inputs replaced by measured ones: the schedule is the ground-transmit epochs of 337 archived ILRS lunar laser-ranging normal points (2015-04-08 to 2015-06-27, Grasse MeO 7 Tests: lunar_llr_real_data.rs.
- MODELLED Optional extra_reflectors and extra_beacons inputs on the lunar-llr-datum scenario add a station_geodesy block: the five-array Helmert information from the archived lunar laser ranging slice plus the information an added retroreflector (ran Tests: lunar_station_geodesy.rs.
- VALIDATED The seven-parameter Helmert datum covariance of the lunar-frame-campaign scenario with the Earth stations estimated (station 1 anchored), as lunar_frame_campaign computes it in binary64: the joint station-and-beacon Fisher information accum Tests: lunar_frame_campaign_mpmath_oracle.rs.
- and 1 more in the matrix.
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
- VALIDATED 7-parameter Helmert datum fit + ICRF orientation tie from a network of points. Oracle (ExternalDataset): Independent closed-form weighted Umeyama (Horn) similarity-transform solver (numpy/scipy SVD-based; Umeyama 1991 IEEE TPAMI, Horn 1987 JOSA A) — a different algorithm from kshana's iterative Gauss–Newton fit, reaching the same uniquely-defined weighted-LS optimum on byte-identical point networks
- MODELLED The seven-parameter Helmert datum propagated from a SIMULATED OBSERVING CAMPAIGN instead of recovered from an injected transform. Earth stations observe a sourc. Oracle (ReferenceImpl): Closed-form identities and an independent in-repo route, with no external oracle claimed. The Helmert design — the only new derivative in the module — is re-derived by central finite difference of lunar_frame_realise::apply_helmert, a path sharing no expression with the analytic form. The accumulation it composes is lunar-vlbi-fim's, whose Jacobian is finite-differenced against lunar_vlbi::vlbi_delay_s there, and who
Limitations#
What the run's own report says is not modelled or not validated:
- MODELLED campaign-driven lunar frame datum. The seven-parameter Helmert covariance is propagated from a beacon-coordinate information matrix accumulated from the engine's own lunar-VLBI delay partials over an explicit schedule of beacons, baselines and epochs; NO similarity transform is injected and nothing is recovered from a planted answer. The beacon catalogue is the crate's sourced named-site table, but the CAMPA (result
label) - Beacon-error correlation is measured, not assumed: with the stations held fixed no observation touches two beacons so the information matrix is exactly block-diagonal (offblock_fraction 0), and with the stations estimated the Schur-marginalised block is coupled, with the induced correlation printed and the whole propagation re-run with it discarded so the price of an independence assumption is a number. (kind catalogue (
kshana kinds --json)) - MODELLED: the beacon catalogue is sourced but the CAMPAIGN is simulated — the station network and the delay sigma are illustrative inputs, individual delay observations are treated as independent, and the Moon-centre ephemeris, station clocks, troposphere and Earth-orientation parameters are held FIXED, so the datum covariance is a Cramer-Rao bound for a reduced parameter set. (kind catalogue (
kshana kinds --json)) - Beacon-error correlation is MEASURED, not assumed. With the stations held fixed no observation touches two beacons, so the information matrix is exactly block-diagonal (offblock_fraction 0); with the stations estimated the Schur-marginalised block is coupled, the induced correlation is printed, and the whole propagation is re-run with it discarded so the price of an independence assumption is a number rather than a c (scenario file comment, lines 17 to 21)
- MODELLED: the beacon catalogue is sourced but the CAMPAIGN is simulated — the station network and the delay sigma are illustrative inputs, individual delay observations are treated as independent, and the Moon-centre ephemeris, station clocks, troposphere and Earth-orientation parameters are held FIXED. Not a geodetic product. (scenario file comment, lines 27 to 30)
- 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 frame datum from an observing campaign is MODELLED, not validated: checked against a separate implementation in this same codebase — independent of the unit under test, but not externally authoritative. (verification matrix (docs/MODELLED-RATIONALE.md))
See also#
- Family page: Lunar and cislunar
- All kinds: KINDS.md