Я хотел бы рассчитать положение пяти точек Лагранжа в небе (L1 - L5) как RA/DEC или AZ/EL, когда они снабжены меткой времени UTC и местоположением наблюдателя Lat/Lon/Alt на земле. Я смотрел на pyephem, pyorbital и skyfield, но, насколько я мог видеть, они не поддерживают это. Если кто-то может указать мне на ссылку/код, чтобы вычислить это в python, что было бы очень оценено.
PS Если еще не часть pyephem/skyfield/pyorbital, я думаю, что это была бы интересная возможность добавить?
Если вы можете преобразовать произвольные (геоцентрические или гелиоцентрические) позиционные векторы в RA/DEC, решение будет простым, так как вы можете легко вычислить векторы положения точек Лагранжа.
Если у вас есть геоцентрический вектор положения Солнца, Rsun
, вы можете сделать следующее:
Поскольку L1, L2 и L3 находятся на линии Солнце-Земля, они представляют собой просто Rsun
версии Rsun
; это приближения, которые работают, потому что масса Солнца намного больше массы Земли, точные формулы сложнее:
L1 = Rsun * (m/(3*M))**(1/3)
L2 = -Rsun * (m/(3*M))**(1/3)
L3 = Rsun * (2 + (5*m/(12*M))
где массовые единицы не имеют значения, поэтому мы можем использовать массу Земли в качестве единицы, так что m == 1
- масса Земли, а M == 333000
- масса Солнца.
Точками L4 и L5 являются углы равносторонних треугольников с Солнцем и Землей. Поэтому вы можете получить их, вращая Rsun
на 60 ° и -60 ° вокруг нормали орбитальной плоскости (обычно ось z в эклиптической системе координат). Это легко, псевдокод:
# Get the three components of the original vector
x,y,z = Rsun
# Compute the rotated vector
L4 = [
x * cos(60°) - y * sin(60°),
x * sin(60°) + y * cos(60°),
z
]