Berechnung der Umlaufbahnpositionen von Jupiter-Satelliten / -Monden mit JPL-Daten

Ich habe versucht, ein Modell des Sonnensystems in einem Spiel zu bauen. Bisher ist es mir gelungen, jeden der Planeten mit keplerschen Elementen und Formeln von https://ssd.jpl.nasa.gov/?planet_pos in Position zu bringen . Ein Beispiel für Jupiter ist:

               a              e               I                L            long.peri.      long.node.
           AU, AU/Cy     rad, rad/Cy     deg, deg/Cy      deg, deg/Cy      deg, deg/Cy     deg, deg/Cy
-----------------------------------------------------------------------------------------------------------
Jupiter   5.20288700      0.04838624      1.30439695       34.39644051     14.72847983    100.47390909
         -0.00011607     -0.00013253     -0.00183714     3034.74612775      0.21252668      0.20469106

An dieser Stelle möchte ich einige der Jupitermonde hinzufügen, aber dieselbe Seite scheint nicht die gleiche Art von Daten für diese Monde zu liefern, vielleicht weil sich die Monde unterschiedlich verhalten. Leider ist meine Mathematik nicht großartig; Normalerweise kann ich etwas Aufgeschriebenes umsetzen, aber ich habe nicht die Mittel, um es selbst auszuarbeiten.

Für die Jupitermonde sind die Daten aufgelistet unter: https://ssd.jpl.nasa.gov/?sat_elem#jupiter Hier ist ein Beispiel für Ganymed:

 Sat.           a       e          w           M        i            node      n             P       Pw      Pnode    R.A.        Dec.     Tilt
 (km)        (deg)     (deg)      (deg)       (deg)    (deg/day)    (days)    (yr)          (yr)    (deg)    (deg)    (deg)
 Ganymede  1070400.    0.0013    192.417    317.540    0.177        63.552    50.3176072    7.155   63.549  132.654   268.168    64.543    0.068

Hier geben sie an, dass die Daten „ mittlere Bahnelemente bezogen auf die lokalen Laplace-Ebenen “ sind, im Gegensatz zu „ keplerschen Elementen für ungefähre Positionen der großen Planeten “.

Während die ersten 6 Parameter gleich zu sein scheinen (a, e, w, M, i, Knoten), haben die Keplerschen Elemente auch "Raten" oder Zeitableitungen ( laut diesem Beitrag: https://space.stackexchange. com/questions/8911/determining-orbital-position-at-a-future-point-in-time ). Die von der NASA freundlicherweise zur Verfügung gestellten Formeln für die Kepler-Elemente beruhen auf diesen Raten.

Wenn ich verstehen könnte, wie man die "Raten" für die Jupitermonde bestimmt, könnte ich vielleicht dieselbe Formel verwenden (ist das das Richtige?) Es sieht so aus, als ob diese Raten etwas sind, was ich können sollte aus den anderen für die Monde bereitgestellten Daten berechnen, aber ich konnte nicht feststellen, wie.

Mein Verdacht ist, dass ich entweder eine andere Formel für die Berechnung mit den Laplace-Ebenen benötige, oder ich muss diese "Raten" -Werte berechnen und dieselbe Formel verwenden, die ich bereits habe.

Ich versuche, kartesische (x, y, z) Koordinaten für jeden Mond zu generieren, wobei (0,0,0) das Zentrum von Jupiter selbst ist, für ein bestimmtes Datum/eine bestimmte Uhrzeit (normalerweise "jetzt").

Ich frage mich langsam, ob ich hier den falschen Baum anbelle. Kann jemand Licht ins Dunkel bringen

Haben Sie ssd.jpl.nasa.gov/horizons.cgi#top mit der ELEMENTS-Einstellung für den gewünschten Mond ausprobiert ? Von dort können Sie die Oskulationselemente erhalten.
Ja, obwohl ich fürchte, ich verstehe nicht ganz, wie es hilft. Ja, diese Seite gibt mir statische Daten für einen bestimmten Zeitraum. Ich möchte in der Lage sein, die Position für ein bestimmtes Datum zu berechnen (vor 2050, da dies der Zeitpunkt zu sein scheint, an dem die mittleren Daten ihre Gültigkeit verlieren, und es unwahrscheinlich ist, dass mein Spiel in ~ 30 Jahren existiert).
Wenn Sie genaue Daten wünschen, müssen Sie etwas wie SPICE ( naif.jpl.nasa.gov/naif ) verwenden. Wenn Sie sich die oskulierenden Elemente ansehen, werden Sie vielleicht feststellen, dass sie einem ungefähren Muster folgen, das Sie nachahmen könnten. Theoretisch könnten Sie sogar Differentialgleichungen bei gegebenen Anfangspositionen lösen, aber das ist sehr zeitaufwändig. Letztendlich ist es eine Frage der Informationstheorie (diese Umlaufbahnen sind einfach nicht so einfach) und des Zeit-/Raum-Kompromisses (wenn Sie keine Positionen aufzeichnen möchten, müssen Sie sie berechnen).
OK danke. Das ist eine Schande. Ich habe mir am Wochenende SPICE angesehen, und obwohl es offensichtlich tun wird, was ich will, war ich ein wenig verblüfft von der API und der Tatsache, dass ich möglicherweise vor der Notwendigkeit stehen würde, es auf iOS zu portieren. Ich habe es geschafft, die Monde jetzt in eine Umlaufbahn zu bringen, obwohl sie nicht an den richtigen Stellen sein werden, was eine Schande ist.
Sie könnten die aktuellen oskulierenden Elemente verwenden und so tun, als ob die Umlaufbahnen der Monde immer elliptisch wären – das wäre kurzfristig richtig. Sie können mich auch gerne direkt kontaktieren, um kostenlose Hilfe zu erhalten (Kontaktdaten im Profil). SPICE sollte auf iOS "wie es ist" kompiliert werden, aber ich habe es dort nie verwendet, daher bin ich mir nicht sicher. Es ist im Grunde nur eine C++-Bibliothek, also sollten Sie in der Lage sein, es zu verwenden, wenn Sie C++ kennen.
@barrycarter danke, das ist sehr großzügig. Ich werde darauf zurückkommen, weil ich weiß, dass ich nicht zufrieden sein werde, ohne es zumindest zu versuchen. Ein wenig vom Thema abgekommen, aber über Ihren Kommentar, dass die Umlaufbahnen nicht immer elliptisch sind, überwältigt. Wie um alles in der Welt schaffen es diese Dinger, in Umlaufbahnen zu gelangen, die sich ändern, ohne einzuschlagen? Liegt es daran, dass sie sich ungefähr auf derselben Ebene befinden, sodass ihr Umlaufradius sie weit genug voneinander entfernt hält?

Antworten (2)

Ein hervorragendes Buch von Jean Meeus, „Astronomical Algorithms“, liefert die Berechnungen für Planetenpositionen und Jupiters galiläische Monde (Io, Europa, Ganymed und Callisto). Meeus erklärt die Mathematik nicht wirklich in großem Umfang, daher ist es relativ einfach, ihr als formelhaften Ansatz zu folgen. Er verwendet VSOP für Planetenpositionen und Lieskes E5-Theorie für die Monde (eine Erklärung für beide finden Sie auf Wikipedia). Als Bonus zeigt Meeus, wie Sie Berechnungen für beide Parameter mit einem geringeren Genauigkeitsgrad durchführen, was Ihre Berechnungsgeschwindigkeit verbessern könnte. Auch wenn dieses Buch etwas schwerfällig sein kann, möchten Sie vielleicht den Unterschied zwischen „Ephemeridenzeit“ und „irdischer Zeit“ nachlesen, da dies ebenfalls Ihre Genauigkeit beeinflusst.

Vielen Dank für diesen Vorschlag. Wie sich herausstellte, habe ich den Rat von @barrycarter oben befolgt und SPICE nachgeschlagen. Ich poste jetzt unten eine Antwort, die das Ergebnis davon ist.

Vielen Dank an die Leute, die versucht haben, mir dabei zu helfen, sowohl damals, als ich die Frage zum ersten Mal gestellt habe, als auch später.

Mit dem soliden Rat von @barrycarter in den Kommentaren habe ich versucht, die SPICE-Bibliothek zu verwenden , um die Positionen der verschiedenen interessierenden Himmelskörper zu berechnen.

Nach einigem Lesen und weiteren Ratschlägen von NAIF selbst habe ich es mir zur Aufgabe gemacht, die CSPICE-Bibliothek, Version 66, für die Arbeit mit iOS (und folglich macOS) zu portieren.

Ich habe dann das SPKMERGE-Tool verwendet , um Ephemeridendateien zu generieren, die nur die Daten enthielten, die ich für meine App benötigte. Die App lädt diese Dateien dann über CSPICE und generiert die benötigten Positionsdaten.

Die modifizierte Version der CSPICE-Bibliothek für iOS ist jetzt für andere verfügbar, die davon Gebrauch machen möchten.

Es ist zu finden unter:

CSPICELib für iOS