首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyephem和Pyephem/g预测性差异

Pyephem和Pyephem/g预测性差异
EN

Stack Overflow用户
提问于 2018-10-01 12:53:35
回答 1查看 200关注 0票数 1

我正试图用皮埃姆来预测一个地面站的卫星通过。然而,我得到的结果与我所得到的预测和预测的结果有很大的不同。这是我写的代码。

代码语言:javascript
复制
import ephem
import predict
import datetime as dt

def passes(station, satellite, start=None, duration=7):
    result = []
    if start is not None:
        station.date = ephem.date(start)
    end = ephem.date(station.date + duration)
    while station.date < end:
        t_aos, azr, t_max, elt, t_los, azs = station.next_pass(satellite)
        result.append({'aos': t_aos.datetime(), 'los': t_los.datetime()})
        station.date = t_los + ephem.second
    return result

tle = """ISS (ZARYA)
1 25544U 98067A   18274.33960752  .00001880  00000-0  36095-4 0  9991
2 25544  51.6416 209.7138 0003794 227.2741 275.6194 15.53757611135029"""

station = ephem.Observer()
station.lat = 20
station.long = 0
station.elev = 0

epoch = dt.datetime.utcnow()

for i in passes(station, ephem.readtle(*tle.split("\n")), epoch, 1):
    print(i['aos'], i['los'])

print("===============")
p = predict.transits(tle, (station.lat, -station.long, station.elev), (epoch - dt.datetime(1970,1,1)).total_seconds())
for i in range(1, 8):
        transit = p.next()
        print(dt.datetime.utcfromtimestamp(transit.start), dt.datetime.utcfromtimestamp(transit.end))

和结果

代码语言:javascript
复制
(datetime.datetime(2018, 10, 1, 17, 4, 43, 552230), datetime.datetime(2018, 10, 1, 17, 11, 12, 744164))
(datetime.datetime(2018, 10, 1, 18, 39, 4, 59194), datetime.datetime(2018, 10, 1, 18, 47, 5, 185600))
(datetime.datetime(2018, 10, 1, 20, 14, 28, 126953), datetime.datetime(2018, 10, 1, 20, 22, 3, 101339))
(datetime.datetime(2018, 10, 1, 21, 51, 6, 130556), datetime.datetime(2018, 10, 1, 21, 55, 21, 829297))
(datetime.datetime(2018, 10, 2, 16, 13, 51, 767026), datetime.datetime(2018, 10, 2, 16, 19, 13, 556850))
===============
(datetime.datetime(2018, 10, 1, 13, 43, 6, 584816), datetime.datetime(2018, 10, 1, 13, 53, 21, 721679))
(datetime.datetime(2018, 10, 1, 15, 20, 13, 473098), datetime.datetime(2018, 10, 1, 15, 29, 13, 799433))
(datetime.datetime(2018, 10, 1, 21, 58, 25, 378030), datetime.datetime(2018, 10, 1, 22, 1, 54, 993473))
(datetime.datetime(2018, 10, 1, 23, 32, 5, 284033), datetime.datetime(2018, 10, 1, 23, 42, 37, 942300))
(datetime.datetime(2018, 10, 2, 1, 9, 49, 741668), datetime.datetime(2018, 10, 2, 1, 17, 12, 346213))
(datetime.datetime(2018, 10, 2, 12, 51, 59, 647871), datetime.datetime(2018, 10, 2, 13, 0, 57, 292565))
(datetime.datetime(2018, 10, 2, 14, 27, 39, 19468), datetime.datetime(2018, 10, 2, 14, 37, 48, 730909))

我在皮埃姆有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-01 14:46:05

如果我没记错的话,PyEphem中一个非常尴尬的界面决定是,作为浮动提供的角度是弧度。(我开始写Skyfield的原因之一是有一个没有这个问题的天文学图书馆!)

尝试:

代码语言:javascript
复制
station.lat = '20.0'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52591629

复制
相关文章

相似问题

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