Луна / Лунный Алгоритм Фазы

Кто-либо знает, что алгоритм или вычисляет лунную фазу или возраст в данную дату или находит даты в течение новых / полнолуний в данном году?

Поиск с помощью Google говорит мне, что ответ находится в некоторой книге Астрономии, но я действительно не хочу покупать целую книгу, когда мне только нужна единственная страница.

Обновление:

Я должен был квалифицировать свой оператор о поиске с помощью Google немного лучше. Я действительно находил решения, которые только работали по некоторому подмножеству времени (как 1900-е); и аккуратные основанные решения, которые были бы более в вычислительном отношении дорогими, чем, я хотел бы.

S Lott в его книге Python имеет несколько алгоритмов для вычисления Пасхи в данный год, большинство - меньше чем десять строк кода и некоторая работа в течение всех дней в Григорианском календаре. Нахождение полной луны в марте является основной частью нахождения Пасхи, таким образом, я полагал, что должен быть алгоритм, который не требует аккуратный и работает на все даты в Григорианском календаре.

34
задан Scott Bailey 27 March 2010 в 00:51
поделиться

6 ответов

Некоторое время назад я перенес на Python некоторый код. Я собирался просто дать ссылку на него, но оказалось, что он тем временем упал с Интернета, поэтому мне пришлось очистить его и загрузить снова. См. moon.py , полученный из moontool Джона Уокера .

Я не могу найти указание на то, в какой период времени это точно, но похоже, что авторы были довольно строгими. Это означает, что да, он действительно использует триггер, но я не могу себе представить, какого черта вы могли бы использовать это для того, чтобы сделать его невыполнимым с вычислительной точки зрения. Накладные расходы на вызов функций Python, вероятно, больше, чем затраты на триггерные операции. Компьютеры довольно быстрые в вычислениях.

Алгоритмы, используемые в коде, взяты из следующих источников:

Meeus, Jean. Астрономические алгоритмы. Ричмонд: Willmann-Bell, 1991. ISBN 0-943396-35-2.

Обязательно иметь; если вы покупаете только одну книгу, убедитесь, что это именно эта.Алгоритмы представлены математически, а не в виде компьютерных программ, но исходный код, реализующий многие алгоритмы из книги, можно заказать отдельно у издателя в QuickBasic, Turbo Pascal или C. Meeus предоставляет множество рабочих примеров вычислений, которые необходимы для отладки. ваш код, и часто представляет несколько алгоритмов с различными компромиссами между точностью, скоростью, сложностью и долгосрочным (столетия и тысячелетия) сроком действия.

Даффет-Смит, Питер. Практическая астрономия с вашим калькулятором. 3-е изд. Кембридж: Издательство Кембриджского университета, 1981. ISBN 0-521-28411-2.

Несмотря на слово «Калькулятор» в названии; это ценный справочник, если вы заинтересованы в разработке программного обеспечения, которое вычисляет положение планет, орбиты, затмения и тому подобное. Дается больше справочной информации, чем в Meeus, что помогает тем, кто еще не разбирается в астрономии, выучить часто сбивающую с толку терминологию. Приведенные алгоритмы проще и менее точны, чем у Meeus, но подходят для большинства практических работ.

17
ответ дан 27 November 2019 в 17:00
поделиться

Кроме того, pyephem - программы астрономии научного уровня [ PyPI ], который является пакетом Python, но имеет вычислительные возможности в C и говорят

Precision <0,05 "от -1369 до +2950.
Использует методы поиска по таблице для ограничения вызовы тригонометрических функций.

7
ответ дан 27 November 2019 в 17:00
поделиться

Я знаю, что вы ищете Python, но если вы понимаете C #, есть проект с открытым исходным кодом под названием Chronos XP , который делает это очень хорошо.

0
ответ дан 27 November 2019 в 17:00
поделиться

Если вам не нужна высокая точность, вы всегда можете (ab) использовать класс лунного (или лунно-солнечного) календаря (например, HijriCalendar или ChineseLunisolarCalendar в Microsoft .NET) для вычисления (приблизительной) фазы луны любой даты в качестве свойства календаря «день месяца», являющегося лунным (или лунно-солнечным) календарным днем, всегда соответствует фазе луны (например, день 1 - новолуние, день 15 - полнолуние и т. Д.)

0
ответ дан 27 November 2019 в 17:00
поделиться

Быстрый гугл обнаружил это .

-1
ответ дан 27 November 2019 в 17:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: