Во-первых: следуя тому, что кажется более ранним обсуждением, вы, кажется, редактировали этот вопрос в хорошей форме. Я могу вставить его в файл и запустить его и получить ту же ошибку.
Во-вторых: проблема может заключаться в том, что вы ищете какое-то обстоятельство, называемое «расходованием»? используя решатель, который предназначен вместо этого, чтобы найти прямое пересечение. Такие процедуры, как next_setting()
ожидается, найдут, что в одно время суток солнце находится над горизонтом, а затем некоторое время ниже под горизонтом, а затем оно сужается в тот момент, когда этот переход происходит. Но вы ставите перед ним задачу найти следующую настройку, учитывая горизонт высотой до максимальной высоты солнца, если я правильно прочитаю ваш код - и, учитывая эту настройку, никогда не будет момент, когда солнце - это? потому что он никогда не будет выше (более или менее), чем его высота над горизонтом в момент транзита. Когда вы устанавливаете горизонт, который находится далеко в небе, другими словами, вы создаете то, что PyEphem выглядит как день без восхода солнца, поэтому он отчетливо сообщает вам, что он не может найти закат.
Вы говорите, что ваша цель состоит в том, чтобы «определить время достижения угла» - но разве это не transit_time
само? Я не уверен, что понимаю, почему transit_time
это не совсем то время, которое вы ищете.