Jahr | Startdatum: ---- |
|
Monat | ||
Tag | ||
Längengrad | londms
|
Länge: O+ W- | Breite: N+ S- |
Breitengrad | latdms
|
|
Zeitzone |
|
Zeitdifferenz zur Weltzeit UTC in Stunden Ost+ West− |
Anzahl | Anzahl der Tage, die berechnet werden sollen |
Der vorliegende Algorithmus ist eine JavaScript-Umsetzung der Berechnungen, wie sie in dem Buch 'Astronomie mit dem Personal Computer' von O. Montenbruck und T. Pfleger dargelegt werden. Die Autoren verwenden für ihre Berechnungen die Programmiersprache C++. Eine Umsetzung in JavaScript wurde bereits im Jahre 2003 von Keith Burnett (UK) im Internet veröffentlicht. Durch die rasende Entwicklung der Internetbrowser und Scriptsprachen wie JavaScript in den letzen Jahren ergab sich die Möglichkeit, diesen Scripten einen moderneren Anstrich zu verpassen.
Das vorliegende Script liefert brauchbare Daten für eine Zeitspanne von ca. J2000 ± 400 Jahre = [1600 - 2400].
Bei der Berechnung von Auf- und Untergängen werden keine hohen Ansprüche an die Genauigkeit der Sonnen- und Mondkoordinaten gestellt. Es macht keinen Sinn, die Koordinaten auf wenige Bogensekunden genau zu berechnen, da die Auf- und Untergangsrechnung ohnehin von Parametern beeinflusst wird, die praktisch nicht exakt berechenbar sind. Die Funktionen 'minisun' und 'minimoon' enthalten deshalb nur die wichtigsten Terme zur Beschreibung der entsprechenden Bahnen.
Als Ergebnis erhält man die geozentrischen ekliptikalen Koordinaten \( \lambda \) und \( \beta \) von Sonne und Mond. Die Umrechnung der ekliptikalen Koordinaten \( \lambda \) und \( \beta \) in äquatoriale Koordinaten Rektaszension \( \alpha \) und Deklination \( \delta \) wurde in beide Funktionen gleich mit eingebaut, sodass beide Funktionen ohne weitere Operationen die geozentrische Rektaszension \( \alpha \) und Deklination \( \delta \) des jeweiligen Objekts liefern.
Per Definition gehen Sonne und Mond auf bzw. unter, wenn der obere Rand der Scheibe mit dem scheinbaren Radius \( s \) den mathematisch ebenen Horizont überschreitet. Diese Annahmen sind sehr theoretisch, da es einen komplett ebenen Horizont nicht gibt. Am ehesten wäre ein solch ebener Horizont noch auf hoher See gegeben.
Weiters werden hier nur die geozentrischen Koordinaten verwendet. Eigentlich müsste man zuerst die topozentrischen Koordinaten (Beobachter ist auf der Erdoberfläche) berechnen, da Sonne und Mond eine Horizontalparallaxe \( \pi \) besitzen:
\(\large \pi = \arcsin \left( {\frac{{{R_ \oplus }}}{\Delta }} \right),\) \(\large s = \arcsin \left( {\frac{{{R_M}}}{\Delta }} \right)\)
Im Falle der Sonne ist die Horizontalparallaxe aber sehr klein (\(\pi \approx 8.8''\)) und liegt weit unterhalb der Genauigkeit der berechneten Koordinaten. Im Falle des Mondes liegt die Horizontalparallaxe allerdings im Bereich von etwa \(\pi = 0^\circ 54'\) bis \(1^\circ 1.5'\), je nach Entfernung des Mondes zum gegebenen Zeitpunkt. Das ist genau genommen nicht mehr vernachlässigbar.
Auch die Refraktion der Lichtstrahlen in der Erdatmosphäre müsste berücksichtigt werden, da diese in Horizontnähe eine Anhebung der Gestirne bewirkt und sie höher stehend erscheinen lässt als dies tatsächlich der Fall ist. Die Refraktion wird zusätzlich von Luftdruck und Temperatur beeinflusst. Die mittlere Refraktion in Horizonthöhe beträgt ca. \({R_{h = 0}} = 0^\circ 34'\).
Man müsste in der Auf- und Untergangsrechnung von topozentrischen Höhen ausgehen. Zusätzlich müsste man die Refraktion am Horizont in Rechnung stellen. Weil die Auf- und Untergangszeiten immer auf den oberen Rand von Sonne oder Mond bezogen werden, hat man noch den scheinbaren Radius \({s_ \odot }\) oder \({s_{Mond} }\) zu berücksichtigen. Zum Zeitpunkt des Auf- oder Untergangs hat das Gestirn dann die geozentrische Höhe
\(\large {h_{A/U}} = 0^\circ + \pi - {R_{h = 0}} - s\)
All diese Werte könnten berechnet werden. Die Berechnung von \(\pi\) und \(s\) beinhalten wie oben dargestellt die Kenntnis der geozentrischen Entfernung \(\Delta\). Da aber \( \Delta \) des Objekts nicht im Voraus bekannt ist, sondern eben erst durch die Berechnng der Koordinaten selbst ermittelt werden müsste, wäre man auf Schleifen angewiesen, was zu einer unnötigen Komplizierung des Codes führen würde. Die Erhöhung der Genauigkeit wäre aber unwesentlich, daher rechtfertigt sich der Aufwand für diese Berechnungen nicht.
Die kritischste Größe ist hier die Refraktion am Horizont. J. Meeus schreibt in seinen Astronomical Algorithms im Kapitel 16 dazu sinngemäß Folgendes:
Die Aufgabe besteht darin, für ein vorgegebenes Datum den Zeitpunkt zu finden, zu dem der betrachtete Himmelskörper die Auf/Untergangshöhe \( h = {h_{A/U}} \) erreicht. Weil es keinen Sinn hat, die solchermaßen erhaltenen Zeiten genauer als auf wenige Minuten anzugeben, erspart man sich die genaue Berechnung von \( \pi \) und \( s \) und begnügt sich stattdessen mit Mittelwerten. Üblicherweise legt man den Berechnungen der Auf- und Untergangszeiten folgende Werte zugrunde:
Da dieses Script auch die Zeiten des Dämmerungsanfangs und -endes berechnet, sollen hier noch die gebräuchlichen Definitionen erwähnt werden. Man unterscheidet
Diese Werte für die Dämmerung beziehen sich auf den Mittelpunkt der Sonnenscheibe. An diesen Werten werden keine Korrekturen für Parallaxe \( \pi \), Refraktion \( R \) oder scheinbaren Halbmesser \( s \) mehr angebracht. Die Dämmerung beginnt oder endet also definitionsgemäß, wenn die geozentrische Sonnenhöhe einen der genannten Werte annimmt.
Die Rechnung kann mit verschiedenen Methoden angegangen werden. Man könnte für jedes Objekt stur seine Höhe im Verlauf eines Tages in Minutenabstand berechnen und nachsehen, wann die oben genannte Höhe \(h_{A/U} \) erreicht wird. Das erfordert aber für jedes Objekt \( 24 \cdot 60 = 1440 \) Berechnungen für jeden Tag, was ein unnötiger Aufwand wäre. Eine Verkürzung wäre denkbar, indem man nur solange sucht, bis der Wert das Vorzeichen wechselt.
In den 'Astronomical Algorithms' von J. Meeus wird z.B. der Stundenwinkel \( H_0 \) des Objekts berechnet, und zwar aus den 3 scheinbaren Koordinatenpaaren \(\alpha , \delta \) des Vortages, des gesuchten Tages und des nachfolgenden Tages. Unter Berücksichtigung der lokalen Sternzeit (Stundenwinkel) kann dann der Zeitpunkt des Aufgangs, des Meridiandurchgangs und des Untergangs mit Hilfe einer Schleifenberechnung gefunden werden.
Der Vorteil dieser Methode ist, dass sie auch den Meridiandurchgang des Objekts liefert. Die Methode beinhaltet aber umfangreichere Berechnungen wie die 3-malige Ermittlung der scheinbaren Koordinaten \(\alpha , \delta \), eine Interpolation derselben, sowie eine Korrektur mittels Schleifen, um die Werte zu verbessern. Der Nachteil ist hier auch, dass diese Methode für hohe Breitengrade sehr schnell fummelig werden kann, da sie nur schlecht mit 'streifenden Ereignissen' umgehen kann, also bei 2-maligem Auftreten eines Events innerhalb eines Tages.
Die vorliegende Methode von Montenbruck/Pfleger ist hier besser. Die Koordinatenberechnung von \(\alpha , \delta \) wird auf ein Minimum an Genauigkeit reduziert, gerade soweit, wie es für den Algorithmus zuträglich ist. Dann werden innerhalb jeden Tages in einem 2-Stunden Intervall 3 Stützstellen \({y_ - },\,{y_0},\,{y_ + }\) gesetzt, an denen die Höhe des Objekts berechnet wird. Genau genommen wird der Sinus der Höhe \( h \) minus dem Sinus der Höhe \(h_{A/U} \) ermittelt. Dies erfordert maximal \({\textstyle{{24} \over 2}} \cdot 3 - 11 = 25\) Berechnungen für einen Tag.
Die \(-11\) rührt daher, dass die letzte (rechtsseitige) Stützstelle in der Schleife immer automatisch als erste (linksseitige) Stützstelle des nächsten 2-Stunden Intervalls weitergereicht wird, sodass sie nicht neu berechnet werden muss.
Dann wird durch diese 3 Stützstellen mittels quadratischer Interpolation eine Parabel gelegt und deren Nullstelle ermittelt. Es kann hier auch ermittelt werden, wie viele Nullstellen (keine, 1 oder 2) in dem 2-Stunden Intervall auftreten. Dadurch wird auch eine Berechnung für 'streifende Ereignisse' möglich.
Der einzige Nachteil dieser Methode ist, dass die Zeit des Meridiandurchgangs (Stundenwinkel \( H_{Obj} = 0 \)) nicht ermittelt wird. Das könnte nur mit einer weiteren Funktion gemacht werden, welche nach demselben Prinzip den Zeitpunkt der maximalen Tageshöhe der Objekte berechnet. Hier müssten allerdings die Ableitungen der gegebenen Funktionen durchsucht werden, um die maximale Höhe des Objekts zu finden. In diesem Fall dürfte die Methode von Meeus, die über eine Schleife mit Korrekturwerten den Transitzeitpunkt findet, effizienter sein. Weiters sei darauf hingewiesen, dass bei sich schnell bewegenden Objekten wie z.B. dem Mond die Kulminationszeit (höchster Punkt) und die Transitzeit (Stundenwinkel H = 0°) genau genommen nicht dieselbe ist.
Der Algorithmus von Montenbruck/Pfleger ist sehr schnell. Auf einem durchschnittlichen PC heutiger Bauart können leicht 10000 Tage unter einer halben Sekunde berechnet werden. Auf meinem durchschnittlichen Rechenknecht benötigt die Berechnung von 100000 (!) Tagen knapp 4 Sekunden.
Vorsicht ist in großen geografischen Breiten geboten. Wenn die Auf- und Untergangszeiten sehr nahe beieinander liegen, kann es schnell unübersichtlich werden. Solche Daten sollten mit Vorsicht interpretiert werden.
Es kommt mitunter zu seltsamen - wenn auch korrekten - Darstellungen wie z.B. einer solchen:
Der Mond ist hier für alle berechneten Daten zirkumpolar unsichtbar, die Sonne hingegen für alle berechneten Daten zirkumpolar sichtbar, ebenso gibt es keine Dämmerungen. Das ist auch logisch, denn am 20.6. ist in dieser Breite (80°N) Polartag.