用于传播卫星轨道的python库。
orbit-predictor的Python项目详细描述
轨道预测器是一个python库,用于传播地球轨道物体(卫星,国际空间站, 圣诞老人等)使用TLE (Two-Line Elements set)
所有的努力都是由布兰登·罗德斯完成的 SGP4
我们可以说orbit predictor是sgp4的python实现的一种“包装器”。
安装它
您可以从pypi安装轨道预测器:
pip install orbit-predictor
使用示例
国际空间站什么时候会越过阿根廷?
In [1]: from orbit_predictor.sources import EtcTLESource In [2]: from orbit_predictor.locations import ARG In [3]: source = EtcTLESource(filename="examples/iss.tle") In [4]: predictor = source.get_predictor("ISS") In [5]: predictor.get_next_pass(ARG) Out[5]: <PredictedPass ISS over ARG on 2017-11-10 22:48:10.607212> In [6]: predicted_pass = _ In [7]: position = predictor.get_position(predicted_pass.aos) In [8]: ARG.is_visible(position) # Can I see the ISS from this location? Out[8]: True In [9]: import datetime In [10]: position_delta = predictor.get_position(predicted_pass.los + datetime.timedelta(minutes=20)) In [11]: ARG.is_visible(position_delta) Out[11]: False In [12]: tomorrow = datetime.datetime.utcnow() + datetime.timedelta(days=1) In [13]: predictor.get_next_pass(ARG, tomorrow, max_elevation_gt=20) Out[13]: <PredictedPass ISS over ARG on 2017-11-11 23:31:36.878827>
从TLE行简化创建预测器:
In [1]: import datetime In [2]: from orbit_predictor.sources import get_predictor_from_tle_lines In [3]: TLE_LINES = ( "1 43204U 18015K 18339.11168986 .00000941 00000-0 42148-4 0 9999", "2 43204 97.3719 104.7825 0016180 271.1347 174.4597 15.23621941 46156") In [4]: predictor = get_predictor_from_tle_lines(TLE_LINES) In [5]: predictor.get_position(datetime.datetime(2019, 1, 1)) Out[5]: Position(when_utc=datetime.datetime(2019, 1, 1, 0, 0), position_ecef=(-5280.795613274576, -3977.487633239489, -2061.43227648734), velocity_ecef=(-2.4601788971676903, -0.47182217472755117, 7.167517631852518), error_estimate=None)
目前你有这些来源
- 内存源:内存存储。
- EtcTLESource:uniq-TLE存储在/etc/latest-TLE
- wstlesource:它读取satellogic中当前使用的rest api。我们正在努力使之公开。
如何贡献
- 编写PEP8投诉代码。
- 把代码包装在100个共谋者身上。
- 始终为每个要素和合并建议使用分支。
- 总是在推之前运行测试(测试意味着PEP8验证)