LEO-PNT in Kshana
LEO-PNT is positioning, navigation and timing (PNT) from satellites in low Earth orbit (LEO), alongside or instead of the medium Earth orbit (MEO) global navigation satellite systems (GNSS) such as the Global Positioning System (GPS) and Galileo. This page ties together every LEO-PNT kind and scenario of the engine: what each computes, the bands and signal presets and where their numbers come from, what the navigation message carries, what is VALIDATED and what is MODELLED, and how to run each scenario. The kind pages go deeper:
| Page | Kinds |
|---|---|
| LEO-SIGNAL.md | leo-signal (signal designs) and the multi-band spectrum panels |
| LEO-PASS.md | leo-pass (pass geometry and link budget per band, low-energy fixes, ionosphere sounding, spoofing monitors) |
| LEO-NAVMSG.md | leo-navmsg (the broadcast message: fitter, user algorithm, binary and text formats) |
| LEO-PNT-FUSION.md | leo-pvt, leo-ppp, ntn-positioning (fused positioning, precise point positioning, 5G non-terrestrial network (NTN) positioning, timing, polar coverage) |
| SPECTRUM.md | spectrum (jamming waterfalls and the jammer-to-signal ratio (J/S) per band) |
| CAMPAIGNS.md | campaign (chains, sweeps, Monte Carlo and compositions of any kinds) |
System-agnostic first#
The engine is a generic LEO-PNT simulator. Any constellation (a Walker pattern, explicit orbital elements, a two-line element set (TLE) through the Simplified General Perturbations 4 (SGP4) propagator, or a designed single pass), any signal design (any band, any mix of binary phase-shift keying (BPSK), binary offset carrier (BOC) and frequency-division multiple access (FDMA) components), any navigation-message model. Named systems are optional presets: data files, each with its source, which fill only what a scenario leaves out. Every capability, test, oracle and bundled scenario runs with no Celeste data present.
The Celeste IOD (in-orbit demonstration) preset is one optional preset among them. Its
signal parameters were presented at the ESA NAVISP (European Space Agency Navigation
Innovation and Support Programme) LEO-PNT workshop, 2026, and have no public source yet.
Every workshop-derived number of the engine lives in one file,
src/celeste_iod.rs, which build.rs compiles in only when it
exists, and in the repository-only scenarios scenarios/*celeste-iod*.toml. Deleting that
file and those scenarios withholds the preset with no source edit; every other test, oracle
and scenario runs without it (tests/workshop_preset_isolation.rs guards which files may
name it). This page gives none of its numbers.
The kinds and how they connect#
| Kind | What one run computes | Label |
|---|---|---|
leo-signal |
a signal design's band-limited power spectral density (PSD), power in band, root-mean-square (Gabor) bandwidth, code-tracking jitter against carrier-to-noise density (C/N0), acquisition search, and spectral separation coefficients (SSC) against GNSS signals; a band trade (ultra high frequency (UHF), L, S, C) | closed forms VALIDATED, designs and trade MODELLED |
spectrum (multi-band panels) |
per-band waterfalls with per-band jammers (continuous wave (CW), chirp, narrowband, wideband, matched), each signal's J/S and effective C/N0 over a timeline | spectra VALIDATED, jammers MODELLED |
leo-pass |
pass geometry, Doppler and Doppler rate, free-space loss, satellite and user antennas, ITU-R (International Telecommunication Union, Radiocommunication Sector) gaseous, rain, scintillation and building entry loss, C/N0 per band and epoch beside the MEO GNSS carriers; ionosphere per band and the ionosphere-free pairs; low-energy fixes; ionosphere sounding; spoofing monitors | components VALIDATED, pass MODELLED |
leo-navmsg |
the broadcast ephemeris and clock message: fitter, signal-in-space range error (SISRE) against fit interval and update period, mid-pass update continuity, user algorithm, binary frame with a 24-bit cyclic redundancy check (CRC-24Q), exports in the style of RINEX 4 (Receiver Independent Exchange Format) and as comma-separated values (CSV) | user algorithm, weights and CRC VALIDATED, fits MODELLED |
leo-pvt |
Doppler positioning, joint GNSS + LEO pseudorange fixes with inter-system biases, polar and Arctic geometry, time transfer to Coordinated Universal Time (UTC), with an optional per-epoch time-error trace | maximum Doppler VALIDATED, rest MODELLED |
leo-ppp |
precise point positioning (PPP) convergence with GNSS only and with LEO layers | MODELLED |
ntn-positioning |
5G NTN positioning accuracy from the downlink bandwidth (Cramér-Rao bound) | MODELLED |
leo-pnt-chain |
one system end to end: signal design, pass, message, fused fix and PPP, every hand-off listed | MODELLED |
campaign |
any of the above chained on one timeline, swept, run as a Monte Carlo ensemble or composed under shared conditions | MODELLED |
The chain hands values in code (see End-to-end LEO-PNT chain below): the signal design sets the pass band's EIRP (equivalent isotropically radiated power) split and tracked chip rate; the pass gives the tracked C/N0 and code jitter; the navigation message's SISRE and the pass C/N0 weight the LEO measurements of the fused fix.
Bands#
The generic designs use public band centres; each is REPRESENTATIVE, not any system's
signal (data/leo-signals/generic-bands.toml, generic-c-band.toml).
| Band | Allocation | Generic design | Centre | Transmit bandwidth | Components | First-order ionospheric delay relative to L |
|---|---|---|---|---|---|---|
| UHF | not a radionavigation allocation (representative); carrier from the public openRECEIVER survey (page since withdrawn; see LEO-SIGNAL.md) | generic-uhf |
465 MHz | 10 MHz | BPSK(5) pilot and data | 6.6 × |
| L | radionavigation-satellite service (RNSS), the Galileo E5 centre | generic-l |
1191.795 MHz | 20.46 MHz | BPSK(10) pilot and data | 1 |
| S | radiodetermination-satellite service (RDSS), the S carrier of NavIC (Navigation with Indian Constellation) | generic-s |
2492.028 MHz | 16.5 MHz | BPSK(5) pilot and data | 0.23 × |
| C | RNSS, centre of the 5010–5030 MHz allocation | generic-c, generic-c-band-leo |
5020 MHz | 20 MHz | BPSK(10) pilot and data | 0.056 × |
| C extended | outside the RNSS allocation (representative) | generic-c-wide |
5100 MHz | 120 MHz | BPSK(50) pilot and data | 0.055 × |
| S (mobile-satellite service, MSS) | MSS downlink, 3GPP (Third Generation Partnership Project) band n256 | used by ntn-positioning |
2172.5 MHz | 0.18 to 20 MHz | 5G New Radio positioning signals | 0.30 × |
BPSK(n) is binary phase-shift keying at n × 1.023 Mchip/s. The delay ratio is (f_L/f)²
with f_L = 1191.795 MHz. The free-space loss grows by 20·log10(f/f_L) at the same
range (−8.2 dB at UHF, +6.4 dB at S, +12.5 dB at C).
Signal and system presets#
| Preset | Source | What it carries |
|---|---|---|
generic-bands, generic-leo |
REPRESENTATIVE, band centres from the ITU Radio Regulations | generic-bands (signal designs): the band table above; generic-leo (the leo-pass default): UHF at 450 MHz, L, S and C at the centres above, 0 dBW EIRP per band, a 550 km sun-synchronous Walker 240/12/1 layer |
generic-c-band |
REPRESENTATIVE, for C-band systems whose parameters are not public (for example TrustPoint) | BPSK(10) at 5020 MHz, isoflux beam |
xona-pulsar |
PUBLIC: Leclère, Marathe and Reid, Institute of Navigation (ION) GNSS+ 2025, arXiv 2509.19551 | X1 at 1593.3225 MHz (1.023 Mchip/s) and X5 at 1190.51625 MHz (10.23 Mchip/s), the published minimum and maximum received powers, 258 satellites at about 1080 km (53 and 97 deg shells) |
iridium-stl |
PUBLIC: Resilient Navigation and Timing Foundation (RNTF) briefing | bursts in 1616–1626 MHz, Doppler up to ±36 kHz, 66 satellites at 780 km (781 km in the leo-pass preset), received power "300 to 2400 times GPS" |
starlink-soo / starlink-soop / starlink-sop (signal, pass and positioning kinds) |
PUBLIC signal figures: Kozhaya, Saroufim and Kassas, NAVIGATION 72(1); REPRESENTATIVE orbit | a 240 MHz Ku-band beacon used for Doppler only, C/N0 about 57 dB-Hz |
centispace |
PUBLIC signal structure: PMC10301026; REPRESENTATIVE orbit and power | BPSK at 2.046 Mchip/s near L1 and L5 |
atomic-zero-clock (atomic in the message kind) |
PUBLIC: InsideGNSS, ATOMIC (Autonomous Time and Orbit Determination for Microsatellite Constellations) payload | a 6th-order polynomial ephemeris with no clock terms (the clock is steered to GNSS time) |
celeste-iod (optional) |
WORKSHOP: presented at the ESA NAVISP LEO-PNT workshop, 2026 | the in-orbit demonstration's signal configuration #1 and message layout, in the one withholdable file |
Every preset marks its numbers PUBLIC (with a URL), REPRESENTATIVE (a documented design choice, never a claim about a real system) or WORKSHOP, and the result of every run that uses one says which.
The navigation message#
A LEO navigation message (LEO-NAVMSG.md) carries four parts, the structure the Galileo Open Service Signal-in-Space Interface Control Document (OS SIS ICD) and the published LEO proposals share:
| Part | Content |
|---|---|
| Ephemeris | the Galileo ICD 16-parameter Keplerian set (square root of the semi-major axis, eccentricity, inclination and its rate, right ascension of the node and its rate, argument of perigee, mean anomaly, mean-motion correction, six harmonic corrections, reference time), plus along-track, cross-track and radial correction polynomials; or the Liu et al. 2025 22-parameter model (doi 10.3390/rs17162894); or the ATOMIC zero-clock polynomial |
| Synchronisation | week number and time of week (TOW), and a second-order clock polynomial (af0, af1, af2 about toc) |
| Auxiliary | space-vehicle identifier (SVID), issue of data (IOD), signal health |
| Other services | ionospheric corrections for single-frequency users (a Klobuchar-style set and NeQuick-G ai0–ai2) and the system-time-to-UTC offset (A0, A1, leap seconds and their schedule) |
The binary frame is Kshana's own documented encoding modelled on these components, not any system's bit layout. RINEX 4.02 defines no LEO navigation records, so the RINEX-style export is a documented Kshana extension (prior art: arXiv 2401.17767).
Resilience#
| Scenario | Kind | Result of one run |
|---|---|---|
leo-resilience-multiband-diversity |
campaign sweep of spectrum |
a 50 MHz barrage at 1185 MHz swept from −140 to −80 dBW: GPS L5 is lost at −105 dBW, Galileo E5a and the LEO L-band signal at −100 dBW; the UHF, S- and C-band LEO signals keep 49.4, 49.2 and 47.4 dB-Hz at every power |
leo-resilience-js-margin |
spectrum |
a 40 MHz barrage at 1185 MHz stepping up 5 dB every 10 s from −125 dBW: GPS L5 lost at −105 dBW, Galileo E5a at −100 dBW, Xona X5 (at its published minimum, −144.9 dBW) at −95 dBW; a generic LEO signal at −135 dBW still tracks at −90 dBW (28.9 dB-Hz). Received power buys J/S margin dB for dB |
leo-resilience-spoof-doppler |
leo-pass [spoofer] |
a 30 m position jump at a surveyed site: the GNSS-only Doppler test never detects it; the test on every channel does, 105 s after the onset (see LEO-PASS.md) |
leo-resilience-spoof-monitors |
campaign compose of leo-pass |
four spoofers, both monitors: an L-band-only spoofer and an all-band spoofer without ionosphere are caught by the cross-band monitor at the onset (300 s) and by the Doppler monitor at 420 s and 395 s; an ionosphere-aware all-band spoofer only by the Doppler monitor (395 s); a GNSS-only 30 m push by neither |
leo-resilience-gnss-jammed-leo-carries |
campaign chain (spectrum, integrity) |
GNSS jammed for 15 minutes (GPS L1 coarse/acquisition (C/A) code to about 10 dB-Hz, E5a to 17.4 dB-Hz against a 25 dB-Hz floor) while the S- and C-band LEO signals hold 49.2 and 47.4 dB-Hz; receiver autonomous integrity monitoring (RAIM) on the LEO layer alone forms a protection level at every epoch, under the 50 m vertical alert limit at 28 of 30 grid times, with the alarm raised at the other two; nominal and recovery phases 5.4 to 15.6 m |
The spoofing monitors, their statistics and their limits are on
LEO-PASS.md. The multi-band waterfall with a
different jammer per band is multi-band-jamming-waterfall (LEO-SIGNAL.md).
One scenario per experiment focus area#
The eight experiment focus areas of the Celeste IOD call for third-party experimentation (ESA Open Space Innovation Platform, OSIP) are generic LEO-PNT questions; each has a system-agnostic scenario:
| Focus area | Scenario | Kind | Result of one run |
|---|---|---|---|
| High-accuracy positioning (PPP) | leo-focus-ppp-altitude |
campaign sweep of leo-ppp |
a 192-satellite layer at 500, 1000 and 1500 km cuts multi-GNSS float PPP convergence at Munich from 13.0 min to 3.25, 3.25 and 3.5 min (six realisations, 30 s epochs) |
| PNT resilience (L, S, C) | leo-resilience-multiband-diversity |
campaign sweep of spectrum |
see Resilience |
| 5G/6G NTN compatibility | leo-focus-ntn-bandwidth |
campaign sweep of ntn-positioning |
positioning-reference bandwidth 180 kHz to 20 MHz: zenith range sigma 6.5 m to 5.8 cm, time-of-arrival 3D error 30.1 m to 2.1 m, floored by the 1 m network synchronisation error |
| Low-energy PNT for the Internet of Things (IoT) and mobile | leo-focus-iot-eirp |
campaign sweep of leo-pass [iot] |
UHF EIRP −35 to +5 dBW: below a median C/N0 of about 35 dB-Hz the hot-start energy per fix climbs from 18 mJ to 55 J; above it the battery life at one fix per hour is 8334 days, set by the sleep current |
| LEO-PNT science | leo-focus-science-iono-sounding |
leo-pass |
slant total electron content (TEC) from every band pair of a four-band pass over Tromsø: 18.85 TEC units recovered by each pair, 1-sigma 0.017 (UHF with L) to 2.9 TEC units (S with C) |
| Additional PNT data services | leo-focus-data-services |
campaign compose of leo-navmsg |
the Kshana message frame grows from 146 bytes (ephemeris and clock, 1045 bits) to 154 with the Klobuchar set, 159 with NeQuick-G and 171 with the UTC parameters |
| Indoor navigation (UHF) | leo-focus-indoor-uhf |
campaign compose of leo-pass |
peak indoor C/N0 in a traditional building: UHF 34.1, L 24.2, S 16.5, C 9.0 dB-Hz; in a thermally efficient one UHF 15.3 dB-Hz and every other band lower |
| MEO + LEO fused PNT | leo-focus-fused-pnt-sisre |
campaign sweep of leo-pvt |
Xona X5 fused with GPS and Galileo over Madrid: GNSS-only 3D error 1.06 m root mean square (RMS); fused 0.08 m at a 5 cm LEO SISRE, 0.57 m at 0.5 m and 1.01 m at 5 m |
One scenario per end-user vertical#
Each vertical is a campaign chain on one timeline, so it animates, and each has a
leo-pass member, so it exports geometry (see Running).
| Vertical | Scenario | Result of one run |
|---|---|---|
| Autonomous vehicles | leo-vertical-autonomous-vehicle |
a car in Munich: open road, fused error 0.30 m mean; in a 35 deg urban canyon GPS and Galileo keep 8 satellites and a 5.8 m mean error, the generic LEO layer adds 4 to 5 and brings it to 2.1 m, still above the 1.5 m lane-level threshold at about half the canyon epochs |
| Railway and maritime | leo-vertical-rail-maritime |
the bundled maritime-strait-jamming ship loses every GNSS satellite (12.1 dB-Hz) while its S- and C-band LEO pass reaches 44.2 and 38.1 dB-Hz; the bundled rail-tunnel-coast train reaches 2 m of inertial error 35.8 s into the tunnel; in the open its LEO pass gives 35 to 50 dB-Hz in L |
| Critical infrastructure | leo-vertical-critical-infrastructure-timing |
a substation time server's TCXO-class oscillator (temperature-compensated crystal) free-running through a day without GNSS reaches 29 µs, past the 1 µs guard between 75 and 80 minutes after the loss (on the 5-minute grid); the same class disciplined to Iridium stays within −40 to +11 ns |
| Polar and Arctic users | leo-vertical-polar-arctic |
GPS + Galileo mean position dilution of precision (PDOP) 1.38, 1.57 and 1.62 at Tromsø, Svalbard and the North Pole; with Iridium 1.29, 1.34 and 1.26, from 3.0, 5.5 and 6.8 Iridium satellites in view |
| Wireless networks 5G/6G | leo-vertical-5g-network-timing |
a base station's oven-controlled crystal oscillator (OCXO) in holdover crosses the 1.1 µs network limit after 8863 s and the 1.5 µs end-application limit after 10006 s (the telecom-timing kind's analysis); disciplined to Xona X5 its time error stays between −0.7 and +0.3 ns all day, with a predicted 1-sigma of 5 ns, the broadcast UTC offset's stated uncertainty |
| Asset tracking and IoT | leo-vertical-asset-tracking-iot |
a container tag's hot UHF fix costs 18 mJ on the quay and at sea (8334 days of battery at one fix an hour) and 34 mJ in a warehouse (5770 days), where L band falls to 20 to 24 dB-Hz |
VALIDATED and MODELLED#
A row is VALIDATED only when a test reproduces a published setup and pins the published figure within a stated tolerance; everything else is MODELLED with its rationale (VERIFICATION-MATRIX.md, MODELLED-RATIONALE.md).
VALIDATED LEO-PNT rows:
- closed-form band-limited signal power and early-late code-tracking jitter at published operating points (Betz and Kolodziejski 2009), with the Gabor bandwidth and SSC cross-checked;
- the maximum Doppler of a LEO navigation satellite (Xona Pulsar X1 32–34 kHz, Iridium ±36 kHz), and the static-user Doppler envelope against arXiv 2509.19551 Table 1;
- ITU-R P.838-3 rain coefficients, P.618-14 rain attenuation and tropospheric scintillation, and P.2109-2 building entry loss against the ITU-R Study Group 3 validation data;
- the first-order ionospheric delay scaling and free-space loss (IS-GPS-200 group-delay ratio, the Friis form);
- the global-average SISRE weights (Montenbruck et al. 2018), the Galileo ICD user algorithm against RTKLIB on real broadcast ephemerides, and CRC-24Q against its catalogue check value.
MODELLED LEO-PNT rows: every signal design and band trade, the multi-band waterfall, every pass and link budget as a whole, the presets, low-energy fixes, the message fitter and formats, Doppler and joint positioning, PPP convergence, NTN positioning, time transfer, polar coverage, the end-to-end chain, the spoofing monitors and ionosphere sounding, and every campaign (a campaign composes kinds and adds no physics; its composition identities are tested, CAMPAIGNS.md). No LEO C/N0, ranging error or positioning figure is compared with a measurement of any satellite.
Running a scenario#
Every scenario above is bundled: kshana example <name> prints it, and
kshana scenarios/<name>.toml --animate html --export all
writes, next to the file, the result (.result.json), the chart (.chart.svg), the
advanced report (.report.html and .report.json, with a section that embeds the animated
run and lists the exports), the interactive player (.animation.html) and the exports.
What applies depends on the kind:
- a run with a time axis animates:
leo-passepochs, thespoof.seriesof a spoofing run,spectrumtimelines,leo-pvtjoint epochs and timing traces,leo-ppperror curves and every campaign chain. A sweep or a composition has no time axis:--animaterefuses it with exit status 1 and then the command writes nothing at all, so run the eight sweeps and compositions above (leo-resilience-multiband-diversity,leo-resilience-spoof-monitorsand everyleo-focus-*scenario exceptleo-focus-science-iono-sounding) without--animate; leo-passandleo-pnt-chainexport CZML (the Cesium Language), KML (Keyhole Markup Language), GeoJSON and STK (Systems Tool Kit) ephemerides of the pass geometry; a campaign exports each member that has geometry as its own file set, the member label in the file name (<name>.<member>.czml), so every vertical exports its LEO passes; the other LEO kinds state why a format does not apply (INTEROP.md).
The remaining LEO scenarios, by kind (details on each kind's page):
| Kind | Scenarios |
|---|---|
leo-signal |
leo-band-trade, xona-pulsar-signals, optional celeste-iod-classical-pilot-signals |
spectrum |
multi-band-jamming-waterfall |
leo-pass |
leo-pass-vs-gnss-cn0, leo-pass-xona-pulsar, leo-pass-iridium, leo-indoor-uhf, leo-iot-energy, optional leo-pass-celeste-iod-multiband |
leo-navmsg |
leo-navmsg-fit-interval-trade, leo-navmsg-model-comparison, leo-navmsg-midpass-update, leo-navmsg-encode-decode, optional leo-navmsg-celeste-iod |
leo-pvt |
leo-doppler-positioning, starlink-sop-doppler-positioning, meo-leo-fused-pvt, polar-arctic-leo-coverage, leo-timing-utc, optional celeste-iod-fused-pvt |
leo-ppp |
leo-ppp-convergence |
ntn-positioning |
ntn-5g-positioning |
leo-pnt-chain |
leo-pnt-end-to-end, xona-pulsar-end-to-end, optional celeste-iod-end-to-end |
constellation-design |
leo-pnt-mega-shell |
slot-timing |
slot-timing-ocxo-leo |
The optional scenarios are repository-only and are withheld with the Celeste preset file.
Two of them sit in other kinds. leo-pnt-mega-shell (constellation-design) sizes a
5000-satellite LEO-PNT constellation in four illustrative Walker shells: availability
99.22 % at a PDOP of 3 or less above a 20° mask, median PDOP 1.11 and 39.4 satellites in
view on average over 648 grid points and 12 epochs. slot-timing-ocxo-leo (slot-timing)
asks how long the datasheet OCXO of a LEO smallsat stays inside a 100 ns slot guard at k = 3
after its last GNSS fix: the guard breaks 650.8 s after a fix, so it needs a fix at least
every 645.8 s (133.8 a day), with random-walk frequency noise the dominant term.
End-to-end LEO-PNT chain#
The leo-pnt-chain kind (src/leo_pnt_chain.rs) follows one
LEO-PNT system from its signal design to the user's position. Each stage is the engine's own
kind, run on its own table of the chain scenario, and the chain hands values from one stage
to the next in code:
| From | To | What is handed on |
|---|---|---|
leo-signal ([signal], signal_design) |
leo-pass |
the tracked component's power share, the in-band fraction and the tracked chip rate (the band's EIRP split and its C/N0 offset) |
leo-pass ([pass]) |
leo-navmsg |
the chain satellite's altitude and inclination (the message's truth orbit), unless [navmsg.orbit] states them |
leo-pass |
leo-pvt ([fusion]) |
the tracked C/N0 at the positioning mask and at the zenith, from a least-squares line in sin(elevation) fitted to the pass |
leo-navmsg ([navmsg]) |
leo-pvt, leo-ppp ([ppp]) |
the signal-in-space range error (SISRE): the message's representation error (root mean square, orbit and clock) with the scenario's od_sisre_m orbit-determination term in root-sum-square |
leo-signal |
leo-pvt |
the carrier frequency and the tracked chip rate |
A value is handed on only where the downstream table leaves it unset, and every hand-off is
listed in the result's handoffs array with its value, unit and target. A band of [pass]
must name the design (signal = "<design>"); that is how a leo-pass band carries any
leo-signal design on its own too: it takes the design's centre frequency, transmit
bandwidth and tracked chip rate, splits its EIRP across the components, and reports the
tracked-component C/N0 and the band-limited coherent early-late code-tracking jitter
(Betz and Kolodziejski 2009; half-chip spacing, 1 Hz loop, 20 ms) at every epoch.
Scenarios:
| Scenario | System | Result of one run |
|---|---|---|
leo-pnt-end-to-end |
generic: the representative generic-l design, a 1080 km, 53° pass over Madrid, a 240-satellite Walker layer |
tracked C/N0 peak 58.2 dB-Hz, median code jitter 0.050 m; SISRE 0.250 m handed on; GNSS-only root-mean-square (RMS) 3D error 1.60 m, GNSS + LEO 0.43 m; precise point positioning (PPP) convergence 11.5 min GNSS only, 7.5 min with the LEO layer |
xona-pulsar-end-to-end |
Xona Pulsar X5 (arXiv 2509.19551), the inclined shell for positioning and both shells for PPP | tracked C/N0 peak 66.3 dB-Hz, median code jitter 0.018 m; GNSS-only RMS 3D error 1.49 m, GNSS + LEO 0.68 m; PPP convergence 20.6 min GNSS only, 5.9 min with Pulsar |
celeste-iod-end-to-end (optional) |
Celeste IOD E5 configuration #1 with the Celeste message preset (withheld with the preset) | the pass reproduces the peak total C/N0 the preset is calibrated to (the value lives in the preset file); two satellites barely move a 95-minute fused fix (1.50 m to 1.48 m RMS 3D) |
kshana scenarios/leo-pnt-end-to-end.toml --animate html --export all
writes the result, the chart, the advanced report (which embeds the animated pass and links the exports), the interactive player, and CZML (the Cesium Language), KML (Keyhole Markup Language), GeoJSON and STK (Systems Tool Kit) ephemeris files of the pass geometry.
The chain is MODELLED: it adds no physics, and each stage keeps its own labels. The
positioning stage's C/N0 model is a straight line in sin(elevation), so a pass-specific
shape is reduced to two numbers; the message stage models no orbit determination, which is
why od_sisre_m is a stated input (0.25 m in the bundled scenarios, representative of the
decimetre-level on-board orbit determination and steered chip-scale clock the ATOMIC payload
reports: https://insidegnss.com/first-steps-toward-a-fully-operational-leo-pnt-payload/).