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

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

The chart the engine writes for scenarios/lunar-frame-campaign.toml, kind lunar-frame-campaign

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#