Грубый расчет "обратной стороной конверта" предполагает, что Луна, совершая оборот по небу за 29 дней, перемещается примерно на 360 ° ÷ 29 ≈ 12½ градусов в день.
Таким образом, у вашего скрипта Skyfield есть проблема: он печатает дату только в том случае, если долгота Луны относительно Солнца составляет от 6 ° до 14 °, диапазон только 14-6 = 8 ° в ширину. В некоторые месяцы его прыжок на 12½ ° попадает в этот узкий диапазон 8 °, а в некоторые месяцы он вместо этого полностью прыгает через него. Вот почему сценарий Skyfield печатает только одни месяцы, а другие - нет.
Скрипт PyEphem, напротив, берет угол в радианах и умножает его на 30, превращая диапазон 0… 6,28 в диапазон 0… 188,4. Грубо говоря, используемая вами единица измерения - это «двойной градус», 188 из которых составляют полный круг. Луна прыгает всего на 6¼ «двойных градусов» в день, поэтому гарантированно приземлится в диапазоне от 6 до 14 по крайней мере один раз в месяц, потому что прыжка на 6¼ недостаточно, чтобы полностью перепрыгнуть через диапазон.
Я предполагаю, что вам следует попробовать выбрать точный угол в градусах, который вас интересует, например, 6 °, а затем написать небольшую процедуру для определения точной даты и времени, когда он пересекает этот порог каждый месяц. Вот пример, который, надеюсь, поможет вам начать:
https://rhodesmill.org/skyfield/searches.html
person
Brandon Rhodes
schedule
12.09.2020
phase = angle * 30
над тем, что выглядит какangle
в радианах. Что получится, если умножить радианы на 30? Одна из проблем может заключаться в том, что вы намереваетесь там перевести в градусы? - person Brandon Rhodes   schedule 12.09.2020