Bestimmung der Planetenpositionen

Ich schreibe einen 3D-Sonnensystemsimulator , der Planeten, Asteroiden, Kometen und transneptunische Objekte enthält. Es enthält auch tägliche „Close Approach“-Körper aus der Datenbank des Jet Propulsion Laboratory. Ich berechne Planetenpositionen unter Verwendung des Dokuments „ Keplerian Elements for Approximate Positions of the Major Planets “ von JPL/Caltech mit Formeln, die für den Bereich von 3000 v. Chr. bis 3000 n. Chr. gültig sind. Es sieht so aus, als ob die Berechnungen mir eine Position liefern, die bei nahen Objekten nicht genau genug ist: In der Simulation stimmt die Zeit der geringsten Entfernung zwischen Erde und einem Objekt nicht mit der theoretischen Zeit überein.

Ich habe auch Formeln für den Bereich von 1800 n. Chr. bis 2050 n. Chr. (die genauer sein sollen) ohne signifikanten Unterschied ausprobiert.

Meine Frage ist: Gibt es eine genauere Methode zur Berechnung der Planetenpositionen als die Methode, die ich verwende?

Ich nehme an, Sie sind damit vertraut: ssd.jpl.nasa.gov/?ephemerides#planets
Wie genau wäre genug für Ihre Ziele? Brauchen Sie wirklich +/- Tausende von Jahren oder wären Zehner oder Hunderter in Ordnung?
Über die Genauigkeit, gerade jetzt, wenn ich die Orbitalelemente eines Körpers herunterlade, der an diesem Tag der Erde am nächsten sein sollte, ist dies nicht der Fall. Es kann einen Tag vorher oder einen Tag danach näher sein. Ich gehe davon aus, dass der Fehler von der Annäherung bei der Berechnung der Erdbahnelemente aus den Formeln herrührt, da der Autor des Papiers die Berechnungen als "geringere Genauigkeit" bezeichnet.
@ChuckM OK, dafür würde ich empfehlen, dass Sie eine neue Frage stellen und ein vollständiges, spezifisches Beispiel (Links, Zahlenwerte) einfügen, das die numerische Meinungsverschiedenheit deutlich zeigt. Es gibt hier mehrere Leute, die dir vielleicht dabei helfen können, aber je mehr du das spezifische Problem/die Frage dokumentierst, desto wahrscheinlicher werden die Leute helfen. Es scheint keine Begrenzung für die Anzahl qualitativ hochwertiger Fragen zu geben, die Sie hier stellen können. Fügen Sie auch einen Link zurück zu dieser Frage als Referenz hinzu.
Welcher Kalender wird für den sehr langen Bereich von 6000 Jahren verwendet? Das einfache Julianische mit einer Jahreslänge von 365,25 Tagen oder das Gregorianische mit 365,2425 Tagen? Die Differenz in 6000 Jahren beträgt 45 Tage. Es gibt den Wert 36525 in einer Formel des Papiers, es sieht aus wie Julian, nicht Gregorian.
Julian wird mit der Länge des Jahres als 365,25 verwendet. Ich verwende die Referenzepoche J2000 (2451545).
@ Vince49: Ja, ich kenne die Website, aber ich habe keine API gefunden, die es mir ermöglichen würde, diese Daten programmgesteuert abzurufen.
@ChuckM, überprüfen Sie meine grafische Oberfläche auf Horizons, sie erstellt automatisch die benötigte URL und teilt sie auch in ein lesbares Format auf: win98.altervista.org/space/exploration/NHUGUI.html
@jumpjack, danke dafür. Wirklich hilfreich, alle Parameter herausgefunden zu haben.

Antworten (1)

Die "genauere Methode" besteht darin, entweder die Orbitalbewegung numerisch zu integrieren, um Ihre eigenen ungefähren Ephemeriden zu erstellen (siehe diese und diese Antwort ), oder, wie @Vince49 betont , vorhandene Ephemeriden herunterzuladen und zu interpolieren, in diesem Fall für eine sehr große Anzahl von Minderjährigen Körper! Beides ist keine schöne oder elegante Lösung, aber da die Schwerkraft weitreichend ist und "alles an allem zieht", reichen Kepler-Umlaufbahnen hier nicht aus.

Realistische Umlaufbahnen des Sonnensystems sind nur annähernd keplersch.

Ich werde erwähnen, dass die Integration Spaß macht und lehrreich ist, wenn Sie diese Art von Herausforderung wirklich genießen, aber es richtig zu machen, ist viel komplizierter als in diesen verlinkten Antworten gezeigt. Ich konnte die JPL-Ephemeriden für ein Dutzend großer Körper auf 1 km über 1 Jahr abgleichen, aber ohne die Gezeiteneffekte zwischen Erde und Mond richtig anzugehen, wird sich die Position der Erde jedes Jahr weiter verschlechtern. Sie müssten eine ausgefeiltere Berechnung als die dort gezeigte Annäherung durchführen.

Bei kleineren Körpern sind auch nicht-gravitative Kräfte wie Strahlung von der Sonne und durch den Körper selbst sowie das Ausgasen in Sonnennähe wichtig. Diese können angenähert werden, wie ich es in dieser Frage und in dieser Antwort beschrieben habe .

Daher halte ich es für wahrscheinlich, dass Sie sich früher oder später entscheiden werden, vorhandene Ephemeriden zu verwenden. Wenn Sie gerne in C programmieren, sollte es eine Dokumentation geben, um Dinge wie das Spice-Toolkit zum Interpolieren von JPL-Kernels zu verwenden . Sobald Sie damit vertraut sind, können Sie sich entscheiden, weniger genaue, viel kleinere Tabellen zum Interpolieren zu erstellen, wenn Sie bedenken, dass Sie möglicherweise Tausende oder Zehntausende von Nebenkörpern erstellen müssen.

Die ausgezeichnete Antwort von @RoryAlsop enthält mehrere hilfreiche Links, darunter eine Python-Bibliothek jplephem , die Spice-Kernel interpoliert. Dies könnte für Sie besonders hilfreich sein.

Das Python-Paket Skyfield ist bereits so eingerichtet, dass es die JPL Developmental Ephemerides automatisch herunterlädt und interpoliert , aber diese sind nur für die Hauptkörper des Sonnensystems. Da Sie Python bereits verwenden, würde es Ihnen bestimmt gefallen, dieses Paket durchzulesen. Es ist eine Freude, es zu benutzen.

Außerdem führt das Python-Paket PyEphem eine breitere Palette von Orbit-Funktionen für Sie aus. Ich bin damit weniger vertraut, also musst du selbst nachforschen. Es gibt es schon ziemlich lange und ich habe herausgefunden, dass es auf XEphem und VSOP87 basiert (und siehe auch ).

Die Python-Pakete SkyField und PyEphem werden beide von derselben Person unterstützt.

Es ist ein wirklich cooles Softwarepaket, das Sie auf Github haben! Schau ich mir nächste Woche mal an.
@MarkAdler Ich denke wirklich, dass Sie Ihre Antwort wiederherstellen sollten. Die beiden ergänzen sich – meins ist eine Art Smörgåsbord, Ihres bringt es auf den Punkt, und so ist es für zukünftige Leser besser, beide zu sehen. Eine Antwort direkt von der NASA ist Gold wert!
Eigentlich habe ich mich vor ungefähr acht Monaten von der NASA zurückgezogen.
@MarkAdler Herzlichen Glückwunsch, aber der NASA-Glanz (und das Fachwissen) lassen nie nach :-)