Kshana run report

constellation-multi-gnss-coverage (constellation-design)

Kind constellation-design · engine 0.29.0 · scenario constellation-multi-gnss-coverage.toml (file digest ab1e8d8d48fdfba2…)

1. Executive summary

Constellation design at scale: Walker DELTA and Walker STAR patterns in the i: T/P/F convention (nodes spread over 360 or 180 deg, in-plane spacing 360*P/T, inter-plane phase offset 360*F/T), explicit element lists and multi-shell designs, several constellations in one run, around the Earth, the Moon, Mars or any other planet, Pluto or major moon using the constants in the body module (the same ones the solar-system and body-pnt kinds use).

constellation-design: 102 satellites (GPS, Galileo, BeiDou, GLONASS) around the Earth; availability 100.00% (PDOP <= 6 at 10 deg mask), worst site 100.00%, median PDOP 0.95, mean 31.0 in view; 648 grid points x 95 epochs (MODELLED)

body.mu_km3_s2
3.9860e5 km^3/s^2
body.radius_km
6378.137 km
body.rotation_rate_deg_s
0.004178 deg/s
global.availability_pct
100 %
global.fix_pct
100 %
global.gdop.max
2.2236

Honesty label (result `label`): MODELLED - two-body Keplerian orbits (optional secular J2) around a spherical body, geometric visibility above an elevation mask, all-in-view dilution of precision with one receiver clock per constellation unless clock = "common"; no signal power, health or terrain. The Walker geometry and the published presets are checked against the Galileo OS SDD, the GLONASS ICD and the GPS SPS Performance Standard slot tables, and the GPS baseline global DOP statistics against SPS PS Appendix B (see docs/VERIFICATION-MATRIX.md)

Capabilities used: 2 VALIDATED, 2 MODELLED, 0 PARTNER (relied on, not provided); see section 5.

2. Inputs

Every field the scenario file sets, flattened to its path. Units come from the result's units block (the field-units schema, docs/field-units-schema.json) where it describes the field, otherwise from the field-name suffix; a unit neither states is shown as not stated.

ParameterValueUnitUnit source
bodyearthtexta text input carries no unit
clockper-constellationtexta text input carries no unit
constellation[0].nameGPStexta text input carries no unit
constellation[0].presetgps-baselinetexta text input carries no unit
constellation[1].nameGalileotexta text input carries no unit
constellation[1].presetgalileotexta text input carries no unit
constellation[2].nameBeiDoutexta text input carries no unit
constellation[2].presetbeidoutexta text input carries no unit
constellation[3].nameGLONASStexta text input carries no unit
constellation[3].presetglonasstexta text input carries no unit
duration_s86164sfield-units schema: input entry `inputs.duration_s`, matched by field name
grid_step_deg10degfield-units schema: input entry `inputs.grid_step_deg`, matched by field name
kindconstellation-designtexta text input carries no unit
mask_deg10degfield-units schema: input entry `inputs.mask_deg`, matched by field name
max_tracks102not statedno units entry and no unit suffix
pdop_threshold61field-units schema: input entry `inputs.pdop_threshold`, matched by field name
step_s900sfield-units schema: input entry `inputs.step_s`, matched by field name
track_points25not statedno units entry and no unit suffix

3. Results

Result chart
Result chart (also written to constellation-multi-gnss-coverage.chart.svg)

Scalar results

ResultValueUnit
body.mu_km3_s23.9860e5km^3/s^2
body.nameEarthtext
body.radius_km6378.137km
body.rotation_rate_deg_s0.004178deg/s
global.availability_pct100%
global.fix_pct100%
global.gdop.max2.22361
global.gdop.mean1.1221
global.gdop.median1.1151
global.gdop.p901.2551
global.gdop.p951.3051
global.gdop.p991.411
global.hdop.max0.71721
global.hdop.mean0.48111
global.hdop.median0.481
global.hdop.p900.541
global.hdop.p950.5551
global.hdop.p990.591
global.mean_visible31.0336count
global.min_visible22count
global.pdop.max1.80171
global.pdop.mean0.95541
global.pdop.median0.951
global.pdop.p901.0651
global.pdop.p951.1051
global.pdop.p991.191
global.vdop.max1.69151
global.vdop.mean0.82421
global.vdop.median0.8151
global.vdop.p900.941
global.vdop.p950.981
global.vdop.p991.071
global.worst_site_availability_pct100%
inputs.clockper-constellationtext
inputs.duration_s86164s
inputs.epochs95count
inputs.grid_step_deg10deg
inputs.j2falseflag
inputs.lat_max_deg90deg
inputs.lat_min_deg-90deg
inputs.lon_max_deg180deg
inputs.lon_min_deg-180deg
inputs.mask_deg10deg
inputs.pdop_threshold61
inputs.step_s900s
total_satellites102count
tracks.shown102count
tracks.stride1count
tracks.total102count
work.dop_solutions61560count
work.epochs95count
work.grid_points648count
work.pair_tests_after_prefilter4386780count
work.pair_tests_brute_force6279120count
work.prefilter_ratio0.69861
work.satellites102count
work.visible_pairs1947600count

Numeric columns

ColumnCountMinMaxFirstLastUnit
constellations[].mean_visible47.06369.34967.17447.0636count
constellations[].satellites424302424count
constellations[].shells[].altitude_km123221.66423221.66423221.66423221.664km
constellations[].shells[].in_plane_spacing_deg145454545deg
constellations[].shells[].inclination_deg156565656deg
constellations[].shells[].period_min1844.681373844.681373844.681373844.681373min
constellations[].shells[].phase_offset_deg115151515deg
constellations[].shells[].phasing11111count
constellations[].shells[].planes13333count
constellations[].shells[].raan_spacing_deg1120120120120deg
constellations[].shells[].total124242424count
grid.availability_pct[][]648100100100100%
grid.fix_pct[][]648100100100100%
grid.lat_deg[]18-8585-8585deg
grid.lon_deg[]36-175175-175175deg
grid.max_pdop[][]6480.90871.80171.41321.29511
grid.max_visible[][]64831413837count
grid.mean_gdop[][]6480.94651.28711.27221.23021
grid.mean_hdop[][]6480.4250.53080.42770.42671
grid.mean_pdop[][]6480.8311.08531.07351.06821
grid.mean_vdop[][]6480.70290.99690.98440.97911
grid.mean_visible[][]64827.210536.536834.126334.1895count
grid.min_visible[][]64822333031count
tracks.satellites[].lat_deg[]2550-64.79964.799-44.918-64.618deg
tracks.satellites[].lon_deg[]2550-179.96818052.36833.913deg
tracks.times_s[]25086164086164s

3b. Animation and exports

Animation of the run's time series
The run's own samples drawing in behind a moving time cursor (the animated drawing of --animate svg; it shows the finished picture under reduced motion and in print).

The interactive player is written by kshana scenarios/constellation-multi-gnss-coverage.toml --animate html.

ExportAppliesFiles or reason
czml
https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Structure
nonot exported in this release: `constellation-design` places its satellites in a body-fixed frame relative to an epoch it never names, so a time-tagged export would have to invent the calendar date
kml
https://www.ogc.org/standard/kml/
nonot exported in this release: `constellation-design` places its satellites in a body-fixed frame relative to an epoch it never names, so a time-tagged export would have to invent the calendar date
geojson
https://www.rfc-editor.org/rfc/rfc7946
nonot exported in this release: `constellation-design` places its satellites in a body-fixed frame relative to an epoch it never names, so a time-tagged export would have to invent the calendar date
stk
https://help.agi.com/stk/#stk/importfiles-02.htm
nonot exported in this release: `constellation-design` places its satellites in a body-fixed frame relative to an epoch it never names, so a time-tagged export would have to invent the calendar date
sigmf
https://github.com/sigmf/SigMF/blob/main/sigmf-spec.md
noSigMF holds complex baseband samples, which only the `spectrum` kind synthesises

4. Events timeline

run span0 s21541 s43082 s64623 s86164 s
Windows as bars, point events as dots, on the run's own time axis.
Start (s)End (s)EventSource
086164run spanscenario `duration_s`

5. Verification labels

Each row is a verification-matrix row this run's kinds exercise, with the label and the oracle the matrix gives it (src/verification.rs, docs/VERIFICATION-MATRIX.md). A label grades the capability as the matrix records it; it does not grade this scenario's configuration, and a VALIDATED row does not make the run's inputs measured. A PARTNER row is a discipline the run relies on that Kshana does not provide.

Capability (matrix requirement)LabelUsed bySource: oracleTest evidence
Reproducibility & software assurance
Deterministic, scenario-hashed, SBOM + cross-platform golden gates
MODELLED
exercised
every runSBOM 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 (ExternalDataset)tests/golden.rs, tests/determinism.rs, tests/cross_platform_golden.rs; tests/reproducibility_software_assurance_reference.rs (the generated SBOM validates with zero errors against the official CycloneDX 1.5 JSON Schema over the full 66-component shipped graph: default + python + wasm features, dev-dependencies excluded)
Walker constellation geometry and the published nominal slots of GPS, Galileo and GLONASS
The `constellation-design` kind's generators: Walker delta and star patterns in the T/P/F convention (node spacing 360/P or 180/P, in-plane spacing 360·P/T, inter-plane phase offset 360·F/T), and the GPS baseline and expandable 24-slot, Galileo and GLONASS presets built from their published nominal elements, placed in an Earth-fixed frame by the Greenwich hour angle their documents state
VALIDATED
exercised
constellation-designPublished agency documents: Galileo Open Service Service Definition Document issue 1.1 (European GNSS Service Centre) Tables 1 and 23, the reference constellation at 2016-11-21 00:00 UTC; GLONASS Interface Control Document edition 5.1 (2008) section 5.2, the slot formula for node longitude and argument of latitude; GPS Standard Positioning Service Performance Standard 5th edition (April 2020) Tables 3.2-1, 3.2-2 and 3.2-3, including the groundtrack equatorial crossing column, which is an independent statement of the Earth-fixed geometry the preset must reproduce. Validates the generators and the transcription; the BeiDou medium-orbit phase and inclined-geosynchronous nodes are not published and are not covered (ExternalDataset)constellation::tests::walker_24_3_1_reproduces_galileo_os_sdd_table_23 (all 24 RAAN and mean-anomaly rows to 1e-9 deg); constellation::tests::glonass_icd_slot_formula_is_a_walker_24_3_1 (the ICD slot formula and a Walker 24/3/1 are the same 24 node and argument-of-latitude pairs); constellation::tests::gps_presets_reproduce_the_published_equatorial_crossings (the groundtrack equatorial crossing of all 36 GPS locations from RAAN, argument of latitude and the 100.765 deg hour angle: 35 within 0.0108 deg against a 0.015 deg rounding bar, and E3F within 0.06 deg because the table's own E3F row is inconsistent with its RAAN and argument of latitude by about 0.06 deg; the secular nodal regression within 5 % of the table's -0.0402 deg/day); constellation::tests::walker_geometry_identities_are_exact (the three spacing identities for delta and star patterns up to 1 584 satellites, to 1e-9 deg)
Global dilution of precision of the GPS baseline constellation
The `constellation-design` coverage engine on the GPS baseline 24-slot preset under the GPS Standard Positioning Service Performance Standard (SPS PS) Appendix B conditions (one sidereal day, 287 five-minute steps, a 4 x 4 deg global grid weighted by the cosine of latitude, all in view, 5 deg mask, one receiver clock): the global HDOP distribution, the PDOP median and the PDOP-at-most-6 availability, globally and at the worst site
VALIDATED
exercised
constellation-designGPS SPS PS 5th edition (April 2020) Appendix B sections B.3.2.2 and B.3.2.3, the published global-average HDOP distribution of the fully occupied baseline 24-slot constellation (median 0.94, 90 % 1.16, 95 % 1.25, 98 % 1.37, mean 0.96), Table 3.8-1 (PDOP availability) and Table B.3-1 (ensemble PDOP of a degraded constellation, used only as an upper bound), plus a hand-derived closed form for one epoch. The VDOP and PDOP distributions of the full constellation are published only as a figure, so PDOP is pinned one-sided; the worst time-space point (HDOP 2.40 and VDOP 5.22 here, 2.49 and 5.43 published) depends on the grid and is reported, not pinned (ExternalDataset)constellation::tests::gps_baseline_global_dop_matches_the_sps_performance_standard (HDOP median 0.940, 90 % 1.165, 95 % 1.255, 98 % 1.370, mean 0.965 against 0.94, 1.16, 1.25, 1.37 and 0.96, bar 0.03 on each fixed before the first run; PDOP median 1.795 at or below Table B.3-1's 1.815 for a degraded 20-24 satellite mix; availability 100 % global and at the worst site against Table 3.8-1's 98 % and 88 %); constellation::tests::single_epoch_dop_matches_the_hand_computation (zenith plus three satellites at 30 deg elevation: HDOP 4/3, VDOP 2.3094, PDOP 8/3, TDOP 1.5275, GDOP 3.0732 to 1e-9, and equal to orbit::dop with a common clock)
Coverage and dilution-of-precision maps for arbitrary multi-constellation designs at scale, around any central body
The `constellation-design` kind beyond the two pinned cases: explicit and multi-shell designs, several constellations per run with one receiver clock per constellation, the Earth, the Moon and Mars from the body constants, the BeiDou preset (medium-orbit phase and 118 deg E inclined-geosynchronous crossing modelled), per-cell satellites in view, GDOP, PDOP, HDOP, VDOP and availability, downsampled ground tracks, and a sub-satellite-latitude visibility prefilter that runs a 5 000-satellite design on a 10 deg grid in a fraction of a second
MODELLED
exercised
constellation-designInternal consistency: the brute-force elevation scan, the hand-computed and orbit::dop reductions, and the closed-form Walker and geosynchronous geometry. Two-body orbits with an optional secular J2, a spherical body with the local vertical along the radius, geometric visibility only (no signal power, satellite health, terrain or third-body perturbation), and the relative phase between systems taken from different reference epochs, so it is not a snapshot of any date (InternalConsistency)constellation::tests (prefilter_matches_brute_force_exactly — every map and counter equals a scan with the direct elevation test; five_thousand_satellites_on_a_coarse_grid — 5 000 satellites, prints the run time and the pair tests kept; a_clock_per_constellation_needs_one_more_satellite; beidou_geo_and_igso_geometry; lunar_shell_runs_around_the_moon; presets_are_earth_only_and_errors_are_clear; preset_counts)

6. Not modelled, and assumptions

Each item is quoted from where it is stated: the result document, the kind catalogue, the scenario file, or the verification matrix's reason a MODELLED row stays modelled.

StatementSource
MODELLED - two-body Keplerian orbits (optional secular J2) around a spherical body, geometric visibility above an elevation mask, all-in-view dilution of precision with one receiver clock per constellation unless clock = "common"; no signal power, health or terrain. The Walker geometry and the published presets are checked against the Galileo OS SDD, the GLONASS ICD and the GPS SPS Performance Standard slot tables, and the GPS baseline global DOP statistics against SPS PS Appendix B (see docs/VERIFICATION-MATRIX.md)result `label`
MODELLED: two-body orbits with optional secular J2, a spherical body, geometric visibility only (no signal power, health or terrain), and the relative phase between different systems, which is not a snapshot of any real date.kind catalogue (`kshana kinds --json`)
What the run answers: how many satellites are in view, the position, horizontal, vertical and geometric DOP per 10 deg cell, and the share of time the position DOP (PDOP) is at or below 6 above a 10 deg mask. MODELLED: two-body orbits, a spherical Earth, geometry only.scenario file comment, lines 22 to 24
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)
Coverage and dilution-of-precision maps for arbitrary multi-constellation designs at scale, around any central body 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)

7. Reproducibility record

Command to reproducekshana scenarios/constellation-multi-gnss-coverage.toml
Working directoryRun the command from the directory the original run was started in: the scenario path, and any relative data path inside the scenario, resolve against it. Check the scenario file against scenario_sha256 first.
Engine version0.29.0
Source commitnot recorded: this engine was built without the KSHANA_GIT_COMMIT environment variable; the engine version identifies the release
Scenario fileconstellation-multi-gnss-coverage.toml
Scenario file SHA-256 (Secure Hash Algorithm 256-bit)ab1e8d8d48fdfba293faeacac0ec15cbd0ef8a0a7658663055c5a3e7eb7233f0
Result scenario_hashthe result document states none
Result document SHA-256eeef71ba3e7d90972fc407a77908c7d415dcace26715e3370816fa292c1212a1 (constellation-multi-gnss-coverage.result.json)
SeedNeither the scenario nor the result carries a seed. The result is fixed by the scenario file and the engine build alone; the determinism test re-runs every bundled scenario and requires byte-identical output.
Platformmacos / aarch64 (unix)
DeterminismSame scenario bytes, seed and engine build give a byte-identical result document and report; this report carries no timestamp. Floating-point results are pinned per platform; another operating system or architecture may differ in the last digits.

To print this page to a Portable Document Format (PDF) file, use the browser's print dialog and choose “Save as PDF”; the print stylesheet fits A4 and US Letter paper, repeats table headers across pages and starts the inputs, results, labels and reproducibility sections on a new page. The engine writes no PDF itself. report.json carries the same content as this page.