python – pyephem next_pass不匹配天堂 – 上面

我正在使用pyEphem从我的位置获取ISS的下一个过关,但是我得到的结果与我在天堂上看到的结果不匹配使用相同的坐标

我可能犯了一个愚蠢的错误,但我无法弄清楚

我的代码返回结果:
上升时间:2017/5/25 20:34:39方位角:193:28:04.0

距离最近的天堂近3个小时,上升时间为:23:09:40

http://www.heavens-above.com/passdetails.aspx?&satid=25544&mjd=57898.9270155034&type=V

from datetime import datetime
import ephem
import pytz

line1 = 'ISS (ZARYA)'      
line2 = '1 25544U 98067A   17145.52800275  .00016717  00000-0  10270-3 0  9015'
line3 = '2 25544  51.6372 151.2656 0005033 192.5139 167.5889 15.53913304 18224'

tle = [line1, line2, line3]
iss = ephem.readtle(tle[0], tle[1], tle[2])

longitude = -6.2282
latitude = 53.2842
altitude = 20

site = ephem.Observer()
site.lat = str(latitude)
site.lon = str(longitude)
site.elevation = 20

current_time = datetime(2017, 5, 25, 12, 0, 0, tzinfo=pytz.utc)
site.date = current_time

info = site.next_pass(iss)
print("Rise time: %s azimuth: %s" % (info[0], info[1]))

最佳答案 编辑问题后更新的答案:

唉,当我按照您的问题中的链接时,天堂以上会出现服务器错误.所以我重新访问了网站,从你的脚本输入坐标,并做了一些预测.为避免丢失它们,这里有一个快速截图:

《python – pyephem next_pass不匹配天堂 – 上面》

当我将ISS的新TLE粘贴到您的脚本并调整current_time时,我可以得到一个非常接近他们的答案.然后脚本看起来像:

from datetime import datetime
import ephem
import pytz

line1, line2, line3 = """\
ISS (ZARYA)             
1 25544U 98067A   17198.89938657  .00000988  00000-0  22167-4 0  9998
2 25544  51.6416 245.2318 0005849  47.2823 302.7554 15.54170925 66526
""".splitlines()

tle = [line1, line2, line3]
iss = ephem.readtle(tle[0], tle[1], tle[2])

longitude = -6.2282
latitude = 53.2842
altitude = 20

site = ephem.Observer()
site.lat = str(latitude)
site.lon = str(longitude)
site.elevation = 20

current_time = datetime(2017, 7, 21, 1, 0, 0, tzinfo=pytz.utc)
site.date = current_time

info = site.next_pass(iss)
for item in info:
    print(item)

输出是:

2017/7/21 01:32:01
263:02:11.2
2017/7/21 01:37:29
66:12:31.4
2017/7/21 01:42:58
93:15:48.0

您可以在屏幕截图中看到相同的传递,以世界时间而非上海天堂使用的都柏林的UTC 1时区表示 – 所以PyEphem给出的最高点时间凌晨1点37分变为当地时间凌晨2:37都柏林时区.

我检查了另外一两个通道,他们似乎都非常认同 – 时区是否可能是混乱的根源?

原始答案:

您指定的东经53.2842°,南纬6.2282°,在世界地图上似乎位于印度洋西缘的某个地方.您是否可能打算使用负数-53.2842°,这会将位置改为巴西?

点赞