首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python SGP4 1.1计算不正确的轨道

Python SGP4 1.1计算不正确的轨道
EN

Stack Overflow用户
提问于 2013-03-12 21:26:43
回答 2查看 2.5K关注 0票数 2

我正在使用python 1.1模块来计算SGP4卫星的位置和速度。我注意到,与STK和JSatTrak相比,位置和速度的返回值是不正确的。卫星应该有大约6小时的地面重复轨道,但这个节目显示的地面重复轨道为4:47:51。我是不是做错了什么?

代码语言:javascript
复制
from sgp4.earth_gravity import wgs72
from sgp4.io import twoline2rv
from math import atan2, cos, pi, sin, sqrt, tan
from datetime import datetime

def calculate(options):
    x = options[0]
    y = options[1]
    z = options[2]

    # Constants (WGS ellipsoid)
    a = 6378.137
    e = 8.1819190842622e-2
    # Calculation
    b = sqrt(pow(a,2) * (1-pow(e,2)))
    ep = sqrt((pow(a,2)-pow(b,2))/pow(b,2))
    p = sqrt(pow(x,2)+pow(y,2))
    th = atan2(a*z, b*p)
    lon = atan2(y, x)
    lat = atan2((z+ep*ep*b*pow(sin(th),3)), (p-e*e*a*pow(cos(th),3)))
    n = a/sqrt(1-e*e*pow(sin(lat),2))
    alt = str(p/cos(lat)-n)
    lat = str((lat*180)/pi)
    lon = str((lon*180)/pi)
    #print "%s %s %s" % (lat, lon, alt)
    return (lat, lon, alt)

line1 = '1     1U 001001   14001.00000000  .00000000  00000+0  00000+0 0 00022'           
line2 = '2     1   0.0891 294.8098 0002843  64.8653   0.5014  5.00115502    09'

satellite = twoline2rv(line1, line2, wgs72)
position1, velocity1 = satellite.propagate(2013, 3, 1, 0, 0, 1)
position2, velocity2 = satellite.propagate(2013, 3, 1, 4, 47, 52)
lat1,lon1,alt1 = calculate(position1)
lat2,lon2,alt2 = calculate(position2)

print lat1 + " " + lon1  + " " + alt1
print lat2 + " " + lon2  + " " + alt2
print "\n\n"
print position1
print position2   
EN

回答 2

Stack Overflow用户

发布于 2013-04-07 02:21:33

你问这个问题已经三个星期了,所以我想这对你没有帮助,但无论如何,对于档案来说……

我没有Python SGP4例程,也不能测试它们,但通常SGP4例程会返回一个名为TEME (真赤道,均值赤道:https://en.wikipedia.org/wiki/Earth-centered_inertial#TEME)的惯性(非旋转)参考系中的位置和速度。您正在计算此参考系统中地球的经度/纬度,这将给出错误的结果。您应该首先将TEME系统转换为随地球旋转的旋转系统(如ECEF:https://en.wikipedia.org/wiki/ECEF ),然后可以计算经度/纬度。

我希望有用于这种转换的库,因为它不是一个微不足道的库。

致以问候。

票数 3
EN

Stack Overflow用户

发布于 2013-05-17 01:49:51

你需要在计算中考虑到地球的自转。您计算的是地心右升,而不是经度。从阅读维基百科上关于Hour Angle的文章开始。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15362557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档