Ephemeridenberechnung

PitWi

Aktives Mitglied
Ich bin auf der Suche nach Sourcecode zur Ephemeridenberechnung und google nun schon stundenlang ohne etwas brauchbares zu finden.
Ich brauche eigentlich nur RA, Dec, Alt u. Az. von Sonne, Mond und Planeten sowie Auf- und Untergangszeiten.
Mit Online-Portalen oder gar fertigen Programmen kann ich nichts anfangen.
An Programmiersprachen verstehe ich Basic, JavaScript und Python.
Das Buch von Meeus hätte ich auch aber die Umsetzung in eine Programmiersprache ist für mich sehr zäh.
Wer hat Tipps für mich?
 
Danke Markus und Peter.
Leider stehe ich mit C/C++ ein wenig auf Kriegsfuß. PyEphem hab ich mir schon angesehen aber da sind alle Berechnungen in C implementiert. :-(
 
Ich weiss, Du wartest auf jemanden, der es schon in Python angewendet hat. Sorry, ich auch nicht.
Aber hier sind noch 2 Python-Umsetzungen, die noch nicht genannt wurden.

Python Interface to JPL Solar System Ephemeris

EphemPy

Die stehen in der NASA-Readme zu JPL-Clients gelistet, falls Du da noch nicht gewesen warst: ftp://ssd.jpl.nasa.gov/pub/eph/planets/other_readers.txt
 
Hallo!

Ich mache Ephemeridenberechnungen nun schon seit 1984 in verschiedenen Programmiersprachen, zuletzt im schon älteren Visual Basic 6. Das macht eigentlich nur Spaß, wenn man die einzelnen Unterprogramme auch selber schreibt. Da braucht man z.B. eine Subroutine für das Julianische Datum, die Zeitgleichung, die Präzession, die Lösung der Kepler-Gleichung und vieles mehr.

Ein guter Einstieg ist das Buch "Grundlagen der Ephemeridenrechnung" von Oliver Montenbruck, der das Thema klassisch mit Bahnelementen beschreibt. Hat man die ersten Schritte getan, finde ich "Astronomical Algorithms" von Jean Meeus sehr gut. Er beschreibt u.a. numerische Methoden, z.B. eine komplett abgedruckte vereinfachte VSOP87-Theorie, die sogar in GUIDE verwendet wird. Im Buch "Astronomie mit dem Personalcomputer" (O.Montenbruck/T.Pfleger) finden sich sehr viele Beispiele mit Algorithmen und Sourcecode (C++).

salü, volker.
 
Danke Volker für die Tipps. Von Montenbruck & Pfleger studiere ich auch die älteren Pascal Codes, C++ ist mir noch etwas zu heftig.
Dass du noch mit VB6 programmierst finde ich sehr interessant.
 
Dass du noch mit VB6 programmierst finde ich sehr interessant.
Das liegt wohl daran, dass man für diese Programme sehr viel Zeit braucht. Anfang der 1980er begann ich mit Basic auf einem C64, dann mit Omicron Basic auf einem Atari ST. Danach fand ich Visual Basic für den PC sehr gut, die Version 6 war damals ganz neu auf dem Markt. Mittlerweile habe ich Mühe, diese Programme unter Windows 10 noch am Laufen zu halten. Das geht leider nur noch als Programmcode in der VB6-Programmierumgebung. Ich bleibe jedoch dabei, weil meine ganzen Routinen sich bausteinartig in dieser Sprache aufbauen. Will ich was neues machen, muss ich nicht immer wieder umdenken. Die wichtigsten Routinen wie z.B. die Lösung der Keplergleichung oder Koordinatentransformationen stammen sogar noch fast "wortgetreu" aus den 1980ern. Ist schon ziemlich retro...

PS: In Montenbrucks "Grundlagen der Ephemeridenrechnung" ist z.B. die Mondbahn mit den wichtigsten Störungstermen aufgeführt, ebenso die Newcombsche Sonnentheorie. Die Terme lassen sich ziemlich leicht in jeden Programmdialekt übersetzen...

salü, volker.
 
Zuletzt bearbeitet:
Hallo Peter,
ich habe ein Buch namens Celestrial Basic, wo das drin steht. Die Programme sind gut dokumentiert.
Allerdings in Basic. Zu einem Buch, ich weiss jetzt aber gerade nicht welches habe ich auch Pascal-Routinen, wahrscheinlich auf 5,25 Zoll Disketten, wenn die heute jemand noch kennt.
Astronomical calculators

Gruss
Peter
 
...ein Buch möchte ich auch noch empfehlen, obwohl es heute wohl nur noch schwer zu bekommen sein wird: "Astronomical Formulae For Calculators", ein frühes Werk vom Altmeister Jean Meeus. Im Gegensatz zu späteren Werken mit der VSOP87-Theorie berechnet Meeus für die Planeten zunächst mittlere Größen, die dann mit vielen Störungstermen zu einer exakten Bahn (Genauigkeit etwa 1") ergänzt werden. Diese Terme kann man leicht in jede Programmiersprache übersetzen. Diese Vorgehensweise finde ich sehr interessant, zumal das Buch zu einem Zeitpunkt erschien, an dem es (fast) keine deutschsprachige Literatur zu diesem Thema gab. Die "Calculators" im alten Titel von Meeus waren die zu jener Zeit beliebten kleinen Rechner wie z.B. der Sharp PC-1401. Die waren damals noch richtig teuer, es war wohl der Traum von vielen. Der Commodore VC 20 kam erst etwas später auf den Markt.

Oliver Montenbrucks "Grundlagen der Ephemeridenrechnung" erschien ursprünglich als (blauer) Band 10 des Verlags "Sterne und Weltraum" im Jahr 1984. Für Merkur bis Mars gibt er zeitabhängige Bahnelemente an, die ohne Störungsterme bis heute eine erstaunliche Genauigkeit erreichen. Für Jupiter, Saturn, Uranus, Neptun und Pluto (Pluto war damals noch ein Planet! ;-)) geht er einen völlig anderen Weg: Er gibt für bestimmte Zeitpunkte im Abstand von 200 Tagen Bahnelemente an, die störungsgerechnet sind, sogenannte oskulierende Bahnelemente. Sie stellen die Planetenbahn zu diesem Zeitpunkt sehr exakt dar. Im Original von 1984 beziehen sich diese oskulierenden Bahnelemente sogar noch auf das ältere Äquinoktium 1950.0; die neueren Auflagen wie z.B. die sechste beziehen sich dagegen auf das heute gebräuchliche (Standard-)Äquinoktium 2000.0.

salü, volker.
 
In der DDR kursierten unter uns Sternfreunden ein paar Filmrollen mit diesem Buch, ich weiß jetzt nicht welche Auflage. Aber es war an Benutzer programmierbarer Taschenrechner gerichtet. Ich habe mir damals Abzüge auf sog. Dokumentenpapier gemacht. Aus Nostalgie habe ich es nie weggeworfen. Ich kann also falls es nottut, mal ein paar Seiten daraus kopieren.
 
@Peter
Danke für den Tipp zu "Celestrial Basic" - das Buch habe ich sogar. Hab damit die ersten Programme am Sinclair Spectrum geschrieben. :) Die Programme sind zwar recht kurz und schnell geschrieben aber leider sind die Ergebnisse recht ungenau.

@volker
Danke auch für deinen Tipp.

@alle
Beim Springer-Verlag gibt es noch die Pascal-Sourcen von Montenbruck & Pfleger zum Download. Die hab ich mir nun geholt und versuche sie zu übersetzen. Mal sehen ob ich daraus vielleicht sogar eine Library machen kann.

Danke euch allen für die Unterstützung.
 
"Mit fertigen Programmen kann ich nichts anfangen"

Warum denn nicht? Ich nutze für die Ephemeriden High Precision Ephemeris Tool von Manfred Dings. Das Programm nutzt neben der VSOP87 auch die JPL Ephemeriden die auch Guide für seine Berechnungen benutzt. Mit dem Programm ist es auch möglich, Bahnelemente zu integrieren. Ich glaube genauer gehts nicht. High Precision Ephemeris Tool | Software für Hobbyastronomen
 
Mit Online-Portalen oder gar fertigen Programmen kann ich nichts anfangen.
Ich kann das gut verstehen. Obwohl ich natürlich auch einige gekaufte Astro-Programme benutze, finde ich es nicht sehr befriedigend. Es geht dabei wohl auch weniger um die Genauigkeit. Es ist wohl so wie ein Virus, das einen für´s ganze Leben infiziert. Bis man sogar eigene Zeichensätze, griechische Buchstaben und die alten Symbole des Tierkreises selbst auf mm-Papier entwirft... ;-)
Vielleicht ähnlich wie bei einem Spiegelschleifer, der sich damit total identifiziert. Für ihn ist ein neu gekaufter, fertiger Spiegel wohl nicht sehr interessant.

salü, volker.
 
Hallo Peter,

ich habe vor Jahren mal versucht astronomische Berechnungen mit Flash zu programmieren. Der Vorteil war damals, dass man gleich ein ansehnliches "Interface" mitschreiben kann, das in seiner grafischen Gestaltung relativ frei war. Flash ist aber mittlerweile ziemlich tot.

Jetzt habe ich vor einigen Monaten mal begonnen meine Festplatten zu durchsuchen und das ganze in (man höre und staune) JavaScript umzumodeln, was ja recht einfach zu programmieren ist. Als grafische Alternative gibt es ja jetzt HTML5 mit seiner "canvas", wenngleich das für dieses Thema meines Erachtens noch relativ mühsam ist.

Es gibt eine kleine JS Ressource von Keith Burnett (bitte selber googeln, ich finde es grade nicht). Ich habe das als Ausgangspunkt genommen und mal die verschiedensten Ressourcen von Meeus, Montenbruck usw.usf draufgepackt. Die "üblichen Verdächtigen halt ;)
Ist alles nix Neues, aber wenn man das selber tippen will - und das macht durchaus Sinn und auch Spaß - ist es eine gute Übung.

Habs mal auf den Server gegeben:
Ephemeriden mit JS

Die Seite läuft nur mit Bootstrap (HTML+CSS) sowie den nötigen .js Dateien für die Rechnungen.
Ist alles noch sehr unfertig und zusammengewürfelt, aber der Tag hat leider nur 24 Stunden...
Schau einfach mal in den Quellcode und dort dann in die einzelnen .js Dateien.

An alle Leute hier, die mit "warum alles selber machen wenn's das schon gibt" argumentieren.
Ganz einfach: Manchen Leuten macht das einfach Spaß. Besser noch, Freude! Wenn man selber was zusammengefrickelt hat, und das dann auch noch funktioniert, ist es ein Erfolgserlebnis ;)
As simple as that.

Freilich gibt es genug Ressourcen, lästig ist halt das Implementieren elendslanger Tabellen für diverse Berechnungen (Numerische Integration von Koordinaten usw.). Diese Tabellen mit den Zahlenwerten findet man zwar, aber selten so, wie man sie selbst benötigt (je nach Sprache). Also Copy+Paste ist das nicht.

In meiner obigen Webseite habe ich auch mal die "Canvas" von HTML5 ausprobiert, bei der Mondphase. Funktioniert soweit ganz gut. Wie gesagt ziemlich unfertig alles. An's Refactoring des JS möchte ich gar nicht denken (schauder...:eek:).

Horizontale Koordinaten und Auf-/Untergang sind dann als nächstes dran, aber da gibt es momentan ein Zeitproblem.

CS,
harald


--
 
Wenn man die Rechenergebnisse für weitergehende (und nicht durch Standardprogramme abgedeckte) Anwendungen benötigt, dann ist es am besten, man schreibt es selbst. Natürlich kann man sich auch darum bemühen, ein fertiges Programm irgendwie anzuzapfen, aber das ist meist nur eine Übergangslösung. Irgendwas ändert sich, der Dienst wird eingestellt, die eigenen Anforderungen ändern sich: Man rennt immer hinterher.

Ich habe Peter den Montenbruck empfohlen, eigentlich in Kombination mit einer aktuellen Auflage des Meeus-Buchs. Der Meeus ist mMn. didaktisch besser. Die Montenbruck-C++-Programme sind sehr gut. Bei der Umsetzung werden keine tief-speziellen C++-Konstrukte eingesetzt. Ein Umsetzung in die C-Ableger C# und Java ist ziemlich einfach. Wenn ich versuche, in diesen Programmen etwas zu verstehen, dann gehe ich meist mit dem Schritt-Tester durch (Visual Studio). Ich sehe dann erst wirklich, *wie* gut das programmiert ist: Man verliert sich nicht in Einzelheiten, es ist alles so strukturiert, wie es für das Gesamtverständnis am besten ist. Dazu muss man eine Balance finden zwischen dem alten Fortran-Style (Routinen sind sehr lang und kaum gegliedert) und der modernen, von der Objektwelt geprägten Programmierweise, jede fünf Zeilen in eine eigene Methode zu stopfen. Das ist gut gelungen.

Ich plädiere übrigens für C++ als Sprache der Wahl frü solche Anwendungen. Mit ganz wenig Mühe kann man das alte C-Erbe hinter sich lassen, und man unterliegt nicht dem Objekt-Diktat der modernen Sprachen. Wenn etwas algorithmisch ist, braucht man dem keinen Objekt-Haube überzustülpen. Der Nachteil ist vielleicht, dass es keine im Standard verankerte Grafik gibt. Aber auch dafür gibt es einfache Lösungen. Wen das interessiert, der möge mich anschreiben.

Etwas lang geworden, sorry.
 
Hallo,
ich hoffe Ihr seit nicht verärgert.
Ich suche ein Programm um die Ephemeriden der Sonne zu berechnen. Das Programm sollte die Ergebnisse in eine Datei schreiben. Z. B. im Textformat.
Eingabe Datum von bis und dann im Abstand von z. B. 5 Min. die Ausgabe.
An sich benötige ich nur Azimut und Höhe Sonne über dem Horizont in Grad.
Benötige ich um die Effektivität einer Solarthermieanlage zu berechnen.
Auch für kleines Geld ist OK. Wenn Jemand so etwas hat oder weis wo, bitte Info.

Schöne Grüße

Uwe
 
Ich suche ein Programm um die Ephemeriden der Sonne zu berechnen. Das Programm sollte die Ergebnisse in eine Datei schreiben. Z. B. im Textformat.
Eingabe Datum von bis und dann im Abstand von z. B. 5 Min. die Ausgabe.

Das macht u.a. HPET. Dort kann man die Schrittweise der Ephemeriden z.B. auf eine Minute eingrenzen. Das Ergebnis kann man dann in eine Excel-Tabelle schreiben lassen und diese wiederum als CSV oder TXT-Datei mit jedem Tabellenprogramm seiner Wahl exportieren.


Screenshot 2020-12-08 140011.png
 
Zuletzt bearbeitet:
Hallo,
ich hoffe Ihr seit nicht verärgert.
Ich suche ein Programm um die Ephemeriden der Sonne zu berechnen. Das Programm sollte die Ergebnisse in eine Datei schreiben. Z. B. im Textformat.
Eingabe Datum von bis und dann im Abstand von z. B. 5 Min. die Ausgabe.
An sich benötige ich nur Azimut und Höhe Sonne über dem Horizont in Grad.
Benötige ich um die Effektivität einer Solarthermieanlage zu berechnen.
Auch für kleines Geld ist OK. Wenn Jemand so etwas hat oder weis wo, bitte Info.

Schöne Grüße

Uwe

Schauen Sie mal bei V1-Script, V1 Script - A Scripting Language for Web, Linux and Windows

Da gibt es ein Command Line-Programm, das den Sonnenstand berechnet und als CSV exportieren kann.
Es liegt im Verzeichnis cli-examples, solarcalc.bat unter Windows und solarcalc.sh unter Linux.
Interessant ist Option 6.

C:\v1-script\cli-examples>..\v1.exe solarcalc.v1
Astronomical computations:

[1] Compute positions of Sun and Moon
[2] Compute positions of Planets
[3] Compute rise/set/transit of Planets
[4] Find conjunctions/oppositions to Sun
[5] Sun statistic per day as CSV file
[6] Sun azimuth/altitude every X minutes
-----------------------------------------
[T] Set date/time
[L] Set location
[X] Exit

Start Date/time (YYYY-MM-DD [HH:MM:SS]): 2020-01-01
End Date/time (YYYY-MM-DD [HH:MM:SS]): 2020-02-01
Zone ([+|-]Hours to UTC, let empty to use system zone):
Every minutes (default = 5):
Numbers with decimal separator ','? (y/n)
Write file: sunstat_5min_2020.csv
2020-01-01
2020-01-02
2020-01-03
2020-01-04
2020-01-05
...
sunstat_5min_2020.csv created

Ausgabe in der CSV-Datei sieht dann so aus:


Sun azimuth/altitude every 5 Minutes
Position; 52° 30' N 13° 24' E
From;2020-01-01 +01:00
To;2020-02-01 +01:00
Date/Time;Azimuth;Altitude
2020-01-01 00:10;0,2;-60,6
2020-01-01 00:15;2,53;-60,5
2020-01-01 00:20;4,87;-60,5
2020-01-01 00:25;7,19;-60,4
2020-01-01 00:30;9,51;-60,3
2020-01-01 00:35;11,81;-60,2
2020-01-01 00:40;14,09;-60

...
 
Hi Uwe!

Ich suche ein Programm um die Ephemeriden der Sonne zu berechnen. Das Programm sollte die Ergebnisse in eine Datei schreiben. Z. B. im Textformat. [...]
Benötige ich um die Effektivität einer Solarthermieanlage zu berechnen.

Für das, was du suchst, gibt es ganz einfache Gleichungen, die du innerhalb kurzer Zeit in Excel einhacken kannst. Zu finden z.B. in diesem Buch:
Das hat zwar keine "astronomische" Genauigkeit, für die Solarthermieanlage reicht es aber allemal.

Wenn du mich anschreibst, kann ich dir die entsprechenden Seiten aus dem Buch gerne kopieren und per E-Mail zuschicken.

Gruß
Wolfgang
 
Hallo,

ich hatte in den 80 zigern das mit BASIC/Turbo Pascal gemacht. Nun habe ich die Formeln ins Excel importeit. Geht genauso gut.

cs
Lothar
 
Hallo,
inzwischen habe ich eine Lösung die hier vorgeschlagen wurde. Herzlichen Dank für Eure Antworten und Unterstützung!
Schöne Grüße
Uwe
 
Hey zusammen,

auch wenn der Thread schon länger besteht, kann ich auch mal kurz ein paar Ideen zur Ephemeridenberechnung reinwerfen. Vielleicht kennt ihr das NASA Horizons: https://ssd.jpl.nasa.gov/horizons.cgi

Hier kann man Koordinaten in RA/Dec aber auch vektoriell berechnen. Die Einstellungsmöglichkeiten sind immens. Alles basiert auf das Toolkit SPICE vom NAIF: https://naif.jpl.nasa.gov/naif/. Jedoch kann es beliebig kompliziert werden, da man für die Berechnung sog. "Kernels" braucht. Also vorab-berechnete Dateien, die bestimmte Informationen tragen. Wer aus der Python Welt kommt, kann beispielsweise den Python Wrapper "SpiceyPy" installieren, es gibt hier ein kleines Minimal-Beispiel: https://spiceypy.readthedocs.io/en/master/exampleone.html

Gruß,
Thomas
 
Oben