Jean Meeus - Berechnung von Mondaufgangs-, Transit- und Untergangszeiten - hilft, Fehler in der Logik zu isolieren

Ich habe mich einige Wochen lang durch das Buch Jean Meeus Astronomical Algorithms gearbeitet, um einige der Schlüsselalgorithmen für ein persönliches Projekt zu implementieren. Diese Aufgabe war etwas komplexer, da ich keinen Astro- oder Mathematikhintergrund habe. Das heißt, ich habe große Fortschritte gemacht, aber ich bin auf ein Problem gestoßen, das ich nicht lösen kann - ich denke, es gibt einige angenommene Mathematik- / Astro-Konventionen, die mir angesichts meiner darin enthaltenen Einschränkungen nicht bewusst sind.

Um die Mondaufgangs-, Transit- und Untergangszeiten in Kapitel 15 zu berechnen, habe ich die Schritte in Ruby-Code implementiert - aber ich teile den Code noch nicht, da ich hoffe, dass die Expertengemeinschaft den Schritt isolieren kann in dem ich falsch liege, indem ich eine gute und eine schlechte Iteration gemäß der folgenden Tabelle betrachte?

Für die Mehrheit der Daten/Zeiten/Orte habe ich scheinbar korrekte Ergebnisse, die innerhalb von 1-2 Minuten Abweichung mit anderen Websites korrelieren, die ich in diesem Stadium als Implementierungsunterschiede akzeptiere.

Zum Beispiel:

    Date: 2019-03-18
Location:  -0.093439 Longitude (pos=west, neg=east of greenwich)
           53.670404 Latitude (pos north)
   Rise @ [2019-03-18 14:29:14 +0000]
Transit @ [2019-03-18 22:17:04 +0000]   CORRECT
    Set @ [2019-03-18 05:19:36 +0000]

    Date: 2019-03-19
Location:  -0.093439 Longitude (positive west, negative east of greenwich)
           53.670404 Latitude (pos north)
   Rise @ [2019-03-19 15:56:36 +0000]
Transit @ [2019-03-19 23:14:52 +0000]   CORRECT
    Set @ [2019-03-19 05:52:12 +0000]

Aber wenn ich dann zum nächsten Tag gehe, gibt es Probleme:

    Date: 2019-03-20
Location:  -0.093439 Longitude (positive west, negative east of greenwich)
           53.670404 Latitude (pos north)
   Rise @ [2019-03-20 16:37:59 +0000]   WRONG TIME
Transit @ [2019-03-21 01:09:54 +0000]   WRONG DAY
    Set @ [2019-03-19 22:15:00 +0000]   WRONG DAY

Wie Sie sehen können, erstreckt sich der Bereich der Ereignisdaten über 3 Tage, und dies ist eindeutig falsch. Die Schritte/Ergebnisse laut Meeus Kapitel 15 sind wie folgt:

                            Status: CORRECT                      INCORRECT
                             Date : 2019-03-19                   2019-03-20
      moon standard altitude (h0) : 0.125                        0.125
                               JD : 2458561.5                    2458562.5
  D-1 (Yesterday) Right Ascension : 137.01106495635904           152.0944122662908 
      D-1 (Yesterday) Declination : 18.2193887474612             14.518563964332268
          (Today) Right Ascension : 152.0944122662908            166.75563154781935 
              (Today) Declination : 14.518563964332268           9.843091724045754
   D+1 (Tomorrow) Right Ascension : 166.75563154781935           -179.0311021513076 
       D+1 (Tomorrow) Declination : 9.843091724045754            4.558782463778083 
         (F 15.1) Approx Times H0 : 110.38644846740502           103.4269126435807
           --------------References below to m0 is Transit, m1 is Rise, m2 is Set-------------
             Sidereal @ Greenwich : 176.25537825981155           177.24102563038468
        Delta_T (taken from USNO) : 69.34                        69.34
                                         ----------------Rise----------------
         (F 15.2) Approx Times m1 : 0.6260085903712865           0.6833284046859307
          Interplate Factor m1, n : 0.6268111366675828           0.684130950982227
   (F 3.3) Intrplate m1 Ascension : 161.3335996586275            -30.862132317267736
      (F 3.3) Intrplate m1 Declin : 11.701920142830645           6.293715763821567
                    Sidereal time : 42.23549428254836            63.91277190941321
                                        ----------------Transit----------------
         (F 15.2) Approx Times m0 : 0.9326376138918561           0.9706253842514326
          Interplate Factor m0, n : 0.9334401601881523           0.9714279305477289
   (F 3.3) Intrplate m0 Ascension : 165.79289646958304           -164.14901582079125
      (F 3.3) Intrplate m0 Declin : 10.184567649150054           4.718215465725156
                    Sidereal time : 152.9241707270994            167.62285795901175
                                          ----------------Set----------------
         (F 15.2) Approx Times m2 : 0.2392666374124255           0.2579223638169346
          Interplate Factor m2, n : 0.2400691837087218           0.2587249101132309
   (F 3.3) Intrplate m2 Ascension : 155.65262487970153           111.85648516249893 
      (F 3.3) Intrplate m2 Declin : 13.485032537642851           8.534292594792108
                    Sidereal time : 262.6272001716504            270.3472970086102
          ----------------From this point I will only illustrate Transit---------------- 
             Local Hour Angle (H) : -12.775286742483644          -28.13468722019701
      Transit delta_m (-(H/360.0)): 0.03548690761801012          0.07815190894499169
    Adjusted Transit (m0+delta_m) : 0.9681245215098662           1.0487772931964243
             Convert to hrs (x24) : 23.23498851623679            25.170655036714184
                    Base time (D) : 2019-03-19 00:00:00 UTC      2019-03-20 00:00:00 UTC
                                    CORRECT                      PROBLEM          
              Transit time (D+m0) : 2019-03-19 23:14:05 UTC      2019-03-21 01:10:14 UTC

Das Ergebnis hier ist, dass die erste Spalte (für das Datum 19. März 2019) korrekt ist. Aber am 20., dem Tag danach, gibt es etwas, das zu verzerrten Ergebnissen führt - der Grund dafür ist, dass die auf die Sternzeit angewendete Anpassung zu groß ist und sich in den vorherigen/nächsten Tag verschiebt, wenn sie vom Transit versetzt wird ...

Der Hinweis, den ich sehe, ist, dass er gemäß dem Meeus-Buch angibt, dass die berechneten Ergebnisse der Rektaszension im Bereich von -180 bis +180 liegen sollten. Dies ist es in der zweiten Spalte der Ergebnisse, die in den negativen Bereich für den Schritt (D + 1 (Morgen) Rektaszension) verzerrt wird und dann die nachfolgenden Ergebnisse verzerren kann, wodurch die resultierende Zeitanpassung an den Transit 25,170655036714184 Stunden beträgt. ...

Daher wäre ich sehr dankbar, wenn mir jemand helfen könnte, den spezifischen Schritt in Bezug auf Meeus-Berechnungen zu isolieren, damit ich diese Herausforderung möglicherweise überwinden kann.

Bitte denken Sie noch einmal daran, dass ich keinen Mathe- / Astro-Hintergrund habe und mit einer Programmierfähigkeit und dem Meeus-Buch dazu gekommen bin ... :-)

Als Entwickler der Obj-C-, Swift- und Javascript-Frameworks von Jean Meus' Buch auf GitHub (mit Hilfe von AA+ von PJ Naughter) möchte ich Sie ermutigen, Ihren Ruby-Code zu veröffentlichen, selbst in einem sehr Alpha-Stadium. Es wäre einfacher zu helfen und einen Beitrag zu leisten. Das mache ich gerne. Siehe github.com/onekiloparsec/SwiftAA
Wie @onekiloparsec feststellt, wäre es hilfreich, Ihren Code zu teilen, auch wenn dies nur der Fall ist, damit wir beim Debuggen helfen können
Ja macht Sinn - das werde ich machen. Ich war mir nicht sicher, ob dieses Forum mit Code wie Stackoverflow zu tun hat, aber ich bin mehr als glücklich, den Code in den Artikel aufzunehmen.
Wenn Sie bei Meeus bleiben wollen, ist das in Ordnung, aber Sie könnten sich die CSPICE-Bibliothek ansehen, die ich in erwähnt habe: astronomy.stackexchange.com/questions/13488
In AA sagt Meeus, dass der delta_m-Wert "[eine] kleine Menge [y] ist, die in den meisten Fällen zwischen -0,01 und +0,01 liegt". Mir ist aufgefallen, dass Ihr Wert für delta_m am 20. März 0,07815 beträgt. Haben Sie aus Neugier die Berechnung wiederholt, wie er vorschlägt?

Antworten (2)

Vielleicht möchten Sie versuchen, sich den (hoffentlich gut dokumentierten) JavaScript-Code von "Astron" anzusehen, https://friendsofthevigilance.org.uk/Astron/Astron.html

Die Homepage ist zwar in erster Linie für Sextantenbenutzer gedacht, listet aber auch Aufgangs-, Durchgangs- und Untergangszeiten für den ausgewählten Körper auf, die mit den Formeln von Meeus berechnet wurden. (Es ermöglicht auch die Eingabe von Höhe, Augenhöhe, Refraktion und Extremität.) Sie werden sehen, dass für den 20.03.2019 ein Mondtransit von „kein“ aufgeführt ist. Die Zeiten sind in Schiffszeit / Ortszeit angegeben, stellen Sie also sicher, dass Sie die richtige UTC, Zeitzone und Sommerzeit eingeben.)

Während ich dies codierte, stellte ich fest, dass ich die Zeiten für ZWEI Tage vor und nach dem Thementag analysieren musste, um den Effekt zu vermeiden, auf den Sie gestoßen sind. Die herunterladbaren Benutzerhinweise erläutern den Zugriff auf den Quellcode.

Viele Grüße, Bill Ritchie. PS... Stellen Sie in den Einstellungen "Mondberechnungsmethode" auf "Basis", um die Daten von Meeus zu verwenden. „Normal“ verwendet eine genauere 3691-Term-Version der ELP/MPP02-Mondtheorie.

Dies ist keine Antwort, nur ein Kommentar

Der Mond geht nicht unbedingt jeden Tag auf und unter. Ihre Ergebnisse sind ein wenig verdächtig, aber nicht unbedingt falsch. Ich lese:

   Rise @ [2019-03-20 16:37:59 +0000]   WRONG TIME
Transit @ [2019-03-21 01:09:54 +0000]   WRONG DAY
    Set @ [2019-03-19 22:15:00 +0000]   WRONG DAY

wie gesagt, der Mond ging am 19. um etwa 22:15 Uhr unter. Es blieb über 18 Stunden unten (dieser Teil ist verdächtig) und stieg am 20. um 16:37 Uhr wieder an. Da es für diese 18 Stunden ausgefallen war, ging es während dieser Zeit nicht weiter. Wenn Sie "tiefster Punkt" (Anti-Transit) hinzufügen, würde dies zwischen Set und Rise auftreten.

Schließlich geht der Mond nach seinem Aufgang am 20. um 16:37 Uhr am 21. um 1:10 Uhr durch.

Der Mond ging also am 20. überhaupt nicht unter oder durch: Er ging in der Nacht zuvor um 22:15 Uhr unter, war um Mitternacht immer noch untergegangen und blieb bis 16:37 Uhr untergegangen. Dann ging es auf, aber seine nächste Durchgangs- und Untergangszeit war am 21., nicht am 20.

Mit anderen Worten, Ihre Untergangszeiten sind vor Ihren Aufgangszeiten, also ist die Reihenfolge Untergang-Aufgang-Durchgang, nicht Aufgang-Durchgang-Untergang, wie es bei der Sonne der Fall wäre.

Danke für den Kommentar @barrycarter und ja, ich bin mir dieser Art von Ereignis bewusst - häufiger bei einem fehlenden Rise- oder Set-Ereignis, das in den vorherigen/nächsten Tag übergeht. Bei dieser Gelegenheit sind die Lücken jedoch zu groß, basierend auf der typischen Verbreitung - und als ich mich auf anderen Websites umgesehen habe - hat sich bestätigt, dass ich nur an diesem Datum völlig falsche Ergebnisse habe. Ich habe das Problem bis auf die Transitdeklination eingegrenzt (glaube ich), aber wie bereits erwähnt, habe ich einfach nicht genug Wissen, um die Korrekturanpassung zu planen ...
Um genauer zu sein, sollte der Monduntergang am 20. 06:18 sein, dann passiert er, wie Sie sagen, den Nadir, auch bekannt als Anti-Transit, und geht dann um 17:24 auf und erreicht dann den Transit / Höhepunkt erst in den frühen Morgenstunden des nächsten Kalendertag