Джин Меус - вычисление времени восхода, транзита и захода Луны - помощь в выявлении ошибок в логике

Несколько недель я работал над книгой Джина Миуса «Астрономические алгоритмы», чтобы реализовать некоторые из ключевых алгоритмов для личного проекта. Эта задача была немного сложнее, поскольку у меня нет знаний в области астрофизики или математики. Тем не менее, я добился большого прогресса, но столкнулся с проблемой, которую не могу решить - я думаю, что есть некоторые предполагаемые математические/астрономические соглашения, о которых я не знаю, учитывая мои ограничения.

Чтобы рассчитать время восхода, транзита и захода луны в главе 15, я реализовал шаги в рубиновом коде, но я пока не делюсь кодом, так как надеюсь, что сообщество экспертов сможет выделить этот шаг. в котором я ошибаюсь, глядя на хорошую и плохую итерацию в соответствии с приведенной ниже таблицей?

Для большинства дат/времени/местоположений у меня есть кажущиеся правильными результаты, которые коррелируют с другими сайтами с разницей в 1-2 минуты, что на данном этапе я принимаю на данном этапе как различия в реализации.

Например:

    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]

Но тогда, если я перехожу на следующий день, возникают проблемы:

    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

Как видите, диапазон дат событий охватывает 3 дня, и это явно неверно. Шаги/результаты согласно главе 15 Meeus следующие:

                            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

В результате получается, что первый столбец (дата 19 марта 2019 г.) верен. Но 20-го числа, на следующий день, что-то приводит к искаженным результатам - причина в том, что поправка, применяемая к звездному времени, слишком велика и перемещается в предыдущий/следующий день при смещении от транзита...

Подсказка, которую я вижу, заключается в том, что, согласно книге Миуса, он утверждает, что рассчитанные результаты прямого восхождения должны быть в диапазоне -180..+180. Именно это, во втором столбце результатов, искажает отрицательный диапазон для шага (D+1 (завтра) прямое восхождение) и затем может искажать последующие результаты, в результате чего результирующая корректировка времени прохождения составляет 25,170655036714184 часа. ...

Поэтому я был бы очень признателен, если бы кто-нибудь помог мне выделить конкретный шаг, связанный с расчетами Миуса, чтобы я смог преодолеть эту проблему.

Опять же, пожалуйста, имейте в виду, что у меня нет математического / астрономического образования, и я пришел к этому со способностью кодирования и книгой Миуса... :-)

Будучи разработчиком фреймворков Obj-C, Swift и Javascript из книги Жана Меуса на GitHub (с помощью AA+ PJ Naughter), я призываю вас публиковать свой код ruby, даже в очень альфа-состоянии. Было бы легче помочь и внести свой вклад. Я был бы счастлив сделать это. См. github.com/onekiloparsec/SwiftAA .
Как отмечает @onekiloparsec, было бы полезно поделиться своим кодом, даже если это только для того, чтобы мы могли помочь в его отладке.
Да логично - сделаю. Я не был уверен, что этот форум связан с кодом, как stackoverflow, но я более чем счастлив поместить код в статью.
Если вы хотите придерживаться Meeus, это нормально, но вы можете взглянуть на библиотеку CSPICE, о которой я упоминаю: astronomy.stackexchange.com/questions/13488 .
В AA Миус говорит, что значение delta_m «[является] небольшим количеством [y], в большинстве случаев находящимся в диапазоне от -0,01 до +0,01». Я заметил, что ваше значение delta_m на 20 марта равно 0,07815. Вы из любопытства повторили расчет, как он предлагает?

Ответы (2)

Вы можете попробовать посмотреть (надеюсь, хорошо задокументированный) код JavaScript «Astron», https://friendsofthevigilance.org.uk/Astron/Astron.html .

Хотя в первую очередь для пользователей секстанта, на домашней странице также указано время подъема, прохождения и захода для выбранного тела, рассчитанное по формулам Миуса. (Это также позволяет ввести высоту, высоту глаз, преломление и конечность.) Вы увидите, что для 2019.03.20 в списке указано «нет» прохождения Луны. Время указано по времени корабля / по местному времени, поэтому обязательно введите правильное время UTC, часовой пояс и летнее время.)

Во время кодирования я обнаружил, что мне нужно проанализировать время за ДВА дня до и после дня темы, чтобы избежать эффекта, с которым вы столкнулись. Загружаемые примечания пользователя объясняют, как получить доступ к исходному коду.

С уважением, Билл Ричи. PS... В настройках установите «Метод расчета Луны» на «Основной», чтобы использовать данные Миуса. «Нормальный» использует более точную версию 3691 термина лунной теории ELP/MPP02.

Добро пожаловать, Билл! Вы можете добавить некоторую информацию о своем сайте на astronomy.stackexchange.com/q/13488/16685 .

Это не ответ, просто комментарий

Луна не обязательно восходит и заходит каждый день. Ваши результаты немного подозрительны, но не обязательно ошибочны. Я читаю:

   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

как говорится, что Луна зашла около 22:15 19-го числа. Он оставался низким более 18 часов (эта часть подозрительна) и снова поднялся 20-го числа в 16:37. Поскольку он был недоступен в течение этих 18 часов, он не проходил в течение этого времени. Если бы вы добавили «самую низкую точку» (антитранзит), это произошло бы между заходом и подъемом.

Наконец, после восхода в 16:37 20 числа Луна проходит транзитом в 1:10 ночи 21 числа.

Таким образом, 20-го числа Луна вообще не заходила и не проходила: она зашла в 22:15 накануне, в полночь все еще находилась внизу и оставалась внизу до 16:37. Затем он поднялся, но его следующий переход и время захода были 21-го, а не 20-го.

Другими словами, время вашего захода предшествует времени вашего восхода, поэтому порядок такой: заход-восход-проход, а не восход-проход-заход, как в случае с Солнцем.

Спасибо за комментарий @barrycarter, и да, я знаю о таком событии - чаще всего наблюдается с отсутствующим событием подъема или сета, которое переносится на предыдущий / следующий день. Однако в данном случае разрывы слишком велики, исходя из типичного спреда, и когда я сверился с другими веб-сайтами, он подтвердил, что у меня есть совершенно неверные результаты только на эту дату. Я изолировал проблему до склонения транзита (я думаю), но, как уже упоминалось, просто не хватает знаний, чтобы построить корректирующую настройку ...
Точнее, 20-го числа заход Луны должен быть в 06:18, затем, как вы говорите, она проходит через надир или анти-транзит, а затем восходит в 17:24, а затем достигает транзита/кульминации только в ранние часы следующего дня. календарный день