Рассчитать RA DEC/AZ EL точек Лагранжа, видимых с места на земле
Я хотел бы рассчитать положение пяти точек Лагранжа на небе (L1 - L5) как RA/DEC или AZ/EL, если они снабжены меткой времени UTC и местоположением наблюдателя Lat/Lon/Alt на земле. Я смотрел на pyephem, pyorbital и skyfield, но, насколько я мог видеть, они не поддерживают это. Если бы кто-то мог указать мне на ссылку / код для расчета этого в Python, это было бы очень ценно.
PS Если еще не является частью pyephem/skyfield/pyorbital, я думаю, что это будет интересная возможность добавить?
1 ответ
Если вы можете преобразовать произвольные (геоцентрические или гелиоцентрические) векторы положения в RA/DEC, решение будет простым, поскольку вы можете относительно легко вычислить векторы положения точек Лагранжа.
Если у вас есть геоцентрический вектор положения Солнца, Rsun
Вы можете сделать следующее:
Поскольку L1, L2 и L3 находятся на линии Солнце-Земля, они представляют собой просто по-разному масштабированные версии 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
]