2024-10-05 13:25:44 发布
网友
我想计算五个拉格朗日点在天空中的位置(L1-L5)为RA/DEC或AZ/EL,当提供UTC时间戳和地球上的Lat/Lon/Alt观测位置时。我在看pyephem,pyorbital和skyfield,但据我所知,他们并不支持这一点。如果有人能给我一个用python计算的参考/代码,我将不胜感激。在
另外,如果不是pyephem/skyfield/pyorbital的一部分,我想这将是一个有趣的功能添加?在
如果可以将任意(地心或日心)位置矢量转换为RA/DEC,则解决方案很简单,因为可以相对容易地计算拉格朗日点的位置向量。在
如果有太阳的地心位置矢量Rsun,可以执行以下操作:
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是太阳的质量。在
m == 1
M == 333000
L4和L5点是与太阳和地球等边三角形的角。因此,你可以通过绕轨道平面法线(通常是黄道坐标系中的z轴)将Rsun旋转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 ]
如果可以将任意(地心或日心)位置矢量转换为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点是与太阳和地球等边三角形的角。因此,你可以通过绕轨道平面法线(通常是黄道坐标系中的z轴)将
Rsun
旋转60°和–60°来得到它们。很简单,这是伪代码:相关问题 更多 >
编程相关推荐