我正在尝试使用ephem TLE数据跟踪月亮的位置,然后将其存储在data.csv文件中。但是,我找不到它!

下面的代码是我要尝试执行的操作的一个示例,这是针对ISS的,它在我找不到的月球的“行1”和“行2”中的TLE数字。

import logging
import logzero
from logzero import logger
from sense_hat import SenseHat
import os
import ephem
dir_path = os.path.dirname(os.path.realpath(__file__))

sh = SenseHat()

logzero.logfile(dir_path+"/iss.csv")

name = "ISS (ZARYA)"
line1 = "1 25544U 98067A   18032.92935684  .00002966  00000-0  52197-4 0  99911 25544U 98067A   18032.92935684  .00002966  00000-0  52197-4 0  9991"
line2 = "2 25544  51.6438 332.9972 0003094  62.2964  46.0975 15.54039537 97480"

iss = ephem.readtle(name, line1, line2)

iss.compute()

formatter = logging.Formatter('%(name)s - %(asctime)-15s - %(levelname)s: %(message)s');
logzero.formatter(formatter)

sublat = iss.sublat
sublong = iss.sublong

logger.info("%s,%s", sublong, sublat, )

最佳答案

欢迎使用Stack Overflow!

我从未见过有人为月球生成TLE数据。 TLE文件是专门设计用来描述人造卫星的轨道的,而不是描述月球距离处的大型天体,因此即使您可以将月球的运动调整为TLE轨道,其结果也可能不太准确。

PyEphem确实有一个ephem.Moon()对象,它给出了月球的位置,尽管它不是使用TLE实现的,而是使用VSOP87实现的。那行得通吗?这是有关月球和行星等物体如何工作的文档:

https://rhodesmill.org/pyephem/quick.html#bodies

10-06 08:38