Textbaustein-System für die Monatsübersicht deutlich robuster und
natürlicher gemacht:
- Zwischenüberschriften ("Der Mond im ...", "Die Planeten im ...") durch
strukturierte Absatz-Rückgabe statt reinem String; Live-Seite und
HTML-/Joomla-Export rendern jetzt korrekt h3 -> h4 -> p.
- Deterministische statt zufällige Textbaustein-Auswahl (seeded statt
random_int), damit derselbe Monat/Jahr bei erneutem Aufruf denselben
Text liefert.
- Übergangsphrasen zwischen Ereignissätzen ("Anschließend", "Kurz
darauf" etc.) berücksichtigen jetzt den tatsächlichen Tagesabstand
und wiederholen sich nie zwei Mal hintereinander; Ereignisse am
selben Tag werden zu einem Satz zusammengefasst statt das Datum
doppelt zu nennen.
- Bugfix: Merkur-Elongationen und Venus-Konjunktionen landeten wegen
eines Typo im Typvergleich im generischen Fallback-Satz.
- Venus korrekt feminin dekliniert (sie/ihre) statt durchgängig "er".
- Morgen-/Abenddämmerung wird bei Merkur-Sichtbarkeit und Venus-
Helligkeit jetzt benannt (Venus-Sichtbarkeitsrichtung neu in
api.py berechnet).
- Meteorstrom- und Bedeckungs-Label für Fließtext aufbereitet statt
Rohdaten-Format ("Maximum X - CODE - ZHR ca. Y", "- Größte
Bedeckung") direkt auszugeben.
- Aufhänger-Satz: Priorität um Mondbedeckungen erweitert, Planeten-
parade entfernt; nur im Export fett hervorgehoben.
- Viertes Sky-Intro-Textset (V4) ergänzt, Rotation von year%3 auf
year%4 umgestellt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
apparent.radec(epoch=timescale.J2000) lieferte faelschlich das wahre
Aequinoktium/Aequator von J2000.0 statt ICRF-Koordinaten und rechnete
damit die Nutation von J2000.0 (~14,5") in die Merkur/Planeten-Ausgabe
ein, obwohl die CSV-Spalten "RA (J2000)"/"Dek (J2000)" ICRF-Koordinaten
meinen sollen. radec() ohne epoch-Argument liefert das korrekte
Bezugssystem.
Regressionstest ergaenzt, der bei erneutem epoch=-Argument fehlschlaegt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diese Datei dokumentiert, welche Berechnungsbibliothek beziehungsweise welche
Datenquelle die einzelnen Seiten verwenden.
## Die drei wichtigsten Grundlagen
### Astronomy Engine
Die lokale Python-Version liegt in `public/py/astronomy.py`. Im Browser wird
`public/js/astronomy.browser.min.js` verwendet.
Astronomy Engine liefert auf vielen Seiten die Positionen von Sonne, Mond und
Planeten sowie Ereigniszeiten wie Mondphasen, Finsternisse, Bedeckungen und
Konjunktionen.
### Skyfield mit `de421.bsp`
Skyfield liegt lokal in `public/py/vendor` beziehungsweise
`public/py/vendor_linux`. Die verwendete JPL-Ephemeride ist:
`public/py/vendor_data/de421.bsp`
Die zentrale Einrichtung erfolgt in `public/py/astronomical_conversions.py`.
`de421.bsp` wird derzeit für die Planet-Ephemeriden in `ephemeriden_api.py`
und für die Dämmerungsgrafik verwendet.
Die Datei enthält Jupiter bis Neptun als Systemschwerpunkte. Die lokale
`jup365`-Datei wird von den hier dokumentierten Seiten derzeit nicht verwendet.
### Weitere Berechnungen
Nicht jede Berechnung ist Skyfield oder Astronomy Engine:
- Satellitenbahnen werden mit SGP4 aus TLE-Daten berechnet.
- Kometen und Kleinplaneten werden derzeit aus ihren Bahnelementen mit eigenen
Kepler-Berechnungen bestimmt.
## Seitenübersicht
| Seite | Berechnungsgrundlage |
|---|---|
| `ephemeriden.php` | **Skyfield + `de421.bsp`** für Sonne, Mond und Planeten. Auf- und Untergang sowie Horizontkoordinaten werden ebenfalls mit Skyfield berechnet. Kometen und Kleinplaneten bleiben bei den eigenen Bahnelement-Berechnungen. Die interaktive Karte nutzt im Browser zusätzlich Astronomy Engine für Horizontberechnungen und Sterne. |
| `monatsvorhersage.php` | Überwiegend **Astronomy Engine** über `public/py/api.py`. Satellitenereignisse verwenden SGP4. Die Dämmerungsgrafik verwendet Skyfield + `de421.bsp`. Jupiter- und Jupitermond-Ereignisse verwenden aktuell Astronomy Engine. |
| `wochenvorhersage.php` | **Astronomy Engine** über `public/py/api.py`; je nach Bereich zusätzlich SGP4 für Satelliten. |
| `jupitersystem.php` | **Astronomy Engine**. Die Darstellung im Browser und die Galileischen Monde werden über Astronomy Engine berechnet. `jup365.bsp` wird hier aktuell nicht geladen. |
| `sonnenfinsternis.php` | **Astronomy Engine**, einschließlich lokaler Berechnung für den Standardstandort. |
| `mondfinsternis.php` | **Astronomy Engine**. Der Zeitpunkt der Finsternis ist global; eine lokale Sichtbarkeitsbewertung ist davon getrennt. |
| `sternbedeckungen.php` | **Astronomy Engine** über die lokale Python-API. Topozentrische Koordinaten und der Standardstandort werden berücksichtigt. |
| `moonphase.php` | **Astronomy Engine** im Browser beziehungsweise über die lokale Python-API. |
| `moonyear.php` | **Astronomy Engine** für Mondphasen und Mondpositionen. |
| `satellitenhimmel.php` | **SGP4** für Satellitenbahnen; Astronomy Engine für astronomischen Kontext wie Sonne, Mond und Dämmerung. |
| `drehbare_sternkarte.php` | **Astronomy Engine** im Browser für Horizont- und Koordinatenberechnungen. |
| `sternenhimmel.php` | **Astronomy Engine** im Browser beziehungsweise über die lokale API. |
| `tagbogen.php` | **Astronomy Engine** für Sonnen-, Mond- und Planetenbahnen. |
| `solarsystem.php` | **Astronomy Engine** im Browser für das Sonnensystemmodell. |
| `geocron3d.php` | **Astronomy Engine** im Browser. |
| `geocron/index.php` | **Astronomy Engine** über das Geocron-Plugin. |
@@ -814,20 +822,47 @@ if (!function_exists('monthForecastBuildNarrativeText')) {
12=>"Lange Nächte und ein glanzvoller Winterhimmel – das ist der Dezember. Die Sommersternbilder ziehen sich in den frühen Abendstunden zurück; Orion, Stier, Zwillinge und Fuhrmann haben längst ihren Platz eingenommen. Sirius erscheint früh über dem Südosthorizont. In der Neujahrsnacht erreicht er gegen Mitternacht seinen Tageshöchstpunkt und steht dann von Deutschland aus fast genau im Süden.\n\nIm Südwesten verbleiben Reste des Herbsthimmels: Wassermann, Fische und Walfisch unterhalb des Herbstvierecks, lichtschwach und weitläufig. Zwischen Walfisch und Orion windet sich der Eridanus – seine Sterne sind unauffällig, doch sein geschwungener Verlauf lädt bei klarer Nacht zu einer kleinen Himmelsreise ein.",
];
$skyIntroByMonth=match($year%3){
$skyIntroByMonthV4=[
1=>"Hoch im Süden dominiert im Januar eine Sternfigur, die selbst Laien sofort wiedererkennen: der Orion mit seinen sieben hellen Hauptsternen. Die drei Gürtelsterne in der Mitte sind sein Markenzeichen; direkt darunter lässt sich schon im Fernglas der neblige Schleier des Orionnebels aufspüren. Die rechte untere Ecke der Figur markiert Rigel, einer der hellsten Sterne des gesamten Himmels.\n\nRigel ist gleichzeitig Eckpunkt einer noch größeren Figur: des Wintersechsecks. Im Uhrzeigersinn reihen sich daran Sirius im Großen Hund, Prokyon im Kleinen Hund, Castor in den Zwillingen, Capella im Fuhrmann und Aldebaran im Stier. Durch genau diesen Bereich zieht sich auch die Wintermilchstraße, von Großem Hund über Einhorn, Zwillinge, Stier, Fuhrmann und Perseus bis zur Kassiopeia – nur ist sie deutlich blasser als ihr Sommerpendant, weil unser Blick jetzt eher zum Rand der Galaxis geht.",
2=>"Selten zeigt sich der Winterhimmel so sternenreich wie an einem klaren Februarabend. Um 22 Uhr, auf diese Zeit bezieht sich die Sternkarte, haben die Sternbilder rund um den Orion den Meridian bereits überquert und ziehen langsam nach Westen. Unter dem Orion funkelt Sirius, der hellste Fixstern des Nachthimmels überhaupt. Rechts oben leuchtet der Stier mit Aldebaran, darüber der Fuhrmann mit der gelblichen Capella, links die Zwillinge mit Castor und Pollux; unterhalb von ihnen sitzt Prokyon, der Hauptstern des Kleinen Hundes.\n\nIm Osten kündigt sich derweil schon der Frühling an: Der Löwe mit Regulus ist komplett aufgegangen, und tief darunter blitzt Alphard als einsamer heller Punkt in der Wasserschlange. Bis die Jungfrau vollständig über dem Horizont steht, dauert es dagegen noch bis nach Mitternacht.",
3=>"Im März treffen zwei Jahreszeiten am Himmel aufeinander. Am frühen Abend sind die Wintersternbilder noch da – Orion, Großer Hund, Kleiner Hund, Zwillinge, Fuhrmann, Stier –, doch im Lauf der Nacht wandern sie unaufhaltsam Richtung Westen, während im Osten schon die Frühlingssternbilder nachrücken. Zur Mitternachtsstunde gehört der Himmel bereits den Sternbildern rund um den Löwen.\n\nZwischen den Zwillingen und dem Löwen duckt sich der unscheinbare Krebs – wer ihn unter dunklem Himmel aufsucht, wird mit dem offenen Sternhaufen Praesepe belohnt, liebevoll „Krippe\" genannt und als milchiger Fleck erkennbar. Fast im Zenit steht jetzt der Große Wagen, so hoch wie kaum sonst im Jahr. Im Südosten geht Spica auf, im Nordosten leuchtet der orangefarbene Arktur. Tief am Südhimmel reckt sich die Wasserschlange empor, meist nur zu erahnen am einsamen Alphard, dessen Name „der Einsame\" bezeichnenderweise passt. Und ganz knapp über dem Horizont wartet noch der kompakte Rabe.",
4=>"Drei Sterne prägen den Aprilhimmel wie ein Wegweiser: Regulus im Löwen, Spica in der Jungfrau und der orangefarbene Arktur im Bärenhüter – gemeinsam bilden sie das Frühlingsdreieck. Mittendrin steht der Löwe hoch im Süden, dessen Sternfigur bei etwas Fantasie tatsächlich an eine liegende Raubkatze erinnert.\n\nFast senkrecht über uns steht jetzt der Große Wagen. Zwischen ihm und dem Löwen liegen nur unscheinbare Sternbilder – Kleiner Löwe, Jagdhunde, Haar der Berenike –, ebenso sternarm wie der Streifen zwischen Löwe und Horizont, wo sich die langgestreckte Wasserschlange entlangzieht. Etwas leichter zu finden sind dagegen Becher und Rabe, deren kompakte Formen trotz mäßiger Helligkeit auffallen.",
5=>"Wenn ein Stern den Maiabend beherrscht, dann Arktur: orange, hell und hoch im Süden, als Hauptstern des Bärenhüters kaum zu übersehen. Tiefer im Süden schimmert Spica in der Jungfrau, im Südwesten hält Regulus im Löwen die Stellung – zusammen spannen die drei Sterne das Frühlingsdreieck auf. Etwas blasser liegt darüber das Sternbild Haar der Berenike.\n\nAm Südosthorizont deutet sich mit dem tief stehenden Skorpion und seinem Hauptstern Antares bereits der Sommer an. Im Westen sinken die letzten Wintersterne, während im Osten schon Wega in der Leier aufsteigt. Zwischen Wega und Arktur liegen das eher blasse Herkules und der elegante Halbkreis der Nördlichen Krone.",
6=>"Der Skorpion bleibt im Juni ein Horizontgast: Sein rötlicher Hauptstern Antares zeigt sich zwar tief im Südosten, steigt von unseren Breiten aus aber nie besonders hoch. Weit darüber thront der Große Wagen, das auffälligste Stück des Großen Bären – seine geschwungene Deichsel weist zuverlässig erst zu Arktur, dann weiter zu Spica. Im Südwesten neigt sich der Löwe bereits dem Untergang zu.\n\nGleich links über Arktur öffnet sich ein zarter Halbkreis: die Nördliche Krone, deren hellster Stern Gemma zu Recht „Edelstein\" heißt. Darunter breiten sich Schlangenträger und die zweigeteilte Schlange aus – lichtschwach, aber unter dunklem Himmel gut zu verfolgen. Den eigentlichen Höhepunkt des Juniabends liefert jedoch der Osten: Dort erhebt sich das Sommerdreieck aus Wega in der Leier, Deneb im Schwan und Altair im Adler – ein Trio, das den Himmel die kommenden Monate begleiten wird.",
7=>"Wirklich hoch steigen Skorpion und Schütze im Juli nur für Beobachter im Süden Europas – von Deutschland aus bleiben beide Tierkreissternbilder flach über dem Südhorizont hängen. Darüber reihen sich Schlangenträger, Schlange und Herkules, allesamt eher unauffällig, aber typisch für den sommerlichen Sternhimmel.\n\nDeutlich mehr Aufmerksamkeit verdienen Arktur, Wega, Deneb und Altair, die vier hellen Fixpunkte dieser Jahreszeit. Wega, Deneb und Altair formen dabei das Sommerdreieck. Zwar zieht sich auch die Milchstraße schon als Band über den Himmel, bleibt in den noch nicht ganz dunklen Julinächten aber oft blass – ihre beste Zeit kommt erst im August. Der Große Bär ist inzwischen weiter in den Nordwesten gewandert.",
8=>"Kaum ein Monat lohnt sich für Sterngucker mehr als der August. Nach 22 Uhr wird es endlich wieder richtig dunkel, und ein Stern nach dem anderen erscheint am Himmel. Um 23 Uhr hat sich das Sommerdreieck bereits im Zenit eingerichtet: Wega fast senkrecht über uns, Deneb im Schwan links davon, Altair im Adler deutlich tiefer – ein unverwechselbares Muster.\n\nMit den länger werdenden Dunkelphasen kehrt auch die Milchstraße zurück: Als schimmerndes Band zieht sie mitten durch das Sommerdreieck, am schönsten fernab jeder Lichtquelle. Im Osten deuten Pegasus und Andromeda schon den nahenden Herbst an. Und um den 12. August erreicht der Meteorstrom der Perseiden sein Maximum – Staubkörner des Kometen Swift-Tuttle verglühen dann zahlreich als Sternschnuppen in der Atmosphäre.",
9=>"Der September bringt die Dunkelheit zurück, und mit ihr wieder richtige Sternennächte. Gegen 21.30 Uhr ist der Himmel schon gut gefüllt, allen voran mit Wega, die hoch über uns als Erste ins Auge fällt. Wer genauer hinschaut, entdeckt um sie herum die kleine Raute der Leier. Zusammen mit Altair im Adler und Deneb im Schwan bildet Wega weiterhin das große Sommerdreieck, das jetzt schon bis in den Herbst hineinreicht.\n\nVersteckt im und am Rand des Sommerdreiecks liegen zwei kleine, aber einprägsame Sternbilder: Pfeil und Delfin – nicht hell, dafür durch ihre kompakte Form überraschend leicht zu finden. Auch die Milchstraße zeigt sich wieder deutlicher als fahles Band. Während im Westen die letzten Sommersternbilder verschwinden, tauchen im Osten die ersten Herbstgestalten auf – dazwischen liegt ein eher sternarmer Himmelsabschnitt.",
10=>"Seit die Sonne Ende September den Himmelsäquator nach Süden überquert hat, sind die Nächte länger als die Tage – ein untrügliches Zeichen für den Herbst. Am frühen Oktoberabend hält sich noch das vertraute Sommerdreieck aus Wega, Deneb und Altair, doch im Lauf der Nacht übernehmen zunehmend die Herbststernbilder das Kommando.\n\nGegen 23 Uhr Sommerzeit steht das große Herbstviereck hoch am Himmel: drei seiner Ecken gehören zu Pegasus, die vierte zur Sternenkette der Andromeda. Darunter liegen die eher lichtschwachen Tierkreissternbilder Steinbock, Wassermann und Fische, die nur unter dunklem Himmel richtig zur Geltung kommen. Diphda im Walfisch gehört zu den wenigen helleren Sternen dieser Himmelsregion, und tief im Süden lässt sich zudem Fomalhaut im Südlichen Fisch erspähen.",
11=>"Im November gehört die Himmelsbühne dem Herbstviereck – auch Pegasus-Quadrat genannt, mit drei Ecken aus dem Sternbild Pegasus und einer aus der Andromeda-Kette. Genau in der Andromeda lohnt sich ein genauerer Blick: Dort liegt die Andromedagalaxie, mit bloßem Auge das mit Abstand fernste sichtbare Objekt – unter dunklem Himmel als zarter, nebliger Fleck erkennbar.\n\nRundherum, im Südwesten und Süden, ziehen sich die eher blassen Sternbilder Wassermann, Walfisch und Fische entlang. Im Walfisch versteckt sich zudem Mira, einer der bekanntesten veränderlichen Sterne überhaupt. Im Osten dagegen kündigt sich bereits der Winter an: Die Kassiopeia zeigt ihr markantes W, Perseus steigt mit dem veränderlichen Algol empor, und im Stier fallen die Plejaden und der rötliche Aldebaran auf. Ganz am östlichen Horizont lässt sich schließlich schon Orion blicken.",
12=>"Der Dezember zeigt den Winterhimmel in seiner vollen Pracht, und das schon früh am Abend. Die Sommersternbilder Schwan, Leier und Adler sind längst verschwunden; Orion, Stier, Zwillinge und Fuhrmann haben ihren festen Platz eingenommen. Auch Sirius, der hellste Stern des gesamten Nachthimmels, taucht schon früh über dem Südosthorizont auf. Ein besonderer Moment: In der Silvesternacht erreicht er gegen Mitternacht seinen höchsten Stand und steht dann von Deutschland aus fast exakt im Süden.\n\nIm Südwesten hält sich noch ein letzter Rest des Herbsthimmels – Wassermann, Fische und Walfisch, allesamt ausgedehnt, aber lichtschwach, unterhalb des Herbstvierecks. Zwischen Walfisch und Orion schlängelt sich außerdem der Eridanus: unauffällige Sterne, aber ein Verlauf, dem in einer klaren Nacht nachzuspüren sich lohnt.",
];
// Echte Abwechslung entsteht ueber die Rotation der vier Varianten-Sets
// (year % 4); pro Jahr gibt es genau einen Text je Monat.
$monthIntroVariants=$skyIntroByMonth[$monthNumber]??[($monthName.' '.$year.' bietet einen abwechslungsreichen Himmel zwischen den jahreszeitlichen Sternbildern.')];
// Bewusst laienverstaendlich statt des Fachbegriffs "Elongation":
// der Wert beschreibt den maximalen Winkelabstand von der Sonne.
return'Am '.$sd.' steht '.$planetOrFallback.' so weit wie in diesem Monat möglich von der Sonne entfernt'.$sepStr.' und ist deshalb '.$visibility.' am besten zu beobachten.';
}
if(str_contains($label,'unterer Konjunktion')){
return'Am '.$sd.' steht '.$planetOrFallback.' in unterer Konjunktion – '.$pronoun.' befindet sich dabei zwischen Erde und Sonne und ist deshalb einige Zeit lang nicht zu beobachten.';
}
if(str_contains($label,'oberer Konjunktion')){
return'Am '.$sd.' steht '.$planetOrFallback.' in oberer Konjunktion – von der Erde aus gesehen steht '.$pronoun.' dann hinter der Sonne und ist ebenfalls nicht zu sehen.';
}
}
if($type==='venus_peak_magnitude'){
@@ -1135,7 +1332,11 @@ if (!function_exists('monthForecastBuildNarrativeText')) {
if(preg_match('/\(([^)]+)\)/',$label,$magMatch)){
$magStr=' mit '.$magMatch[1];
}
return'Am '.$sd.' erreicht Venus ihre größte Helligkeit'.$magStr.' – sie ist dann selbst in der Dämmerung kaum zu übersehen.';
$visibility=(string)($event['visibility']??'');
$twilight=$visibility==='morning'
?'in der Morgendämmerung'
:($visibility==='evening'?'in der Abenddämmerung':'in der Dämmerung');
return'Am '.$sd.' erreicht Venus ihre größte Helligkeit'.$magStr.' – sie ist dann selbst '.$twilight.' kaum zu übersehen.';
}
if($type==='outer_planet_event'){
@@ -1155,18 +1356,26 @@ if (!function_exists('monthForecastBuildNarrativeText')) {
}
if($type==='mercury_good_visibility'){
return'Um den '.$sd.' zeigt sich Merkur günstig am Himmel und lässt sich in der Dämmerung tief über dem Horizont aufspüren.';
$period=(string)($event['period']??'');
$twilight=$period==='morning'
?'in der Morgendämmerung'
:($period==='evening'?'in der Abenddämmerung':'in der Dämmerung');
return'Um den '.$sd.' zeigt sich Merkur günstig am Himmel und lässt sich '.$twilight.' tief über dem Horizont aufspüren.';
}
if($type==='planet_parade'){
return'Am '.$sd.' sind mehrere Planeten gleichzeitig am Himmel zu sehen – eine seltene Planetenparade, die einen Blick Richtung Süden lohnt.';
return'Am '.$sd.' sind mehrere Planeten gleichzeitig am Himmel zu sehen – eine Planetenparade, bei der sich ein Blick in den Himmel lohnt.';
}
// Fallback
return'Am '.$sd.' ist zu beobachten: '.$label.'.';
@@ -1182,13 +1391,44 @@ if (!function_exists('monthForecastBuildNarrativeText')) {
if(preg_match('/^(\S+)\s+/',$label,$m)){
$planet=$m[1];
}
$planetOrFallback=$planet?:'der Planet';
$pronoun=$planetPronoun($planet);
$possessive=$planetPossessive($planet);
if($isRetrograde){
return'Ab dem '.$sd.' läuft '.($planet?:'der Planet').' rückläufig – er bewegt sich scheinbar rückwärts vor dem Sternhintergrund, was seine Beobachtung besonders interessant macht.';
$variants=[
'bewegung'=>'Ab dem '.$sd.' läuft '.$planetOrFallback.' rückläufig – '.$pronoun.' bewegt sich scheinbar rückwärts vor dem Sternhintergrund, was '.$possessive.' Beobachtung besonders interessant macht.',
'ueberholt'=>'Ab dem '.$sd.' bewegt sich '.$planetOrFallback.' scheinbar rückwärts vor dem Sternhintergrund – die Erde überholt '.$planetOrFallback.' dabei auf ihrer schnelleren Umlaufbahn.',
'schleife'=>'Ab dem '.$sd.' zieht '.$planetOrFallback.' für einige Wochen eine kleine Schleife vor dem Sternhintergrund, gut zu verfolgen von Nacht zu Nacht.',
f"Position weicht um {separation_arcsec:.3f}\" vom Sollwert ab "
f"(Toleranz {TOLERANCE_ARCSEC}\"). Wurde epoch= bei radec() wieder "
"eingefuehrt?",
)
if__name__=="__main__":
unittest.main()
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.