从TLE计算ECEF卫星位置

2024-04-19 09:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用mi位置(经纬度)计算卫星的位置,我想知道从我的位置能看到什么卫星(我的接收器)。为此,我使用这个blog的帮助,我使用python库Pyphem,并使用TLE文件的信息。通过这个我可以知道文件的位置,但是我可以获得最大的数据范围,文件在this站点中。 e、 g.文件获取信息时间:2017年1月12日1:00至2017年1月13日23:59,我想知道2017年1月14日13:05的职位 问题是我能得到明天的文件吗?或者我能拿到今天的档案?在

更新1。

my code在python中是这样的:

TimeNow = datetime.datetime.now() #"10/01/2017"
Longitude = -73.1198 
Latitude = 7.11392
print TimeNow

sat_alt, sat_az, sat_name = [], [], []

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

GPS_list = 'http://www.celestrak.com/NORAD/elements/gps-ops.txt'
GPS2_list = 'http://www.tle.info/data/gps-ops.txt'
GLONASS_list = 'http://www.celestrak.com/NORAD/elements/glo-ops.txt'
GLONASS2_list = 'http://www.tle.info/data/glo-ops.txt'
#'http://www.amsat.org/amsat/ftp/keps/current/nasabare.txt').readlines()


tles = urllib2.urlopen(GPS_list).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)

            #if 'PRN 26' in tle[0]:
                #print "TRUE"
            if TimeNow <= ephem.localtime(st) and TimeNow >= ephem.localtime(rt):
                text = tle[0]
                sat_alt.append(np.rad2deg(sat.alt))
                sat_az.append(np.rad2deg(sat.az))

                text2 = text.rsplit(')', 1)[0]
                text3 = text2.rsplit('(', 1)[1]
                sat_name.append(text3)
                print text3, np.rad2deg(ra),np.rad2deg(sa)
    except ValueError as e:
        print e

结果:

^{pr2}$

在这个例子中,我有今天的信息(2017年2月28日),我在链接中有今天的TLE文件,但是如果我想要明天的信息呢?在

谢谢你

更新2:

您可以为另一个日期更改变量TimeNow(例如now + 2 hours),但是我不知道如果用今天的TLE文件计算明天或明天过去的位置(仰角/方位角),误差会太大吗?多少钱?(我正在读this试图找到答案)我希望有人知道。谢谢。在


Tags: 文件intxthttpdatetimewwwsatops