Solsystemet og posisjonering rundt andre legemer
To scenario-kind-er fungerer utenfor jord-måne-systemet:
solar-systemrapporterer hvert legeme i katalogen ved én epoke: posisjon og hastighet, fysiske konstanter, lystid og avstand fra et observatørlegeme, og et banespor.body-pntplasserer en navigasjonsbruker (et fartøy i bane eller en lander på overflaten) rundt et hvilket som helst kataloglegeme unntatt Solen og Jorden, med en lokal navigasjonskonstellasjon og en valgfri dypromsavstand fra Jorden.
Kind-en constellation-design bruker den samme katalogen til å bygge konstellasjoner rundt hvert av disse legemene (CONSTELLATION-DESIGN.md).
Kode: src/body.rs (katalogen og konstantene), src/ephem.rs (de analytiske efemeridene), src/ephem_provider.rs (AnalyticSolarSystem, leverandøren begge kind-ene leser), src/solar_system.rs og src/body_pnt.rs (kind-ene) og src/radiometric.rs (lystid, toveis avstand og Shapiro-forsinkelsen). Tester: tests/solar_system_horizons_reference.rs og enhetstestene til hver modul.
Katalogen#
Atten legemer: Solen, de åtte planetene, Pluto, Månen, Phobos, Deimos, de fire galileiske månene (Io, Europa, Ganymedes, Callisto) og Titan. Navn sammenlignes uten hensyn til store og små bokstaver. For hvert legeme har src/body.rs gravitasjonsparameteren GM, ekvatorial og volumetrisk middelradius, den andre sonale harmoniske J2 og dens referanseradius der en er publisert, og modellen til International Astronomical Union (IAU) for pol og nullmeridian (siderisk rotasjonsperiode, negativ for en retrograd rotator). Hver verdi viser til sin kilde i koden.
Hvor posisjonene kommer fra#
| Legemer | Modell | Merkelapp |
|---|---|---|
| Merkur til Saturn og Jorden, fra tabell 1 (1800 e.Kr. til 2050 e.Kr.) | Keplerelementer fra Jet Propulsion Laboratory (JPL) av Standish og Williams, https://ssd.jpl.nasa.gov/planets/approx_pos.html | VALIDATED |
| Alle åtte planetene fra tabell 2a/2b (3000 f.Kr. til 3000 e.Kr.) | elementene for lang tidsperiode fra den samme siden | VALIDATED |
| Uranus og Neptun fra tabell 1 | som ovenfor | MODELLED |
| Pluto | raden i tabell 1 fra 1992 (bare 1800 e.Kr. til 2050 e.Kr.; den nåværende siden har fjernet den og oppgir ingen feil) | MODELLED |
| Månen | månerekken til Montenbruck og Gill, med deling av jord-måne-barysenteret | MODELLED |
| Phobos, Deimos, de galileiske månene, Titan | JPL-middelelementer med IAUs rotasjonsmodell | MODELLED |
table = "auto" (standard) bruker tabell 1 innenfor 1800 e.Kr. til 2050 e.Kr. og tabell 2a/2b utenfor; table1 og table2 tvinger frem én. Pluto utenfor sin tabell er en feil, ikke en ekstrapolering. Epoken er en dato og et klokkeslett i ISO 8601 i koordinert universaltid (UTC), omregnet via terrestrisk tid (TT) med skuddsekundene til barysentrisk dynamisk tid (TDB), eller en juliansk dato i TDB gitt direkte med epoch_jd_tdb.
Referansen er JPL Horizons (https://ssd.jpl.nasa.gov/horizons/, Development Ephemeris DE441), med de spurte vektorene sjekket inn under tests/fixtures/solar_system/. En planetrad er VALIDATED der den holder seg innenfor det dobbelte av Standish-sidens egen nominelle feil. Målt av cargo test --test solar_system_horizons_reference -- --nocapture:
- Tabell 1, Merkur til Saturn og jord-måne-barysenteret, 12 epoker fra 1800 til 2049: verst 1,87 ganger den nominelle feilen (Saturns avstand).
- Tabell 2a/2b, alle åtte planetene, 15 epoker fra omtrent 1000 f.Kr. til 2500 e.Kr.: verst 1,71 ganger (Mars' avstand).
- Tabell 1 for Uranus og Neptun overskrider sidens tall mot DE441: 2,04 og 5,16 ganger den nominelle lengdefeilen. De er festet under seks ganger og forblir MODELLED.
- Pluto: innenfor 39,2 buesekunder i lengde og 1.14e9 m i avstand.
- Måner, verste vinkel sett fra planeten over 2000 til 2040: Phobos 5,65 grader, Deimos 0,38, Io 0,40, Europa 1,63, Ganymedes 0,22, Callisto 0,27, Titan 3,31. Den geosentriske Månen: 0,046 grader.
- Planethastigheter: verste relative feil 3.72e-3 av farten (MODELLED).
Månen og de sju månene er målt med festede terskler, men det finnes ingen publisert grense å validere dem mot, så de er MODELLED.
De analytiske efemeridene trenger ingen kjernefil. En JPL Development Ephemeris-kjerne (posisjoner av DE-klasse) leses bare av de separate krysskontroll-cratene under xval/, gjennom det samme traitet EphemerisProvider; hovedcraten avhenger ikke av dem.
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
Inndata: epoch (standard 2026-01-01T00:00:00) eller epoch_jd_tdb; bodies (standard alle atten); observer (standard Jorden); track_points per bane (8 til 2000, standard 120); table; og et hvilket som helst antall [[links]], hver mottatt ved epoken.
Per legeme gir resultatet klasse og forelder, identifikatoren fra NASA Navigation and Ancillary Information Facility (NAIF), den heliosentriske posisjonen og hastigheten i International Celestial Reference Frame (ICRF, ekvatorial J2000) i meter og meter per sekund, ekliptisk lengde, bredde og avstand, posisjonen relativt til forelderen, omløpsperioden, konstantene ovenfor, polen og nullmeridianen ved epoken, den nominelle Standish-feilen der en finnes, merkelappen og metodestrengen, og et banespor over én omdreining (heliosentrisk for en planet, sentrert på forelderen for en måne; ett enkelt punkt for Solen). Lenken fra observatøren, og hver ekstra lenke, gir:
- den newtonske enveis lystiden, løst av den radiometriske fikspunktløseren for lystid med senderen i sin retarderte posisjon, og den tilsvarende enveis avstanden;
- den toveis lystiden og avstanden;
- Solens Shapiro-forsinkelse, rapportert separat og ikke lagt til;
- vinkelen til Solen.
Lystiden er VALIDATED mot enveis lystiden Horizons oppgir: Mars og Jupiter til Jordens sentrum ved fire epoker fra 2000 til 2040, verste feil 0,070 s for Mars mot en terskel på 0,207 s og 1,31 s for Jupiter mot 4,04 s. Terskelen er det dobbelte av summen av Standish-avstandsfeilene til målet og jord-måne-barysenteret, delt på lysets hastighet: lystiden kan ikke bli bedre enn posisjonene. Det er den newtonske geometriske lystiden, ikke en relativistisk eller plasmakorrigert observabel.
Den medfølgende scenarios/solar-system-tour.toml rapporterer alle atten legemer ved 2026-09-28T00:00:00 med spor på 180 punkter, og legger til lenkene Mars-til-Jupiter (enveis 2193,539 s), Saturn-til-Jorden (4212,176 s) og Europa-til-Jupiter (2,218 s).
body-pnt#
En bruker navigerer rundt et legeme valgt med navn (et hvilket som helst kataloglegeme unntatt Solen og Jorden, som kind-en avviser) med to typer målinger:
- enveis pseudoavstander fra en Walker-delta-navigasjonskonstellasjon rundt legemet (
planesgangersats_per_plane, faseforskyvning mellom planphasing_f), fløyet som banebevegelse med to legemer med legemets egen sekulære driftJ2; brukerklokken er ukjent, så disse radene har en kolonne for klokkebias; - eventuelt en toveis avstand fra Jordens sentrum (
[earth_link]), som ikke trenger noen brukerklokke og rapporteres som en enveis avstand med sin egen støy. Jordens retning og avstand kommer fra den analytiske efemeriden ved hver epoke.
En siktelinje er blokkert når den går innenfor legemets middelradius (korde-testen i kind-en mars-pnt), og en overflatebruker trenger også elevasjonsmasken. Ved hver epoke danner kjøringen den geometriske og posisjonsmessige presisjonsfortynningen (GDOP, PDOP) for konstellasjonen alene, den formelle enkeltsigma posisjonsusikkerheten med og uten Jord-raden, og en seedet Gauss-Newton-posisjonsbestemmelse med minste kvadraters metode for hver, slik at rapporten viser hva dypromslenken tilfører.
| Tabell | Felt | Standard |
|---|---|---|
| toppnivå | body |
Mars |
epoch / epoch_jd_tdb |
2027-02-19T00:00:00, en Mars-opposisjon | |
duration_s, step_s |
86 400 s, 600 s | |
seed |
1 | |
table |
auto |
|
[user] |
kind |
orbiter (eller surface) |
orbiter: altitude_km, inclination_deg, raan_deg, u0_deg, eccentricity |
400 km, 75 grader, 0, 0, 0 | |
surface: lat_deg, lon_deg, height_m |
0, 0, 0 | |
[constellation] |
planes, sats_per_plane, phasing_f |
3, 4, 1 |
altitude_km |
tre middelradier | |
inclination_deg |
60 grader | |
sigma_range_m |
1 m | |
mask_deg (overflatebruker) |
10 grader | |
[earth_link] |
enabled, sigma_range_m |
true, 1 m |
raan_deg er rektascensjonen til den stigende noden i legemets ekvatorialsystem og u0_deg breddeargumentet ved epoken.
De to medfølgende scenarioene, slik de kjører med kshana 0,36 (portabel matematikk, den samme på alle plattformer):
scenarios/mars-orbit-pnt.toml |
scenarios/europa-surface-pnt.toml |
|
|---|---|---|
| Bruker | orbiter, 300 km, 93 grader | overflate, 20 grader N, 60 grader Ø |
| Reléer | 12 ved 10 000 km, 60 grader | 12 ved 4500 km, 55 grader, maske på 10 grader |
| Varighet | ett Mars-døgn (sol), 296 epoker | 306 822 s, 171 epoker |
| Lystid til Jorden, enveis / tur-retur | 338,3 s / 676,6 s | 2182,9 s / 4365,8 s |
| Jorden i sikte | 0,811 av epokene | 0.439 |
| Tilgjengelighet, bare reléer / med Jord-avstanden | 1.000 / 1.000 | 0.480 / 0.713 |
| Median PDOP | 1.375 | 5.360 |
| RMS for posisjonsfeil, bare reléer / med Jord-avstanden | 1,883 m / 1,629 m | 112,742 m / 86,499 m |
| Median formell sigma, bare reléer / med Jord-avstanden | 1,375 m / 1,304 m | 5,360 m / 4,239 m |
(RMS: kvadratisk middelverdi.) Én Europa-epoke (t = 16 200 s) ligger på kanten av tilgjengelighet, der den siste biten i en beregnet radius avgjør om posisjonsbestemmelsen med Jord-avstand blir gjort. Før 0,36 avgjorde vertens matematikkbibliotek det, så det samme scenarioet skrev ut 0,719 og 86,147 m på Linux x86-64 og 0,725 og 85,800 m på macOS arm64 for de to tallene «med Jord-avstanden». Siden 0,36 beregnes hver transcendentale funksjon av det portable matematikkbiblioteket, epoken løses på én måte på alle plattformer (native og WebAssembly gir de samme bytene), og tallene er 0,713 og 86,499 m (docs/revisions/STUDIO15-portable-math-rebaseline.md). Rundt Europa løfter Jord-avstanden tilgjengeligheten fra 0,480 til 0,713 av epokene. Der Jorden aldri kommer fri av limben, tilfører lenken ingenting: en lander ved 89,5 grader S på Månen under et skall med 12 satellitter og 5000 km reléer har Jorden i sikte ved 0 av 145 epoker, og feilene er de samme med og uten lenken.
MODELLED. Relébanene ser bort fra tredje legemer (Jupiters trekk på reléer rundt Europa er ikke modellert), støyen er gaussisk på de oppgitte nivåene og målemodellen er øyeblikkelig, ikke lystidsretardert. Det som kontrolleres: reléperioden mot Keplers tredje lov for legemet, en orbiter som beholder sin radius og en lander på overflaten, at Jord-avstanden aldri forverrer den formelle usikkerheten, at de seedede posisjonsfeilene stemmer med den formelle sigmaen (kvadratisk middelverdi av feil over sigma i [0,6, 1,5]), og en deterministisk kjøring. Ingenting av dette er et oppdrags navigasjonsdata.
Kind-en ephemeris#
Til tross for navnet er ephemeris en kind for jordsatellitter: én satellitt, fra et to-linjers elementsett (TLE) gjennom propagatoren Simplified General Perturbations 4 (SGP4) eller fra en analytisk bane, over et tidsrutenett. Ved hvert steg gir den ut den inertielle tilstanden (posisjon og hastighet) i rammen true equator, mean equinox (TEME) og i Geocentric Celestial Reference System (GCRS), den jordfaste posisjonen, sub-satellittpunktet i World Geodetic System 1984 (WGS 84) og, for en valgfri bakkestasjon, asimut, elevasjon, avstand og avstandsrate. eop_finals2000a tar teksten i en finals2000A-fil fra International Earth Rotation and Reference Systems Service (IERS) for UT1−UTC og polbevegelse per epoke. Kode: 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
Ikke modellert#
- Relativistiske lystidsledd utover den separat rapporterte Shapiro-forsinkelsen, og solplasmaforsinkelsen.
- Posisjoner bedre enn Standish- og middelelementnøyaktigheten oppgitt ovenfor; hovedcraten har ingen kjernelesere.
- Forstyrrelser fra tredje legemer på
body-pnt-reléer og påconstellation-design-baner. - Terreng på et hvilket som helst legeme: et legeme er sin middelkule.
- Eksport for interoperabilitet: CZML, KML og GeoJSON beskriver posisjoner rundt Jorden, så scenarioene
solar-systemogbody-pnteksporterer ingen (INTEROP.md).
Referanser#
- E. M. Standish og 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 og 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/.