Cálculo de la ascensión recta de dos planetas y su separación usando python

Estoy experimentando con la biblioteca Python PyEphem para astronomía y estoy tratando de recrear/comprender algunos de los cálculos básicos allí.

Existe una función llamada separación que, dados dos planetas y una fecha/hora, calcula la separación (ángulo) entre esos 2 planetas con respecto a su proyección "x" en un plano.

Entonces, para 2018/1/1 para los planetas Mercurio y Marte, tenemos:

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))

que vuelve

33.792384499568264

Pero si quisiera calcular esto sin la función de separación, entonces creo que el cálculo sería tan simple como la "ascensión recta" de 1 menos la "ascensión recta" del otro:

math.degrees(mercury.ra) - math.degrees(mars.ra)

que vuelve

35.114532008671574

¿Por qué los ángulos son diferentes? Dado que no incluyo la latitud y la longitud del observador, se supone que todos los cálculos son geocéntricos, según PyEphem.

¿Alguien está familiarizado con los cálculos que se realizan detrás de PyEphem u otra biblioteca con efemérides integradas que pueden producir resultados consistentes para la separación?

Respuestas (1)

El problema parece estar en su comprensión de la separationfunción. Tu afirmas que

calcula la separación (ángulo) entre esos 2 planetas con respecto a su proyección "x" en un plano.

sin embargo, la documentación establece

La separation()función calcula el ángulo en grados entre dos cuerpos, medido por su ascensión recta y declinación.

En general separation() se puede medir el ángulo entre cualquier par de coordenadas esféricas , siempre que los elementos de cada coordenada sean la longitud esférica (ángulo alrededor de la esfera) seguida de la latitud esférica (ángulo por encima o por debajo de su ecuador). Cada par debe proporcionarse como una secuencia de dos elementos, como una tupla o una lista. Los pares de coordenadas apropiados incluyen ascensión recta y declinación; longitud y latitud heliocéntrica; acimut y altitud; e incluso la longitud geográfica y la latitud de dos lugares en la tierra.

Esto significa que esta función está calculando la separación angular entre los dos objetos, no solo la separación en un plano particular. Si desea realizar el mismo cálculo (como dice la documentación que están realizando), parece que realmente desea la fórmula de distancia angular general .

θ = porque 1 [ pecado ( d 1 ) s i norte ( d 2 ) + porque ( d 1 ) porque ( d 2 ) porque ( α 1 α 2 ) ]

donde d [ π / 2 , π / 2 ] es la declinación, y α [ 0 , 2 π ] es la Ascensión Recta.

gracias, es una gran aclaración. De hecho, mi conocimiento no era correcto.