Scenario kind pagesEdit on GitHubSource: docs/kinds/by-kind/constellation-design.md

constellation-design (scenario kind)

Scenario kind of the engine v0.38.0, family Constellations, coverage and geometry. 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#

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 360P/T, inter-plane phase offset 360F/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). PRESETS from published nominal elements: gps-baseline and gps-expandable (the 24 slots and the six fore/aft expandable pairs of the GPS Standard Positioning Service Performance Standard, 5th edition 2020, Tables 3.2-1 to 3.2-3), galileo (Walker 24/3/1 at 29 599.801 km and 56 deg, Galileo Open Service Service Definition Document issue 1.1 Tables 1 and 23), beidou and beidou-meo (Walker 24/3/1 at 21 528 km and 55 deg plus three geostationary satellites at 80, 110.5 and 140 deg E and three inclined geosynchronous satellites at 55 deg, BeiDou Open Service Performance Standard 3.0 section 4.1; the MEO phase and the 118 deg E inclined-geosynchronous crossing are modelled because the standard does not state them) and glonass (24/3/1 at 19 100 km and 64.8 deg from the slot formula of the GLONASS Interface Control Document edition 5.1 section 5.2). COVERAGE AND DILUTION OF PRECISION: over a latitude/longitude grid and a sampled window with an elevation mask, the number of satellites in view, GDOP, PDOP, HDOP and VDOP per cell, the availability (a fix with PDOP at or below a threshold, 6 by default) per cell, globally (area-weighted) and at the worst site, with one receiver clock per constellation unless clock = "common". It scales to thousands of satellites: visibility is a dot product against each satellite's coverage half-angle, and satellites are banded by sub-satellite latitude each epoch so a grid row tests only those that can be in view; the report counts the pair tests saved. The JSON carries the grid maps and downsampled per-satellite ground tracks. VALIDATED: the Walker generator against Galileo OS SDD Table 23 and the GLONASS ICD slot formula, the GPS preset against the published equatorial-crossing column of SPS PS Table 3.2-1, and the GPS baseline global HDOP distribution against SPS PS Appendix B (median 0.94, 95% 1.25, mean 0.96, tolerance 0.03). 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.

One run of scenarios/leo-pnt-mega-shell.toml summarises as: constellation-design: 5000 satellites (LEO-PNT) around the Earth; availability 99.22% (PDOP <= 3 at 20 deg mask), worst site 0.00%, median PDOP 1.11, mean 39.4 in view; 648 grid points x 12 epochs (MODELLED)

Inputs#

From the schema (kshana kinds --json):

  • Required fields: none
  • Optional fields: body, duration_s, step_s, mask_deg, pdop_threshold, grid_step_deg, lat_min_deg, lat_max_deg, lon_min_deg, lon_max_deg, clock, j2, track_points, max_tracks, constellation

The example scenarios/leo-pnt-mega-shell.toml sets, among others:

Field Value Unit
body earth text
clock common text
constellation[0].name LEO-PNT text
constellation[0].shell[0].altitude_km 550 km
constellation[0].shell[0].inclination_deg 53 deg
constellation[0].shell[0].pattern delta text
constellation[0].shell[0].phasing 1 count
constellation[0].shell[0].planes 32 count
constellation[0].shell[0].total 1600 count
constellation[0].shell[1].altitude_km 540 km
constellation[0].shell[1].inclination_deg 53.2 deg
constellation[0].shell[1].pattern delta text

Run it#

kshana scenarios/leo-pnt-mega-shell.toml

3 bundled scenarios use this kind; the others are in scenarios/.

What it gives#

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

Result Value Unit
body.mu_km3_s2 3.9860e5 km^3/s^2
body.name Earth text
body.radius_km 6378.137 km
body.rotation_rate_deg_s 0.004178 deg/s
global.availability_pct 99.2187 %
global.fix_pct 100 %
global.gdop.max 19.4446 1
global.gdop.mean 1.2786 1
global.gdop.median 1.255 1
global.gdop.p90 1.46 1

Result label (the engine's): 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 publi

The chart the engine writes for scenarios/leo-pnt-mega-shell.toml, kind constellation-design

Evidence#

MODELLED 1 · VALIDATED 2: the verification matrix rows that name this kind.

  • VALIDATED 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, Gal
  • VALIDATED 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 w
  • MODELLED 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 Tests: coverage_dop_gnss_lib_py_oracle.rs.

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 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, int. Oracle (ExternalDataset): Published 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
  • VALIDATED The constellation-design coverage engine on the GPS baseline 24-slot preset under the GPS Standard Positioning Service Performance Standard (SPS PS) Appendix . Oracle (ExternalDataset): GPS 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 PD
  • MODELLED The constellation-design kind beyond the two pinned cases: explicit and multi-shell designs, several constellations per run with one receiver clock per conste. Oracle (InternalConsistency): Internal 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 re

Limitations#

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

  • 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, a (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: satellites in view, PDOP/HDOP/VDOP/GDOP per 10 deg cell, and the share of time with PDOP at or below 3 above a 20 deg mask over two hours. The weak spot the map shows is the polar caps: no shell reaches above about 82 deg latitude, so a user near a pole sees every satellite on one side of the sky and the vertical geometry degrades. MODELLED: an illustrative design, two-body orbits with J2, a sph (scenario file comment, lines 17 to 21)
  • 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))

See also#