Jean Meeus: cálculo de la salida, el tránsito y la puesta de la luna: ayuda para aislar el error en la lógica

He estado trabajando en el libro Algoritmos astronómicos de Jean Meeus durante algunas semanas, para implementar algunos de los algoritmos clave para un proyecto personal. Esta tarea ha sido un poco más compleja porque no tengo experiencia en astronomía o matemáticas. Dicho esto, he progresado mucho, pero me he encontrado con un problema que no puedo resolver: creo que hay algunas convenciones matemáticas/astronómicas asumidas que desconozco dadas mis limitaciones.

Para calcular los tiempos de salida, tránsito y puesta de la luna en el capítulo 15, implementé los pasos en el código Ruby, pero aún no compartiré el código, ya que espero que la comunidad de expertos pueda aislar el paso. en el que me equivoco al observar una buena y una mala iteración según la tabulación a continuación?

Para la mayoría de las fechas/horas/ubicaciones tengo lo que parecen ser resultados correctos que se correlacionan con otros sitios dentro de 1-2 minutos de variación que en esta etapa estoy aceptando en esta etapa como diferencias de implementación.

Por ejemplo:

    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]

Pero luego si paso al día siguiente hay problemas:

    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

Como puede ver, el rango de fechas de eventos abarca 3 días, y esto es claramente incorrecto. Los pasos/resultados según el Capítulo 15 de Meeus son los siguientes:

                            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

El resultado aquí es que la primera columna (para la fecha 19 de marzo de 2019) es correcta. Pero el día 20, el día siguiente, hay algo que conduce a resultados sesgados: la razón es que el ajuste aplicado al tiempo sidéreo es demasiado grande y pasa al día anterior/siguiente cuando se compensa con el tránsito...

La pista que veo es que, según el libro de Meeus, afirma que los resultados de la Ascensión Recta calculados deberían estar en el rango -180...+180. Es esto, en la segunda columna de los resultados, lo que se desvía hacia el rango negativo para el paso (D+1 (Mañana) Ascensión Recta), y luego puede estar sesgando los resultados subsiguientes por lo que el ajuste de tiempo resultante para el tránsito es 25.170655036714184 horas. ...

Así que estaría enormemente agradecido si alguien pudiera ayudarme a aislar el paso específico en relación con los cálculos de Meeus, de modo que pueda superar este desafío.

Una vez más, tenga en cuenta que no tengo experiencia en matemáticas/astronomía y he llegado a esto con una habilidad de codificación y el libro de Meeus... :-)

Siendo el desarrollador de los frameworks Obj-C, Swift y Javascript del libro de Jean Meus en GitHub (con la ayuda de AA+ de PJ Naughter), te animo a publicar tu código Ruby, incluso en un estado muy alfa. Sería más fácil ayudar y contribuir. Me encantaría hacerlo. Ver github.com/onekiloparsec/SwiftAA
Como señala @onekiloparsec, sería útil compartir su código, incluso si es solo para que podamos ayudar a depurarlo.
Sí, tiene sentido, lo haré. No estaba seguro de si este foro está relacionado con el código como stackoverflow, pero estoy más que feliz de incluir el código en el artículo.
Si quiere quedarse con Meeus, está bien, pero puede consultar la biblioteca CSPICE que menciono en: astronomy.stackexchange.com/questions/13488
En AA, Meeus dice que el valor delta_m "[es una] pequeña cantidad [y], en la mayoría de los casos está entre -0.01 y +0.01". Veo que su valor para delta_m el 20 de marzo es 0,07815. Por curiosidad, ¿repetiste el cálculo como él sugiere?

Respuestas (2)

Puede intentar ver el código JavaScript (con suerte bien documentado) de "Astron", https://friendsofthevigilance.org.uk/Astron/Astron.html

Aunque principalmente para usuarios de sextantes, la página de inicio también enumera los tiempos de subida, tránsito y puesta para el cuerpo seleccionado, calculados utilizando las fórmulas de Meeus. (También permite ingresar la altitud, la altura del ojo, la refracción y la extremidad). Verá que, para 2019.03.20, se enumera un tránsito lunar de "ninguno". Los horarios están en la hora del barco/hora local, así que asegúrese de ingresar el UTC, la zona horaria y el horario de verano correctos).

Mientras codificaba esto, descubrí que necesitaba analizar los tiempos de DOS días antes y después del día del sujeto para evitar el efecto que encontró. Las notas de usuario descargables explican cómo acceder al código fuente.

Saludos, Bill Ritchie. PD... En la configuración, establezca "Método de cálculo de la luna" en "Básico" para usar los datos de Meeus. "Normal" utiliza una versión más precisa de 3691 términos de la teoría lunar ELP/MPP02.

¡Bienvenido, Bill! Es posible que desee agregar información sobre su sitio a astronomy.stackexchange.com/q/13488/16685

Esto no es una respuesta, solo un comentario.

La Luna no necesariamente sale y se pone todos los días. Sus resultados son un poco sospechosos, pero no necesariamente incorrectos. Yo leo:

   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

como diciendo que la Luna se puso alrededor de las 10:15 p. m. del día 19. Permaneció abajo durante más de 18 horas (esa parte es sospechosa) y volvió a subir el día 20 a las 4:37 p. m. Como estuvo inactivo durante esas 18 horas, no transitó durante ese tiempo. Si agregara el "punto más bajo" (anti-tránsito), ocurriría entre la puesta y la subida.

Finalmente, después de salir a las 4:37 p. m. del día 20, la luna transita a la 1:10 a. m. del día 21.

Entonces, la luna no se puso ni transitó en absoluto el día 20: se puso a las 10:15 p. m. la noche anterior, todavía estaba abajo a la medianoche y permaneció así hasta las 4:37 p. m. Luego se elevó, pero su siguiente tránsito y tiempo de fraguado fue el 21, no el 20.

En otras palabras, sus horas de puesta son anteriores a sus horas de salida, por lo que el orden es puesta-salida-tránsito, no salida-tránsito-puesta como sería el caso del Sol.

Gracias por el comentario @barrycarter y sí, estoy al tanto de ese tipo de evento, visto más comúnmente con un evento de subida o puesta faltante que se acumula en el día anterior/siguiente. En esta ocasión, sin embargo, las brechas son demasiado amplias en función de la distribución típica, y cuando verifiqué con otros sitios web, se confirmó que tengo resultados totalmente incorrectos solo en esa fecha. He aislado el problema en cuanto a la declinación del tránsito (creo) pero, como se mencionó, simplemente no tengo suficiente conocimiento para trazar el ajuste correctivo ...
Para ser más precisos, el día 20, la puesta de la luna debería ser a las 06:18, luego, como usted dice, pasa por el nadir, también conocido como anti-tránsito, y luego sale a las 17:24, y solo alcanza el tránsito/culminación en las primeras horas del próximo dia del calendario