2

在玩了一下时,pyorbital我注意到该函数get_lonlatalt()似乎没有向我返回正确的经度值。所以我将返回的 Lon/Lat/Alt 与其他跟踪软件进行了比较:

返回的高度和纬度是正确的,但经度似乎是关闭的(使用下面的代码示例,该函数返回的值比国际空间站现在的实际位置少约 15 度)。

下面的代码每秒打印一次国际空间站的纬度/经度/纬度到控制台,可用于将位置与例如http://www.n2yo.com/?s=25544

有没有人有任何建议如何解决这个问题/为什么会这样?

PS不幸的是stackoverflow不允许我"pyorbital"在1500声望之前创建标签..

from pyorbital.orbital import Orbital
from datetime import datetime
import time

tle_object_name = "ISS (ZARYA)"
sat = Orbital(tle_object_name) #Fetches TLE from the internet by itself

while True:
    now = datetime.utcnow()
    lon, lat, alt = sat.get_lonlatalt(now)
    print "{} UTC at {}E, {}N, {}km".format(now, round(lon, 3), round(lat, 3), round(alt, 3))

    time.sleep(1)

在此处输入图像描述

4

1 回答 1

3

我刚试过,它似乎工作得很好。您确定您查看的是您提供的网站上的卫星位置,而不是您自己的位置吗?我一开始也犯了同样的错误。在此处输入图像描述

编辑:

所以我深入研究了源代码,试图找出为什么只有 lon 表现出这种行为。

在 orbital.py 中,该函数astronomy.gmst()仅用于计算 lon。在 astronomy.py 中,gmst()调用jdays2000()我们看到这行代码的地方:np.datetime64('2000-01-01T12:00'). 检查 numpy.datetime 的文档(https://docs.scipy.org/doc/numpy-1.14.0/reference/arrays.datetime.html),我们看到这个函数的工作方式(时区明智)改变了 numpy 1.11(2016),并且 pyorbital 在一段时间后也考虑到了这一变化(https://github.com/pytroll/pyorbital/commit/08bb5be87c65412af5d7293c00fa2680b068d150)。

所以我的猜测是你的 pyorbital 包不是最新的,或者你的 numpy 不是最新的。

我的版本(numpy==1.14.2,pyorbital==1.3.1)

于 2018-04-14T21:25:56.400 回答