Есть ли способ узнать дату и время по координатам планеты (солнца, луны и т.

Skyfield имеет функцию расчета фаз луны. но что, если бы я хотел знать, когда луна будет на 20 градусов от солнца или на 25 градусов от солнца.

Как я могу получить точную дату и время, когда солнце и луна будут на долготе определенного градуса?

Изменить (для уточнения): можно ли узнать следующую (или предыдущую) дату и время, когда солнце или луна будут в определенном положении? Like Skyfield предоставляет функцию, позволяющую определить, когда солнце и луна находятся в положении 0 градусов или 180 градусов (новолуние, полнолуние).


person AviD1511    schedule 05.11.2019    source источник
comment
Не существует единой даты и времени, когда солнце или луна находились бы в определенном положении на небе. Есть либо несколько ответов, либо ни одного, в зависимости от позиции.   -  person usernumber    schedule 06.11.2019
comment
Вы использовали тег skyfield, так что это немного не по теме, но в stellarium есть довольно много аддонов для расчета перевернутых эфемерид   -  person usernumber    schedule 06.11.2019
comment
извините, что не уточнил это в вопросе. Я хотел знать, могу ли я с учетом даты найти, когда (следующая дата и время) луна или любая другая планета будут на определенной долготе в следующий раз. И я бы использовал skyfield для своей программы, поэтому мне нужно решение в skyfield (или pyephem, если требуется).   -  person AviD1511    schedule 06.11.2019


Ответы (1)


Да, Skyfield поддерживает возможный подход. Посмотрите на его модуль almanac.py, и вы обнаружите, что он состоит из двух шагов:

  1. Создайте функцию, которая по заданной дате возвращает 0, если Луна находится на расстоянии ‹20° от Солнца, или 1, если Луна находится на расстоянии ≥20°. Вы можете либо создать эту функцию напрямую и просто, либо сделать ее более сложной, как Skyfield, и вернуть функцию из другой функции, которая содержит ссылки на такие вещи, как эфемериды, которые потребуются функции для генерации ответа.

  2. Передайте эту функцию подпрограмме find_discrete(), чтобы сообщить вам моменты, когда функция переключается с 0 на 1 или обратно в течение определенного периода времени.

Надеюсь, приведенные здесь примеры помогут вам начать работу!

person Brandon Rhodes    schedule 11.11.2019
comment
Спасибо, что нашли время ответить, а также за то, что так красиво написали код. То, что я хотел, было очень похоже на moon_phases(). Я создал функцию для возврата каждой степени изменения и получения дат с помощью find_discrete(). Спасибо еще раз!! - person AviD1511; 14.11.2019