Я экспериментирую с библиотекой Python PyEphem для астрономии и пытаюсь воссоздать/понять некоторые из основных вычислений.
Существует функция, называемая разделением, которая, учитывая две планеты и дату/время, вычисляет расстояние (угол) между этими двумя планетами относительно их проекции «x» на плоскость.
Итак, на 2018/01/1 для планет Меркурий и Марс мы имеем:
import ephem
import math
mercury = ephem.Mercury('2018/1/1')
mars = ephem.Mars('2018/1/1')
s1 = ephem.separation(mercury, mars)
print(math.degrees(s1))
Что возвращает
33.792384499568264
Но если бы я хотел вычислить это без функции разделения, то я думаю, что вычисление было бы таким же простым, как «прямое восхождение» 1 минус «прямое восхождение» другого:
math.degrees(mercury.ra) - math.degrees(mars.ra)
Что возвращает
35.114532008671574
Почему углы разные? Поскольку я не включаю широту и долготу наблюдателя, согласно PyEphem все расчеты должны быть геоцентрическими.
Кто-нибудь знаком с вычислениями, выполняемыми PyEphem, или другой библиотекой со встроенными эфемеридами, которая может давать согласованные результаты для разделения?
Проблема, похоже, в вашем понимании separation
функции. Вы утверждаете, что
он вычисляет расстояние (угол) между этими двумя планетами относительно их проекции "x" на плоскость.
однако в документации указано
Функция
separation()
вычисляет угол в градусах между двумя телами, измеряемый их прямым восхождением и склонением.
В общем случаеseparation()
можно измерить угол между любой парой сферических координат , если элементами каждой координаты являются сферическая долгота (угол вокруг сферы), за которой следует сферическая широта (угол выше или ниже экватора). Каждая пара должна быть представлена как последовательность из двух элементов, такая как кортеж или список. Соответствующие пары координат включают прямое восхождение и склонение; гелиоцентрическая долгота и широта; азимут и высота; и даже географическая долгота и широта двух мест на земле.
Это означает, что эта функция вычисляет угловое расстояние между двумя объектами, а не только расстояние в конкретной плоскости. Если вы хотите выполнить тот же расчет (как указано в документации), похоже, вам действительно нужна формула общего углового расстояния .
куда это склонение, и это прямое восхождение.
Луис Мигель