Рассчитать 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 
]
Другие вопросы по тегам