phephem:iss预测与美国宇航局网站不匹配

时间:2015-01-18 00:54:49

标签: python pyephem

我一直在阅读以前的帖子,但我还有一个问题。我只是制作了一个非常简单的剧本,告诉我什么时候卫星经过我的城市。

我正在使用此博文作为指南:http://libjoe.blogspot.com.au/2009/10/where-is-my-satellite-in-python.html

为了进行测试,我正在检查ISS电台的输出是否与美国国家航空航天局网站上的预测输出相匹配,但它不匹配:http://spotthestation.nasa.gov/sightings/view.cfm?country=Australia&region=Victoria&city=Melbourne#.VLr7I82UdhE

我有我的lat& long设置为墨尔本,我正在使用ephem.localtime打印出上升和放大设定时间。但是,时代永远不会与美国国家航空局网站相匹配

非常感谢任何建议,谢谢!

import datetime
import ephem
import math
import os
import sys 
import time
import urllib2

observer = ephem.Observer()
observer.long = '-37.799423'
observer.lat = '144.999979'
observer.date = datetime.datetime.now()

tles = urllib2.urlopen('http://www.amsat.org/amsat/ftp/keps/current/nasabare.txt').readlines()
tles = [item.strip() for item in tles]
tles = [(tles[i],tles[i+1],tles[i+2]) for i in xrange(0,len(tles)-2,3)]

for tle in tles:

   try:
     sat = ephem.readtle(tle[0], tle[1], tle[2])
     rt, ra, tt, ta, st, sa = observer.next_pass(sat)

     if rt is not None and st is not None:
       #observer.date = rt
       sat.compute(observer)

       print tle[0]
       print 'rise time: ', ephem.localtime(rt)
       print 'set time: ',  ephem.localtime(st)
       print
   except ValueError as e:
    print e

以下是我的脚本输出现在在" 15:10" 2015年1月18日在墨尔本,ISS电台在输出中列为:

rise time: 2015-01-19 02:27:09
set time: 2015-01-19 02:37:37

然而,美国宇航局网站(spotthestation.nasa.gov/sightings / ...)陈述了1月19日的以下预测:

  • 1月19日星期一,晚上9:23和
  • 1月19日星期一,晚上10:59

2 个答案:

答案 0 :(得分:2)

通常情况下,经度是±180°之间的“大数字”,而纬度是在更有限的范围内的一个小数字±90° - 您可能在这里颠倒了纬度和经度吗?

答案 1 :(得分:0)

对于那些最终遇到同样问题的人。这就解决了我的问题:

  1. 阅读文档。特别是与时区有关。请记住,默认设置是UTC时间,可能与您的不同

  2. 图书馆对目击预测持乐观态度,因此可能会偏离JSatTrak和在线资源。在我的情况下,图书馆预测了一个相当接近观察者的通道,但是在能见度的边界上。 JSatTrak和在线资源忽略了它。 要查看您的情况是否属于这种情况,请将观察者时间设置为原始预测的结束时间+ 1分钟。下一遍可能与在线预测相同。 (我觉得它可能与观察者的高度有关,但我没有在源代码或计算上做作业。)