1

当提供 UTC 时间戳和地球上的 Lat/Lon/Alt 观察者位置时,我想将天空中的五个拉格朗日点 (L1 - L5) 的位置计算为 RA/DEC 或 AZ/EL。我正在查看 pyephem、pyorbital 和 skyfield,但据我所知,他们不支持这一点。如果有人能指出我在 python 中计算这个的参考/代码,那将不胜感激。

PS 如果还不是 pyephem/skyfield/pyorbital 的一部分,我认为这将是一个有趣的添加功能?

4

1 回答 1

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围绕轨道平面的法线(通常是黄道坐标系中的 z 轴)旋转 60° 和 –60° 来获得它们。这很简单,伪代码是:

# 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 
]
于 2018-08-13T13:15:28.590 回答