Sonnensystem und Positionierung um andere Körper
Zwei Szenarioarten arbeiten jenseits des Erde-Mond-Systems:
solar-systemmeldet jeden Körper des Katalogs zu einer Epoche: Position und Geschwindigkeit, physikalische Konstanten, Lichtlaufzeit und Entfernung von einem Beobachterkörper sowie eine Bahnspur.body-pntsetzt einen Navigationsnutzer (einen Orbiter oder einen Lander auf der Oberfläche) um einen beliebigen Katalogkörper außer Sonne und Erde, mit einer lokalen Navigationskonstellation und einer optionalen Entfernung im tiefen Raum von der Erde.
Die Art constellation-design verwendet denselben Katalog, um Konstellationen um jeden dieser Körper aufzubauen (CONSTELLATION-DESIGN.md).
Code: src/body.rs (der Katalog und seine Konstanten), src/ephem.rs (die analytischen Ephemeriden), src/ephem_provider.rs (AnalyticSolarSystem, der Anbieter, den beide Arten lesen), src/solar_system.rs und src/body_pnt.rs (die Arten) und src/radiometric.rs (Lichtlaufzeit, Zwei-Wege-Entfernung und die Shapiro-Verzögerung). Tests: tests/solar_system_horizons_reference.rs und die Unit-Tests jedes Moduls.
Der Katalog#
Achtzehn Körper: die Sonne, die acht Planeten, Pluto, der Mond, Phobos, Deimos, die vier galileischen Monde (Io, Europa, Ganymed, Kallisto) und Titan. Namen werden ohne Beachtung der Groß- und Kleinschreibung abgeglichen. Für jeden enthält src/body.rs den Gravitationsparameter GM, den äquatorialen und den volumetrischen mittleren Radius, die zweite zonale Harmonische J2 und deren Bezugsradius, wo einer veröffentlicht ist, sowie das Pol- und Nullmeridian-Modell der Internationalen Astronomischen Union (IAU) (siderische Rotationsperiode, negativ bei einem rückläufigen Rotator). Jeder Wert nennt seine Quelle im Code.
Woher die Positionen kommen#
| Körper | Modell | Kennzeichnung |
|---|---|---|
| Merkur bis Saturn und die Erde, aus Tabelle 1 (1800 n. Chr. bis 2050 n. Chr.) | Keplersche Elemente des Jet Propulsion Laboratory (JPL) von Standish und Williams, https://ssd.jpl.nasa.gov/planets/approx_pos.html | VALIDATED |
| Alle acht Planeten aus den Tabellen 2a/2b (3000 v. Chr. bis 3000 n. Chr.) | die Elemente für lange Zeitspannen derselben Seite | VALIDATED |
| Uranus und Neptun aus Tabelle 1 | wie oben | MODELLED |
| Pluto | die Zeile der Tabelle 1 von 1992 (1800 n. Chr. bis 2050 n. Chr. nur; die aktuelle Seite hat sie entfernt und nennt keinen Fehler) | MODELLED |
| Der Mond | die Mondreihe von Montenbruck und Gill, die das Erde-Mond-Baryzentrum aufteilt | MODELLED |
| Phobos, Deimos, die galileischen Monde, Titan | mittlere Elemente des JPL mit dem Rotationsmodell der IAU | MODELLED |
table = "auto" (der Standard) nimmt Tabelle 1 innerhalb von 1800 n. Chr. bis 2050 n. Chr. und die Tabellen 2a/2b außerhalb davon; table1 und table2 erzwingen jeweils eine. Pluto außerhalb seiner Tabelle ist ein Fehler, keine Extrapolation. Die Epoche ist ein Datum mit Uhrzeit nach ISO 8601 in koordinierter Weltzeit (UTC), über die Terrestrische Zeit (TT) mit den Schaltsekunden in die Baryzentrische Dynamische Zeit (TDB) umgerechnet, oder ein TDB-Julianisches Datum, direkt mit epoch_jd_tdb angegeben.
Die unabhängige Referenz ist JPL Horizons (https://ssd.jpl.nasa.gov/horizons/, Development Ephemeris DE441), mit den abgefragten Vektoren, die unter tests/fixtures/solar_system/ eingecheckt sind. Eine Planetenzeile ist VALIDATED, wo sie innerhalb des Doppelten des eigenen nominalen Fehlers der Standish-Seite bleibt. Gemessen mit cargo test --test solar_system_horizons_reference -- --nocapture:
- Tabelle 1, Merkur bis Saturn und das Erde-Mond-Baryzentrum, 12 Epochen von 1800 bis 2049: im ungünstigsten Fall das 1,87-Fache des nominalen Fehlers (Entfernung des Saturn).
- Tabellen 2a/2b, alle acht Planeten, 15 Epochen von etwa 1000 v. Chr. bis 2500 n. Chr.: im ungünstigsten Fall das 1,71-Fache (Entfernung des Mars).
- Uranus und Neptun nach Tabelle 1 überschreiten die Angaben der Seite gegenüber DE441: das 2,04- und das 5,16-Fache des nominalen Längenfehlers. Sie sind unter dem Sechsfachen festgeschrieben und bleiben MODELLED.
- Pluto: innerhalb von 39,2 Bogensekunden in der Länge und 1.14e9 m in der Entfernung.
- Monde, größter vom Planeten aus gesehener Winkel über 2000 bis 2040: Phobos 5,65 Grad, Deimos 0,38, Io 0,40, Europa 1,63, Ganymed 0,22, Kallisto 0,27, Titan 3,31. Der geozentrische Mond: 0,046 Grad.
- Planetengeschwindigkeiten: größter relativer Fehler 3.72e-3 der Geschwindigkeit (MODELLED).
Der Mond und die sieben Monde sind mit festgeschriebenen Zielwerten gemessen, aber es gibt keine veröffentlichte Schranke, gegen die sie validiert werden könnten, daher sind sie MODELLED.
Die analytischen Ephemeriden brauchen keine Kerneldatei. Ein Kernel der JPL Development Ephemeris (Positionen in DE-Güte) wird nur von den separaten Kreuzvalidierungs-Crates unter xval/ gelesen, über dasselbe Trait EphemerisProvider; das Haupt-Crate hängt nicht von ihnen ab.
solar-system#
kind = "solar-system"
epoch = "2030-01-01T00:00:00"
bodies = ["Earth", "Moon", "Mars", "Jupiter", "Europa"]
observer = "Mars"
[[links]]
from = "Europa"
to = "Earth"
Solar system at 2030-01-01T00:00:00 (JD 2462502.50080 TDB), 5 bodies, observer Mars
Standish Table 1 (1800 AD to 2050 AD)
Earth 0.9833 au lon 100.18 deg light time 1038.1 s [VALIDATED]
Moon 0.9815 au lon 100.28 deg light time 1037.8 s [MODELLED]
Mars 1.3814 au lon 337.83 deg observer [VALIDATED]
Jupiter 5.4235 au lon 222.19 deg light time 3068.4 s [VALIDATED]
Europa 5.4194 au lon 222.17 deg light time 3066.6 s [MODELLED]
link Europa -> Earth: one-way 2993.281 s, two-way 5986.612 s, Shapiro 33.7 us, Sun 50.0 deg
Eingaben: epoch (Standard 2026-01-01T00:00:00) oder epoch_jd_tdb; bodies (Standard alle achtzehn); observer (Standard die Erde); track_points je Bahn (8 bis 2000, Standard 120); table; und beliebig viele [[links]], jede zur Epoche empfangen.
Je Körper liefert das Ergebnis seine Klasse und seinen Mutterkörper, die Kennung der NASA Navigation and Ancillary Information Facility (NAIF), die heliozentrische Position und Geschwindigkeit im Internationalen Himmelsreferenzsystem (ICRF, äquatorial J2000) in Metern und Metern pro Sekunde, die ekliptikale Länge, Breite und Entfernung, die Position relativ zum Mutterkörper, die Umlaufdauer, die obigen Konstanten, den Pol und den Nullmeridian zur Epoche, den nominalen Fehler nach Standish, wo einer existiert, seine Bezeichnung und Methodenzeichenfolge sowie eine Bahnspur über einen Umlauf (heliozentrisch bei einem Planeten, auf den Mutterkörper zentriert bei einem Mond; ein einzelner Punkt bei der Sonne). Die Verbindung vom Beobachter und jede zusätzliche Verbindung liefert:
- die newtonsche Einweg-Lichtlaufzeit, gelöst vom radiometrischen Fixpunkt-Lichtlaufzeit-Löser mit dem Sender an seiner retardierten Position, und die entsprechende Einweg-Entfernung;
- die Zwei-Wege-Lichtlaufzeit und -Entfernung;
- die Shapiro-Verzögerung der Sonne, gesondert ausgewiesen und nicht addiert;
- der Sonnenabstandswinkel.
Die Lichtlaufzeit ist gegen die von Horizons gemeldete Einweg-Lichtlaufzeit VALIDATED: Mars und Jupiter zum Erdmittelpunkt bei vier Epochen von 2000 bis 2040, größter Fehler 0,070 s für den Mars gegenüber einem Zielwert von 0,207 s und 1,31 s für Jupiter gegenüber 4,04 s. Der Zielwert ist das Doppelte der Summe der Standish-Entfernungsfehler des Ziels und des Erde-Mond-Baryzentrums, geteilt durch die Lichtgeschwindigkeit: Die Lichtlaufzeit kann nicht besser sein als die Positionen. Sie ist die newtonsche geometrische Lichtlaufzeit, keine relativistische oder plasmakorrigierte Observable.
Das mitgelieferte scenarios/solar-system-tour.toml meldet alle achtzehn Körper bei 2026-09-28T00:00:00 mit Spuren aus 180 Punkten und fügt die Verbindungen Mars-zu-Jupiter (Einweg 2193,539 s), Saturn-zu-Erde (4212,176 s) und Europa-zu-Jupiter (2,218 s) hinzu.
body-pnt#
Ein Nutzer navigiert um einen namentlich gewählten Körper (jeden Katalogkörper außer Sonne und Erde, die die Art zurückweist) mit zwei Arten von Messung:
- Einweg-Pseudoentfernungen von einer Walker-Delta-Navigationskonstellation um den Körper (
planesmalsats_per_plane, Phasenversatz zwischen den Ebenenphasing_f), geflogen als Zweikörperbahnen mit der säkularen Drift durch das eigeneJ2des Körpers; die Nutzeruhr ist unbekannt, daher tragen diese Zeilen eine Spalte für den Uhrenbias; - optional eine Zwei-Wege-Entfernung vom Erdmittelpunkt (
[earth_link]), die keine Nutzeruhr braucht und als Einweg-Entfernung mit eigenem Rauschen gemeldet wird. Richtung und Entfernung der Erde stammen zu jeder Epoche aus der analytischen Ephemeride.
Eine Sichtlinie ist blockiert, wenn sie innerhalb des mittleren Radius des Körpers verläuft (der Sehnentest der Art mars-pnt), und ein Oberflächennutzer braucht zusätzlich die Elevationsmaske. Zu jeder Epoche bildet der Lauf den geometrischen und den Positions-Dilution-of-Precision-Wert (GDOP, PDOP) der Konstellation allein, die formale Ein-Sigma-Positionsunsicherheit mit und ohne die Erdzeile und je eine geseedete Gauß-Newton-Kleinste-Quadrate-Lösung in beiden Fällen, sodass der Bericht zeigt, was die Verbindung im tiefen Raum hinzufügt.
| Tabelle | Feld | Standard |
|---|---|---|
| oberste Ebene | body |
Mars |
epoch / epoch_jd_tdb |
2027-02-19T00:00:00, eine Mars-Opposition | |
duration_s, step_s |
86.400 s, 600 s | |
seed |
1 | |
table |
auto |
|
[user] |
kind |
orbiter (oder surface) |
Orbiter: altitude_km, inclination_deg, raan_deg, u0_deg, eccentricity |
400 km, 75 Grad, 0, 0, 0 | |
Oberfläche: lat_deg, lon_deg, height_m |
0, 0, 0 | |
[constellation] |
planes, sats_per_plane, phasing_f |
3, 4, 1 |
altitude_km |
drei mittlere Radien | |
inclination_deg |
60 Grad | |
sigma_range_m |
1 m | |
mask_deg (Oberflächennutzer) |
10 Grad | |
[earth_link] |
enabled, sigma_range_m |
wahr, 1 m |
raan_deg ist die Rektaszension des aufsteigenden Knotens im Äquatorialsystem des Körpers und u0_deg das Argument der Breite zur Epoche.
Die beiden mitgelieferten Szenarien, wie sie mit kshana 0,36 laufen (portable Mathematik, auf jeder Plattform gleich):
scenarios/mars-orbit-pnt.toml |
scenarios/europa-surface-pnt.toml |
|
|---|---|---|
| Nutzer | Orbiter, 300 km, 93 Grad | Oberfläche, 20 Grad N, 60 Grad O |
| Relais | 12 bei 10.000 km, 60 Grad | 12 bei 4500 km, 55 Grad, Maske 10 Grad |
| Zeitspanne | ein Sol, 296 Epochen | 306.822 s, 171 Epochen |
| Lichtlaufzeit zur Erde, einfach / hin und zurück | 338,3 s / 676,6 s | 2182,9 s / 4365,8 s |
| Erde in Sicht | 0,811 der Epochen | 0.439 |
| Verfügbarkeit, nur Relais / mit der Entfernung zur Erde | 1.000 / 1.000 | 0.480 / 0.713 |
| Medianer PDOP | 1.375 | 5.360 |
| RMS-Lösungsfehler, nur Relais / mit der Entfernung zur Erde | 1,883 m / 1,629 m | 112,742 m / 86,499 m |
| Mediane formale Sigma, nur Relais / mit der Entfernung zur Erde | 1,375 m / 1,304 m | 5,360 m / 4,239 m |
(RMS: quadratischer Mittelwert.) Eine Europa-Epoche (t = 16.200 s) liegt an der Verfügbarkeitsgrenze, wo das letzte Bit eines berechneten Radius entscheidet, ob ihre Lösung mit der Entfernung zur Erde zustande kommt. Vor 0,36 entschied die Mathematikbibliothek des Hosts darüber, sodass dasselbe Szenario für die beiden Werte „mit der Entfernung zur Erde“ 0,719 und 86,147 m auf Linux x86-64 und 0,725 und 85,800 m auf macOS arm64 ausgab. Seit 0,36 wird jede transzendente Funktion von der portablen Mathematikbibliothek berechnet, die Epoche löst sich auf jeder Plattform auf dieselbe Weise auf (nativ und WebAssembly liefern dieselben Bytes), und die Werte sind 0,713 und 86,499 m (docs/revisions/STUDIO15-portable-math-rebaseline.md). Um Europa hebt die Entfernung zur Erde die Verfügbarkeit von 0,480 auf 0,713 der Epochen. Wo die Erde den Rand nie freigibt, fügt die Verbindung nichts hinzu: Ein Lander bei 89,5 Grad S auf dem Mond unter einer Relaishülle aus 12 Satelliten in 5000 km hat die Erde bei 0 von 145 Epochen in Sicht, und seine Fehler sind mit und ohne die Verbindung gleich.
MODELLED. Die Relaisbahnen ignorieren dritte Körper (der Zug Jupiters auf Relais um Europa ist nicht modelliert), das Rauschen ist gaußsch bei den angegebenen Pegeln, und das Messmodell ist augenblicklich, nicht um die Lichtlaufzeit retardiert. Was geprüft wird: die Relaisperiode gegen das dritte Keplersche Gesetz für den Körper, ein Orbiter, der seinen Radius hält, und ein Lander auf der Oberfläche, die Entfernung zur Erde, die die formale Unsicherheit nie verschlechtert, die geseedeten Lösungsfehler, die mit dem formalen Sigma übereinstimmen (quadratischer Mittelwert von Fehler über Sigma in [0,6, 1,5]), und ein deterministischer Lauf. Nichts davon sind Navigationsdaten einer Mission.
Die Art ephemeris#
Trotz des Namens ist ephemeris eine Erdsatelliten-Art: ein Satellit, aus einem Two-Line-Element-Satz (TLE) über den Propagator Simplified General Perturbations 4 (SGP4) oder aus einer analytischen Bahn, über ein Zeitraster. In jedem Schritt gibt sie den inertialen Zustand (Position und Geschwindigkeit) im System True Equator, Mean Equinox (TEME) und im Geocentric Celestial Reference System (GCRS), die erdfeste Position, den Subsatellitenpunkt im World Geodetic System 1984 (WGS 84) und, für eine optionale Bodenstation, Azimut, Elevation, Entfernung und Entfernungsrate aus. eop_finals2000a nimmt den Text einer finals2000A-Datei des International Earth Rotation and Reference Systems Service (IERS) für UT1−UTC und Polbewegung je Epoche entgegen. Code: src/ephemeris.rs.
$ kshana scenarios/ephemeris.toml
scenario 0d4dd01b3160 | sgp4 (TLE) | 559 samples | alt 419–434 km | |lat| ≤ 51.8° | speed 7653–7661 m/s | max el 25.7° peak Doppler 34.3 kHz
Nicht modelliert#
- Relativistische Lichtlaufzeitterme über die gesondert gemeldete Shapiro-Verzögerung hinaus und die Verzögerung durch Sonnenplasma.
- Positionen, die besser sind als die oben angegebene Genauigkeit von Standish und der mittleren Elemente; im Haupt-Crate gibt es keinen Kernel-Leser.
- Störungen durch dritte Körper bei Relais von
body-pntund bei Bahnen vonconstellation-design. - Gelände auf einem beliebigen Körper: Ein Körper ist seine mittlere Kugel.
- Interoperabilitäts-Exporte: CZML, KML und GeoJSON beschreiben Positionen um die Erde, daher exportieren die Szenarien
solar-systemundbody-pntkeine (INTEROP.md).
Referenzen#
- E. M. Standish und J. G. Williams, "Keplerian Elements for Approximate Positions of the Major Planets", JPL Solar System Dynamics, https://ssd.jpl.nasa.gov/planets/approx_pos.html.
- O. Montenbruck und E. Gill, Satellite Orbits: Models, Methods and Applications, Springer, 2000, §3.3.2.
- B. A. Archinal et al., "Report of the IAU Working Group on Cartographic Coordinates and Rotational Elements: 2015", Celestial Mechanics and Dynamical Astronomy 130, 2018.
- JPL Horizons, https://ssd.jpl.nasa.gov/horizons/.