首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Skyfield:在给定的时间间隔内以1秒的周期获得sgp4结果

Skyfield:在给定的时间间隔内以1秒的周期获得sgp4结果
EN

Stack Overflow用户
提问于 2018-03-26 22:37:48
回答 2查看 459关注 0票数 3

我已经在python中使用Skyfield实现了sgp4算法。

我需要1天的时间间隔和1秒周期的位置矢量。为此,我必须重复计算sgp4,每次增加1秒。

有没有办法返回一个包含所有位置的向量?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-22 00:47:32

为此,您可以从TLE中创建一个skyfield.EarthSatellite对象,然后在时间列表中为每个时间生成astrometric对象。您需要将时间列表指定为支持时区的datetime对象。你可以创建你的时间列表,比如(可能有很多空间可以让它更有效率):

代码语言:javascript
复制
from datetime import timezone, timedelta, datetime
from skyfield.api import load

ts = load.timescale()  # create skyfield timescale object
tz = timezone(timedelta(hours=-4))  # whatever your timezone offset from UTC is
start = datetime(2018, 06, 21, 0, 0, 0, tzinfo=tz)  # timezone-aware start time
end = start + timedelta(hours=24)  # one day's worth of times
delta = timedelta(minutes=1)  # your interval over which you evaluate
times = [start]
now = start
while now <= end:
    now += delta
    times.append(now)

并使用以下命令进行评估:

代码语言:javascript
复制
astrometrics = my_earthsat.at(ts.utc(times))

这将在您指定的每个时间为您提供一个天体度量值列表。你可以使用这些对象来获得你的对象在任何你喜欢的单位或参考系中的位置(我认为速度)。例如,您可以使用以下内容获取列表中每个元素的高度和方位角(以弧度表示):

代码语言:javascript
复制
alt_az = []
for ast in astrometrics:
    alt_az.append(ast.altaz().radians)
票数 1
EN

Stack Overflow用户

发布于 2018-08-06 05:30:41

幸运的是,Skyfield是为NumPy数组中的time对象设计的,它将生成与数组中的对象一样多的位置。以下是文档中描述该功能的一节:

http://rhodesmill.org/skyfield/time.html#date-arrays

下面是一个完成您所描述的任务的示例:

代码语言:javascript
复制
from numpy import arange
from skyfield.api import load, EarthSatellite

iss_tle0 = """\
1 25544U 98067A   18184.80969102  .00001614  00000-0  31745-4 0  9993
2 25544  51.6414 295.8524 0003435 262.6267 204.2868 15.54005638121106
"""
my_earthsat = EarthSatellite(*iss_tle0.splitlines())

tz_offset = -4

ts = load.timescale()
t = ts.utc(2018, 6, 21, tz_offset, 0, arange(24 * 60 * 60))
astrometrics = my_earthsat.at(t)

这段代码目前并不是特别快,因为地球卫星的计算还没有优化,但应该比在循环中手动构建多个时间对象更快。

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

https://stackoverflow.com/questions/49494082

复制
相关文章

相似问题

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