Selbstgeschriebenes Sonnensystem-Programm

Status
Es sind keine weiteren Antworten möglich.

LambdaOmega

Aktives Mitglied
Hallo zusammen,

ausgehend von der Idee eines kleinen Programms, welches mir aus dem Autostart-Ordner heraus beim Hochfahren des Computers die aktuelle Planetenstellung anzeigt, habe ich mir mit Python ein kleines, einfaches Programm geschrieben. Da es nun doch noch ein paar weitere, wie ich finde, geschickte Funktionen beinhaltet möchte es hier teilen.

Link zur ZIP-Datei (https://easyupload.io/f39i53)
Datei hat 60 MB und Link läuft nach 30 Tagen ab - sollte ich nicht aktualisieren einfach private Nachricht an mich.
Nach dem Download ZIP an einem beliebigen Ort speichern, entpacken und "Sonnensystem.exe" starten.


Das Programm ist sehr einfach aufgebaut und sollte auch durch Ausprobieren selbsterklärend sein. Trotzdem im Anhang noch eine kurze Beschreibung der Funktionen. Es ist schwierig, Aussehen und Performance auf anderen Computern zu antizipieren. Sollte es Probleme oder Anregungen zu Verbesserungen geben, teilt sie mir gerne mit!

Es mag sein dass ein großer Teil meiner Freude ganz subjektiv darin begründet liegt, die Funktionen frei gestaltet zu haben / gestalten zu können. Aber vielleicht ist der/die ein oder andere ja trotzdem interessiert, spielt mal gerne ein bisschen damit herum, oder entdeckt für sich hilfreiche Funktionen :) Ich bin gespannt auf Feedback!

Viele Grüße,
Clemens
1646858749688.png


Ansicht äquidistante Planetenbahnen
Das Startfenster (Ansicht A) zeigt meine ursprüngliche Idee eines kleinen Programms für den Autostart-Ordner, um beim Hochfahren des Computers den aktuellen Stand der Planeten angezeigt zu bekommen. Die Erde ist im Winter der Nordhalbkugel rechts, im Frühling oberhalb, im Sommer links und im Herbst unterhalb der Sonne. Die Planeten sind auf kreisförmige Bahnen mit gleichem Abstand gezeichnet. Die Erde wird vom Mond begleitet.

Datum
Es lässt sich oben ein beliebiges Datum einstellen und das Datum auch alternativ per rechts/links Pfeiltasten oder dem Mausrad verändern (Strg+Pfeiltasten in 3-Tage Schritten statt 1-Tage Schritten, alternativ je nach Klick ins Tage/Monat/Jahr-Feld). Die Taste H führt zurück zum heutigen Datum, die Taste J führt zur Epoche J2000.0 (01.01.2000 12:00 Uhr), von welcher ausgehend die Positionen berechnet werden. Die Positionen beziehen sich daher auch am jeweiligen Tag auf 12:00 Uhr mittags.

Fenstergröße
Programmiertechnisch schwierig ist ein Fenster, welches vom Benutzer größer gezogen werden kann, aber das Seitenverhältnis beibehält. Ich habe das mit den Buttons oben rechts gelöst, F+ und F- (F für Fenster) vergrößern und verkleinern das Fenster etwas. So kann man sich die gewünschte Fenstergröße selbst festlegen. Die Einstellungen werden für den nächsten Start in eine config-Datei geschrieben und dann übernommen. S+ und S- verändern die Schriftgröße der Schaltflächen.
1646857495961.png


Ansichten elliptische Bahnen
Mit der Schaltfläche O, oder mit der Tab-Taste erreicht man alternative Ansichten der inneren und äußeren Planeten mit realen Orbits (Ansicht B und C). Selbstverständlich ist die schnellere Bewegung der Planeten nahe des Perihels implementiert, sonst bekommt man keine genauen Positionen. Einzig der Abstand des Mondes zur Erde ist nicht maßstabsgetreu. Als optische Hilfe für Oppositionen und Konjunktionen ist die dunkelblaue Linie eine erweiterte Verbindungslinie von der Sonne zur Erde.

Features: Perihels, Orbit- und Polneigungen
Kleine Punkte auf den Planetenbahnen zeigen die Position des Perihels. Außerdem bestehen alle Bahnen außer die der Erde aus einer etwas helleren und einer etwas dunkleren Hälfte, was veranschaulichen soll, wie die jeweilige Bahnebene relativ zur der der Erde geneigt ist. Der Übergang von der dunkleren zur helleren Hälfte ist der aufsteigende Knoten. Mein Lieblingsfeature, das eventuell sogar ein Vorteil gegenüber anderen bekannten Darstellungen des Sonnensystems ist: Bei Erde, Mars, Saturn, Uranus und Neptun habe ich die Richtung der Polneigung mit einem schwarzen Einschnitt markiert. So kann man nachvollziehen, ob wir aktuell auf die Nord- oder die Südhalbkugel des jeweiligen Planeten schauen, oder wann Saturn bspw. wieder eine Kantenstellung erreicht.

1646858451505.png


Winkelanzeige
Am unteren Rand kann ein Planet oder der Mond ausgewählt werden (alternativ mit Pfeiltasten hoch/runter), für den dann rechts davon Winkel angezeigt werden. M ist die mittlere Anomalie, d.h. die gleichmäßig hochlaufende Phase, in der der Planet sich relativ zu seinem Perihel befindet (M=0° am Perihel, M=180° am Aphel). L ist die ekliptikale Länge, d.h. der wahre Winkel relativ zum Frühlingspunkt (L=0° für die Erde am 23.9.). E ist schließlich die Elongation des ausgewählten Planeten zur Erde (nahe E=180° in Opposition, nahe E=0° in oberer und unterer Konjunktion, maximal für beste Sichtbarkeit von Merkur und Venus).

1646857809388.png


Auswahl bestimmter Daten
Schlussendlich habe ich dem Benutzer die Möglichkeit gegeben, rechts der Datumseingabe bestimmte Daten auszuwählen. Die Daten werden aus der Datei "Sonnensystem_Daten.txt" geladen und können dort beliebig verändert werden, solange das Format beibehalten wird. Ich habe Oppositionen und gut sichtbare größte Elongationen von Merkur und Venus der kommenden Jahre eingetragen, im Prinzip kann man sich aber auch die Planetenstellungen zu Beobachtungsnächten oder Geburtstagen als Auswahl anzeigen lassen. Die Beschreibung wird nach Auswahl (oder auch bei zufälligem Vorbeikommen an dem Datum) unter der Datumsauswahl angezeigt.

1646857761745.png
 
Hi Clemens.

Tolles kleines Programm, vielen Dank für's Zurverfügungstellen! :):y:

Werden die Daten laufend/zyklisch aktualisiert oder ist das dann ein "Standbild" und es ändert sich nur was, wenn man was anklickt?

Die Ansicht mit den realen Orbits finde ich toll, da sieht man dann auch, wie die Entfernung zu den anderen Planeten ist...fänd ich für das gesamte Sonnensystem toll, das würde es einem Laien wie mir einfacher machen. Die Ansicht mit den inneren Planeten ist ja einfach, bei den äußeren, wo die Erde "fehlt", wird's schon schwieriger.

Gruß
Thorsten
 
Hallo Thorsten,

vielen Dank, freut mich dass es dir gefällt!

Da die feinste Einstellung aktuell nur Tage sind (immer 12 Uhr mittags), aktualisiert sich das Programm nicht von selbst, es ist ein Standbild. Hatte auch schon überlegt die Stunden noch einzubauen aber das braucht eben nochmal etwas Platz und ich bin mir nicht sicher ob es ein großer Gewinn wäre. Bei Mond und Merkur macht es vielleicht noch einen kleinen Unterschied, ansonsten tut sich über einen Tag nicht viel ;)

Für die realen Orbits ist das Sonnensystem naturgemäß etwas undankbar, da die inneren Bahnen so nah an der Sonne sind. So sähe es mit allen Planeten aus:

1646896513263.png


Daher hatte ich mich entschieden, nur die äußeren Planeten zu zeigen und die Position der Erde mit der blauen Linie zu markieren. Ich könnte diese Ansicht aber auch problemlos als vierte Ansicht einbauen, wenn du willst? :)

Viele Grüße,
Clemens
 
Hi Clemens

Großartige Arbeit! Gefällt mir sehr gut gerade weil es so klar und einfach (im positiven Sinne) ist.
Da steckt sicher viel Zeit drin, oder?
 
Danke für die Rückmeldung :)

Das mit dem Standbild ist vollkommen in Ordnung, hatte mich nur interessiert, ob es da eine zyklische Aktualisierung gibt.

Äh ja, die Darstellung mit allen Planeten ist so natürlich nicht sinnvoll, dann brauchst du das auch nicht zusätzlich einzubauen.

Passt so :y:

Gruß
Thorsten
 
Großartige Arbeit! Gefällt mir sehr gut gerade weil es so klar und einfach (im positiven Sinne) ist.
Da steckt sicher viel Zeit drin, oder?
Danke! :) Klar, an einem Abend ist das nicht geschrieben. Aber es ist auch nicht so, dass ich da sehr kontinuierlich dran geschrieben habe, sondern es Stück für Stück erweitert habe, immer wenn mir eine neue Idee in den Kopf kam. Die Planeten einfach mal ohne Elliptizität und nur mit mittlerer Anomalie berechnet mit Benutzer-Datum auf Kreisbahnen zu setzen, das bekommt man tatsächlich relativ schnell hin (1-2 Abende). Die Elliptizität, die Perihels und Bahnneigungen waren dann aber schon etwas mehr Aufwand, insbesondere auch planerischer statt programmiertechnischer Art. Es ist sogar eine Periheldrehung über die Jahrhunderte implementiert ;) Bis man da dann gute Positionen hinbekommen hat und die mit anderen Softwares verglichen und alles geprüft hat dauert schon etwas. Und dann ändert man natürlich auch öfters Dinge hin und her, das braucht auch etwas Zeit. Das erste Backup ist zwei Monate alt. Insgesamt will ich ehrlich gesagt auch gar nicht wissen wie viele Stunden ich dran saß o_O Aber der Weg ist ja auch nicht nur nervig sondern macht ja auch Spaß es zu entwickeln :)
 
Zuletzt bearbeitet:
Danke auch von mir!
Wie kann ein so "kleines Progrämmchen so speicherhungrig sein... :ROFLMAO:
Wahnsinn, was da an Dateien drinsteckt. Möchte man gar nicht meinen.
Sagt einer, der nur ein bisschen Ardunio programmieren kann. :affemund:

Grüße
Hartmut
 
Wahnsinn, was da an Dateien drinsteckt. Möchte man gar nicht meinen.
Das sieht zwar kompliziert aus, wird allerdings beim Kompilieren alles automatisch erstellt. Die Größe hat mich auch etwas beschäftigt, allerdings kann man hier nicht viel dran ändern: Ich benötige und importiere für das Programm verschiedene Packages, beispielsweise für die Benutzeroberfläche (tkinter) und das grafische Darstellen der Planeten (matplotlib). Diese Packages kann man leider nicht nur teilweise importieren, sondern nur am Stück. Die 60 MB des Programms sind nahezu ausschließlich das Package matplotlib und hängen überhaupt nicht von der Komplexität des Programms ab. Mein Programm-Code hat 1000 Zeilen und 46 kB... Stört mich auch ein bisschen dass die Größe dann so explodiert, aber geht eben leider nicht ohne Packages.

Andererseits sind 60 MB verglichen mit der Speichergröße heutiger Smartphone-Bilder auch nicht die Welt ;)
 
Hallo Clemens,

zunächst mal Bravo!! :y:

Es gibt tatsächlich noch Leute, denen sowas Spaß macht und die sich nicht täglich 500 dümmliche Tik-Tok Videos reinziehen...:ROFLMAO:

Ich habe dein Sonnensystem runtergeladen und in Win10 laufen gehabt (VirtalBox).
Du hast Recht, diese ganze "Payload" wenn man es kompiliert macht unnötige Dateigrößen, aber wenn man ganze Bibliotheken mitexportieren muss, dann ist das eben so.

Meine 2 Cents:

(o) Fenster größer/kleiner machen ist ein wenig mühsam, OK, aber wenn's mal gemacht ist merkt sich das Programm das und beim nächsten Öffnen passt es dann. Kein Malheur.

(o) Taste H für "Heute" auch als Button im Menü einbauen, ginge das? Auch keine Pflicht, nur so'n Gedanke.

(o) Perihelmarkierungen etwas größer bitte (längerer/dickerer Strich?), ältere Semester könnten sich hier schwer tun was zu erkennen.

(o) Die blaue Linie in den entsprechenden Ansichten könnte man auch komplett durchzeichnen, um auch obere Konjunktionen abschätzen zu können.

(o) Mausrad: ändert nicht das Datums-Feld, das den Fokus hat, sondern immer den Tag. Die Pfeiltasten funktionieren gut.

(o) Die Auswahl eines anderen Planeten stellt wieder auf "Heute". Das ist mMn nicht immer gewünscht.

(o) Zu den berechneten Daten:
Habe ein paar Daten gegengecheckt und für die Planeten passt das sehr gut im Sinne der nötigen Zeichengenauigkeit. Die Abweichungen bei Merkur sind mal ein wenig größer (±0.3° oder so höchstens), in der Grafik sieht man das aber eh nicht. Man könnte ja hergehen und für die Grafik nur die Keplerelemente nehmen, hingegen bei der Anzeige der Daten dann Meeus' gekürzte VSOP nehmen. Soviel Mehraufwand wäre das nicht, wenn man die Tabellen erstmal hat, die haben gerade mal 77kB.

(o) Erdmond-Daten:
Hier stimmt was nicht. Welche Länge hast du dort berechnet, geozentrisch ekliptikal?
Beispiel:
17.3.2022 12:00 UT gibt mir JPL für L_mond = 176.544°, das Programm aber ca. 170.3°.


Anregung:
Wäre es möglich, auch eine Kantenansicht der Ekliptik, z.B. oberhalb/unterhalb der jetzigen Darstellung anzubieten? Dann sieht man die Bahnneigungen. Die Planetenscheibchen würden sich allerdings teilweise überlappen.

Screens:

sosys_01.jpg


sosys_03.jpg


sosys_05.jpg

[Quelle: Sonnensystem.exe by NablaDelta_]


Sehr schöne Arbeit!

cs,
harald

--
 
Zuletzt bearbeitet:
Hallo NablaDelta_,

zum Thema Dateigröße: Wie wäre es, den Code mal in c# zu konvertieren und mit der Unity3D-Engine die graphische Ausgabe zu machen? Als unkomprimierter WebGL-Player sollte es dann nur noch ein paar MB groß sein. Das wäre dann auch plattformübergreifend verfügbar. Außerdem wäre man dann auch gleich in einer 3D-Umgebung und könnte die Kamera in alle möglichen Positionen bringen. Dann könte auch Harald sich das System frei von allen Seiten aus ansehen...

Unity3D gibt es kostenlos, solange man weniger als 100.000 € Umsatz pro Jahr damit macht.

Viele Grüße!
 
Hallo Harald,

erstmal vielen Dank für das Studieren des Programms und die netten Worte, freut mich dass es gefällt! Danke auch für das Feedback. Hier vorab meine Antworten, die Kleinigkeiten überarbeite ich in den kommenden Tagen und lade eine neue Version hoch.

(o) Fenster größer/kleiner machen ist ein wenig mühsam, OK, aber wenn's mal gemacht ist merkt sich das Programm das und beim nächsten Öffnen passt es dann. Kein Malheur.
Stört mich natürlich auch, dass es nur so umständlich geht, aber denke auch dass die meisten nach dem ersten Einstellen ihre Größe gefunden haben und das kein viel-genutztes Feature ist.

(o) Taste H für "Heute" auch als Button im Menü einbauen, ginge das? Auch keine Pflicht, nur so'n Gedanke.
Ich war etwas sparsam mit den Buttons, da es bei kleinen Fenstergrößen (die ich gerne für den Autostart verwende) eng wird. Mir kam durch deine Anregung aber die Idee ich könnte das heutige Datum in die Datums-Auswahl einbauen? Wären dann zwar zwei Mausklicks statt einem, aber immerhin erreicht man "Heute" auch mit der Maus.

(o) Perihelmarkierungen etwas größer bitte (längerer/dickerer Strich?), ältere Semester könnten sich hier schwer tun was zu erkennen.
Auch kein Problem. Ich habe einfach die Mondgröße genommen, aber mit der dunkleren Farbe ist es etwas schwierig zu erkennen, das stimmt.

(o) Die blaue Linie in den entsprechenden Ansichten könnte man auch komplett durchzeichnen, um auch obere Konjunktionen abschätzen zu können.
Kann ich natürlich einbauen, allerdings müsste man für die Ansicht der äußeren Planeten die beiden Richtungen irgendwie optisch voneinander trennen, um zu zeigen, wo die Erde steht. Hierfür eine Idee?

(o) Mausrad: ändert nicht das Datums-Feld, das den Fokus hat, sondern immer den Tag. Die Pfeiltasten funktionieren gut.
Kommt, kein Problem!

(o) Die Auswahl eines anderen Planeten stellt wieder auf "Heute". Das ist mMn nicht immer gewünscht.
Ein typischer Bug der dem Entwickler nicht auffällt, weil er nurnoch die Tastatur benutzt: Interessanterweise stellt die Auswahl per Pfeiltasten nicht auf Heute. Werde ich untersuchen und beheben.

(o) Zu den berechneten Daten:
Habe ein paar Daten gegengecheckt und für die Planeten passt das sehr gut im Sinne der nötigen Zeichengenauigkeit. Die Abweichungen bei Merkur sind mal ein wenig größer (±0.3° oder so höchstens), in der Grafik sieht man das aber eh nicht. Man könnte ja hergehen und für die Grafik nur die Keplerelemente nehmen, hingegen bei der Anzeige der Daten dann Meeus' gekürzte VSOP nehmen. Soviel Mehraufwand wäre das nicht, wenn man die Tabellen erstmal hat, die haben gerade mal 77kB.
Das klingt nach einem interessanten Ansatz, die VSOP war mir tatsächlich nicht bekannt! Da das Programm eigentlich als optische Spielerei gedacht war und die Winkelanzeige erst später hinzukam, habe ich für die Berechnung einen relativ einfachen Ansatz gewählt und lasse die Planeten einfach Keplerbahnen mit fester Umlaufzeit laufen. Ich verwende folgende Bahndaten: http://www.met.rdg.ac.uk/~ross/Astronomy/Planets.html. Beim Definieren der ekliptikalen Länge zur Epoche J2000.0 muss man aufpassen. Um die Keplerbahn richtig rechnen zu können braucht man die mittlere ekliptikale Länge, wie sie auf der verlinkten Homepage angegeben ist. Man kann also nicht einfach die wahre ekliptikale Länge in Stellarium nachschauen.
Die mittlere Länge zu einem anderen Zeitpunkt als J2000.0 (Zeitdifferenz t) kann man über die Umlaufzeit (U) berechnen
mL = 360*t/U
Zieht man von dieser mittleren Länge (mL) die Länge des Perihels (P) ab, bekommt man die mittlere Anomalie (mA)
mA = mL - P
Für die Keplergleichung gibt es leider keine analytische Lösung, aber man kann die Mittelpunktsgleichung (dritte Ordnung) verwenden, um mit der Exzentrizität (e) die wahre Anomalie (wA) zu bestimmen
wA = mA + 180/pi * ( 2*e*sin(mA/180*pi) +5/4*e²*sin(2*mA/180*pi) -1/4*e³*sin(mA/180*pi) +13/12*e³*sin(3*mA/180*pi))
Dann kann man die Länge des Perihels wieder dazuaddieren und bekommt die wahre ekliptikale Länge
wL = wA + P
Die Distanz zur Sonne ist eine einfache, analytische Funktion der wahren Anomalie
D = (1-e²) / (1+e*cos(wA/180*pi))
Nun kann man wL und D von Polarkoordinaten in kartesische Koordinaten umrechnen
x = D * cos(wL/180*pi)
y = D * sin(wL/180*pi)

Diese zweidimensionalen Koordinaten verwende ich im Programm. Sie beschreiben die Bewegung eines Planeten innerhalb seiner Ebene. Das bedeutet, das Programm zeigt genaugenommen keine Projektion von oben, sondern eine Ansicht, als hätte man alle Planetenbahnen in die Ekliptik gedreht. Die (durch die helleren Halbellipsen) dargestellten Bahnneigungen sind mit Hilfe der aufsteigenden Knoten nachträglich hinzugefügt, die tatsächlichen Bahnneigungen sind aber nicht berücksichtigt. Für die angezeigten Längen spielt die Neigung (im Gegensatz zur Projektion) aber auch keine Rolle, daher stimmen die Werte so gut überein.

Die VSOP zu verwenden ist ein guter Tipp, aber auch ein größerer Eingriff. Wenn ich Zeit finde schaue ich mir das auf jeden Fall mal genauer an.

zum Thema Dateigröße: Wie wäre es, den Code mal in c# zu konvertieren und mit der Unity3D-Engine die graphische Ausgabe zu machen? Als unkomprimierter WebGL-Player sollte es dann nur noch ein paar MB groß sein. Das wäre dann auch plattformübergreifend verfügbar. Außerdem wäre man dann auch gleich in einer 3D-Umgebung und könnte die Kamera in alle möglichen Positionen bringen. Dann könte auch Harald sich das System frei von allen Seiten aus ansehen...
Da ich aktuell in 2D rechne, ist Drehen leider nicht möglich. Wenn ich die VSOP einbaue, kann man sich das natürlich überlegen. Allerdings habe ich C# noch nie programmiert und mir gefällt eigentlich gerade die Einfachheit des Programms. 3D-Ansichten des Sonnensystems gibt es ja genügend. Eine Seitenansicht könnte man dann natürlich einbauen, aber auch da muss man sich für eine Seite entscheiden :)

(o) Erdmond-Daten:
Hier stimmt was nicht. Welche Länge hast du dort berechnet, geozentrisch ekliptikal?
Beispiel:
17.3.2022 12:00 UT gibt mir JPL für L_mond = 176.544°, das Programm aber ca. 170.3°.
Es war eventuell ein Fehler, den Mond in die Anzeige mit aufzunehmen. Der Mond ist deutlich schwieriger zu berechnen, da seine Bahn moderat exzentrisch ist (0.05) und das Perigäum stark dreht (40° pro Jahr, meinen größten Respekt vor prähistorischen Kulturen, die trotz einer solchen Drehung Sonnenfinsternisse vorhersagen konnten!). Da ich primär nur auf den ersten Blick darstellen wollte, ob eher Vollmond- oder Neumond ist, habe ich mich beim Mond auf eine kreisförmige Bewegung beschränkt. Zumindest im Mittel sollte die Länge aber passen und keinen Offset aufweisen. Randnotiz: In der nächsten Version wird der Wert leicht anders sein, auf Wikipedia habe ich für die mittlere Länge bei J2000.0 heute einen leicht anderen Wert gefunden als damals (woanders). Ändert in die richtige Richtung aber nicht viel, ich bekomme nun L=171.6° am 17.03.2022.

Nochmal vielen Dank für die Kommentare! :)
 
Hallo Clemens,

Ein typischer Bug der dem Entwickler nicht auffällt, weil er nurnoch die Tastatur benutzt: Interessanterweise stellt die Auswahl per Pfeiltasten nicht auf Heute. Werde ich untersuchen und beheben.

Ah, das habe ich übersehen, funktioniert. Horizontale Pfeiltasten Tag ändern, vertikale Objekt ändern. Geht fein!

Kann ich natürlich einbauen, allerdings müsste man für die Ansicht der äußeren Planeten die beiden Richtungen irgendwie optisch voneinander trennen, um zu zeigen, wo die Erde steht. Hierfür eine Idee?

Ja genau. Von der Erde aus betrachtet sieht man ja, wo der andere Planet gerade steht, zumindest für die Ansicht "innere Planeten" (Merkur-Mars) sähe man dann für ME/VE die untere UND obere Konjunktion, und für Mars Konjunktion und Opposition. Für die Ansicht "äußere Planeten" (Jup-Nep) hast du Recht, bei durchgezogener Linie müsste man dazuzeichnen, auf "welcher Seite" die Erde gerade steht, um Konjunktion und Opposition unterscheiden zu können.
Oder die Linie für Konjunktion in Blau lassen und jene auf der anderen Seite in einer anderen Farbe oder gestrichelt darstellen usw.

Für die Keplergleichung gibt es leider keine analytische Lösung

Naja bei den kleinen Exzentrizitäten der Planeten kann man das ja mit einer Schleife über (e, M) in den Griff bekommen. Ich nehme dazu immer die "Methode 2" von Meeus. Natürlich geht auch die "Equation of Center" Methode, eben wegen der kleinen Exzentrizitäten. Merkur tanzt etwas aus der Reihe.


Ursprüglich hatte ich diese JPL Daten verwendet: Approximate Positions of the Planets
Vergleicht man sie mit deinen gibt es nur ganz kleine Abweichungen, die von dir angegebenen Elemente sind Datum 1992, wenn ich das korrekt gelesen habe.
Deine Daten wie auch meine oben genannten beziehen sich aber auf die Epoche J2000, und das wollte ich nicht.

In meinem "Simple Solar System" habe ich dann die Daten von Meeus' gekürzter VSOP87D genommen, die berechnen direkt die heliozentrischen sphärischen Koordinaten [L, B, R]. Keine Herumfudelei mit Keplergleichung lösen usw.
Allerdings braucht man ja für die Konstruktion der Orbits auch die Elemente dafür. Auch hier gibt Meeus die Elemente "referred to the ecliptic and mean equinox of the date" an. Also für das Zeichnen dieses hier, für die Berechnung der (genaueren) Daten die obige Geschichte. Ist vielleicht auch etwas übertrieben für so eine einfache Darstellung :LOL:

Hier zum Vergleich: (konzentrische Ansicht, mein FP ist rechts gewählt).

1648132279693.png


Reale Orbits und Mond habe ich noch nicht. Für den Mond könnte man z.B eine schnelle Positionsberechnung aus Montenbrucks "Grundlangen" nehmen. Für die wahre ekliptikale Länge braucht es dort nur 15 Terme. Diese beziehen sich auch auf den FP des Datums.

cs,
harald

--
 
Zuletzt bearbeitet:
Hallo zusammen, hallo Harald,

dank deinen Anregungen bin ich auf das Python-Package "astropy" aufmerksam geworden, welches den direkten Import von Ephemeriden sowie Konversion zwischen verschiedenen Koordinatensystemen bietet. Nun habe ich die Planetenpositionen mit diesem Package im ICRS berechnet und anschließend ins (Mittlere/Mean) Heliozentrisch-ekliptische Koordinatensystem konvertiert. Wie vorgeschlagen sind die gezeigten Ellipsen feste Ellipsen aus den Bahnelementen zu J2000, passen aber heute gut zu den Planetenpositionen. Eigentlich auch ganz cool zu sehen, wie die Planeten nach Jahrtausenden von den Ellipsen abweichen.

Da der Mond jetzt präzise Positionen hat, habe ich zusätzlich eine vierte Ansicht eingebaut, welche nur Erde und Mond, zeigt.

Link zur ZIP-Datei (89 MB)

Nur die Dateigröße ist nochmal etwas hoch durch das astropy-Package... Mir gefällt es trotzdem besser :)

Bin gespannt was du sagst und offen für weitere Anregungen!

Viele Grüße,
Clemens
 
dank deinen Anregungen bin ich auf das Python-Package "astropy" aufmerksam geworden, welches den direkten Import von Ephemeriden sowie Konversion zwischen verschiedenen Koordinatensystemen bietet. Nun habe ich die Planetenpositionen mit diesem Package im ICRS berechnet und anschließend ins (Mittlere/Mean) Heliozentrisch-ekliptische Koordinatensystem konvertiert.

Striche sind jetzt umgesetzt!
Rechnet astropy selber oder fragt das die Daten externer Ressourcen ab?

Wie vorgeschlagen sind die gezeigten Ellipsen feste Ellipsen aus den Bahnelementen zu J2000, passen aber heute gut zu den Planetenpositionen. Eigentlich auch ganz cool zu sehen, wie die Planeten nach Jahrtausenden von den Ellipsen abweichen.

Hm, wieso vorgeschlagen? Also ich war's nicht. Bei mir weichen die Punkte von den Bahnen gar nicht ab. Mars ein wenig. Nachdem das J2000 Koordinaten sind, sind ja auch die Perihelstriche fix, nicht wahr? Sind jetzt viel aber besser zu sehen.

Was mich irritiert: Hast du jetzt den FP nach rechts gesetzt? Den Knotenwinkeln zufolge müsste es so sein.

Da der Mond jetzt präzise Positionen hat, habe ich zusätzlich eine vierte Ansicht eingebaut, welche nur Erde und Mond, zeigt.

Funktioniert, der Mondpunkt liegt aber etwas neben der Spur :eek:


...schluck o_O

cs,
harald

--
 
Zuletzt bearbeitet:
Rechnet astropy selber oder fragt das die Daten externer Ressourcen ab?
Das greift auch auf JPL Ephemeriden zu.

Bei mir weichen die Punkte von den Bahnen gar nicht ab. Mars ein wenig. Nachdem das J2000 Koordinaten sind, sind ja auch die Perihelstriche fix, nicht wahr?
Stimmt, primär Mars, aber auch Merkur ein wenig. Ja, die Orbits und Perihelstriche sind fix!

Was mich irritiert: Hast du jetzt den FP nach rechts gesetzt? Den Knotenwinkeln zufolge müsste es so sein.
Ja, habe es gedreht, es stimmt, L=0 sucht man am ehesten rechts :)

Funktioniert, der Mondpunkt liegt aber etwas neben der Spur
Beim Mond kann ich keinen festen, elliptischen Orbit einzeichnen, daher ein Kreis mit mittlerer Distanz als Vergleich ;)

Grüße,
Clemens
 
Hallo Clemens,

Ohne mein Interesse an der Keplergleichung zu leugnen zu wollen: Der Kern meiner Freude an dem Programm ist eher die direkte Übersicht der Konstellation beim Programmstart und der schnelle Zugriff auf editierbare Daten, quasi als persönlicher Astro-Kalender

OK, dafür musst du dann keine Kepler-Gleichung lösen, denn wenn deine App Zugriff auf die JPL Daten hat, kannst du dir die Orbitalelemente vom Mond ja holen?

Bsp.: Mond 2000-2010 Orbital Elements:
Textformat
JSON


cs,
harald

--
 
Hallo zusammen,

ich bin endlich dazu gekommen das Programm ausführlich zu überarbeiten, sodass auch der Mondorbit ein echter Orbit ist, und sich alle Orbits mit jeder Umrundung aktualisieren. Außerdem kann man die Erde fixieren (F), zur nächsten Opposition springen (E) und die Performance ist deutlich verbessert. Details finden sich in der Readme.

Readme on Github
Download on Github

Ich hoffe es gefällt :) Über Feedback bin ich wie immer dankbar!

Viele Grüße
Clemens

PS: Ist es möglich über die Admins veraltete Links in vorherigen Posts aktualisieren zu lassen?
 
Hallo Clemens,

die Daten haben entpackt auf meinem System 313 MB!
4.248 Dateien, 502 Ordner. Echt jetzt? :eek:

OK, hab's mir trotzdem mal angesehen und die Daten mit GUIDE 8 verglichen.
Ich habe immer den 15. des Monats im Jahr 2023 genommen.

Du schreibst die Daten sind immer für 12:00 Uhr "mittags".
In koordinierter Weltzeit UTC? In dynamischer Zeit TD? Lokaler Ortszeit?
Ich gehe davon aus, dass die berechneten Daten geozentrisch sind, oder?

Code:
Erdmond, geozentrisch, Daten jeweils für 12:00 UTC in GUIDE
Elongation von der Sonne in Grad
-------------------------------------------------
 2023        SSv3.3          GUIDE 8
-------------------------------------------------
15.01         85.2            85.14
15.02         66.6            66.70
15.03         84.6            87.71
15.04         61.7            61.94
15.05         51.9            52.11
15.06         31.4            31.57
15.07         25.4            25.76
15.08          9.8            10.95    <==
15.09          4.7             5.32    <==
15.10          8.6             8.63
15.11         25.9            26.25
15.12         33.1            33.54
-------------------------------------------------

Eklip. Länge + Breite in Grad
-------------------------------------------------
 2023        SSv3.3                GUIDE 8
-------------------------------------------------
15.01      209.6   0.9        209.92827   0.89232
15.02      259.6  -3.4        259.87980  -3.44888
15.03      269.6  -4.2        269.94815  -4.25145
15.04      323.1  -5.0        323.44668  -4.97453
15.05        2.0  -2.8          2.36171  -2.75862
15.06       52.3   1.7         52.63441   1.71969
15.07       87.0   4.2         87.33452   4.19357
15.08      132.3   4.9        132.60243   4.85535
15.09      176.8   2.4        177.13853   2.44257
15.10      210.2  -0.5        210.49310  -0.51810
15.11      258.5  -4.2        258.79683  -4.22478
15.12      296.1  -5.1        296.44788  -5.05416
-------------------------------------------------

Die Idee mit der Tabulatortaste ist gut, man kann schnell zwischen den Ansichten hin- und herspringen. Auch Shift+Tab funktioniert gut für retour springen.
Die Schriftgröße zu verändern ist auch fein (für Dioptrien-Ottos wie mich).

Auch der Button E funktioniert soweit. Ich habe ein paar Daten mit Alcyone Ephemeris überprüft:
Schön wäre, wenn dabei ein Hinweis wie "Abend" oder "Morgen" oder Ost/West angezeigt würde bei der Elongation.

Code:
Merkur - größte östl./westl. Elangationen 2023
----------------------------------------------
     Ost                   West
2023-04-11  22 h      2023-01-30  05 h
2023-08-10  01 h      2023-05-29  05 h
2023-12-04  14 h      2023-09-22  13 h

Venus - größte östl./westl. Elangationen 2023
----------------------------------------------
     Ost                   West
2023-06-04  10 h        2023-10-23  21 h     <==

Mars - Oppositionen
----------------------------------------------
     Opp.            
2022-12-08  04 h    
2025-01-16  01 h    
2027-02-19  15 h    
2029-03-25  07 h    
2031-05-04  11 h    
2033-06-27  23 h    
2035-09-15  17 h    
2037-11-19  07 h    
2040-01-02  14 h     <==
2042-02-06  11 h     <==
2044-03-11  12 h    
----------------------------------------------

Bei Daten mit den Pfeilen <== gibt es kleinere Abweichungen.
Für weitere Daten hatte ich dann keinen Bock mehr ;)

Alles in allem, sehr schön!
Aber, ich muss sagen, ich bin raus, das Paket ist mir für so eine "einfache" Anwendung einfach zu groß.
Programmiert man das in HMTL/JavaScript käme man vielleicht auf ein paar MB, aber auch nur wenn man die komplette VSOP nimmt. Für die hier angestrebte Genauigkeit würde die gekürzte VSOP von Meeus ausreichen. Und das Ganze könnte man auch "standalone" machen zum Runterladen. Ist halt dann keine .exe. Allerdings dann auch aufm MAC oder Linux lauffähig. Fenster größer/kleiner ist dann auch viel einfacher.
Aber: Respekt vor deinem Sitzfleisch! :y:

cs,
harald

--
 
Hallo Harald,

danke für das Feedback. Wie schon diskutiert, die Größe stört mich natürlich auch, da kann ich aber wirklich leider nichts dafür. Auf der anderen Seite, was sind heutzutage schon 300 MB, da produziert mir eine Aufnahmeserie aus 20 RAW-Bildern ja mehr Datenmenge. Wer Python installiert hat, kann natürlich auch nur den 55 kB Code nehmen und sich eine .bat auf den Desktop legen. Python hat bei mir allerdings 600 MB.

Danke fürs Vergleichen der Daten, das schaue ich mir mal an! Meine Daten sind alle 12 Uhr UTC, allerdings bis auf die Elongation heliozentrisch!

Javascript ist natürlich sehr attraktiv was die Programmgröße und Flexibilität angeht, allerdings bin ich daran nicht so geübt - nehme ich mir aber auch mal vor mich mehr damit zu beschäftigen und das nächste Projekt evtl. damit anzugehen :)

Danke dir!
Clemens
 
Hallo Clemens,

ja sicher was sind schon 300 MB....?
Aber ich hab einfach keine Lust jedesmal 313 MB zu ziehen für so ein kleines Projekt.
Ich hab Python installiert, (ge)brauche es aber kaum, mein Problem.
Ist ja auch grade sehr angesagt.


Das Projekt an sich ist ja interessant, mal einen schnellen Überblick zu zeigen, und vor allem eine gute Übung für's Programmieren.

Selbstverständlich darfst du das machen wie du möchtest. Auf viel Akzeptanz stößt man damit aber wohl nicht...
Das Argument mit den RAW Bildern hinkt. Wie nennt man das noch schnell, ein Argument untermauern zu wollen indem man ein anderes bringt, was mit der ursächlichen Frage aber nix zu tun hat? Hab's vergessen. Nach dem Motto "diese 20 RAW Bilder haben 300 MB, also darf Programm XY das auch".

Danke fürs Vergleichen der Daten, das schaue ich mir mal an! Meine Daten sind alle 12 Uhr UTC, allerdings bis auf die Elongation heliozentrisch!

OK, dann war ich mit dem UTC 12:00 eh richtig.

Das mit der Elongation verstehe ich. Die Elongation ist ja vom Begriff her der Winkel Sonne-Erde-Planet, also von der Erde aus gesehen.

Falls du Code-Schnipsel oder Tabellen brauchst (z.B. aus dem Meeus oder anderen Quellen) schreib mich an ;)

cs,
harald

--
 
Status
Es sind keine weiteren Antworten möglich.
Zurück
Oben