这不是一个卫星收购计划,但它可能让你开始。我使用Python包Skyfield的子卫星SMAP基于最近的点两个线元素集从Celestrak。
请随时留言问题如果需要调整!
我不是一个日期和时间在Python中,专家次
对象有几个转换和格式化方法如果你想让一个表。
# !/usr/bin/env python # - * -编码:utf - 8 - *——从skyfield。api导入主题,负载进口numpy np matplotlib进口。pyplot plt #主要来自https://rhodesmill.org/skyfield/earth-satellites.html resource_satellites_url = ' http://celestrak.com/NORAD/elements/resource.txt ' resource_satellites = load.tle (resource_satellites_url) SMAP = resource_satellites (SMAP的)打印(SMAP)打印(“框架SMAP发现的时代:”,SMAP.epoch.utc_jpl ()) ts = load.timescale = ts.now()天()——SMAP。时代印刷(' {:。3 f}天远离时代的.format(天))#仍然从这个例子:布拉夫顿=主题(40.8939 N, 83.8917 W) t0 = ts.utc (2020、2、23) t1 = ts.utc (2020、2、24) t = SMAP的事件。find_events(布拉夫顿t0, t1, altitude_degrees = 30.0) ti,事件在zip (t,事件):name =(超过30°,“高潮”,小于30°)(事件)打印(ti.utc_jpl(),名字)#警告我在这里硬编码的一个日期,如果你运行这个框架后,检索#将会更新的,所以不太准确。你想使用的框架#几周内(如果不是几天)的约会最好的准确性。分钟=范围(24 * 60 + 1)* = ts.utc(0 2020, 24日,分钟,0)#例子;每分钟24 - 2月- 2020 subsat_pts = SMAP.at(次).subpoint()纬度,经度= subsat_pts.latitude.degrees subsat_pts.longitude.degrees subsat_pts_now = SMAP.at (ts.now ()) .subpoint () lat_now lon_now = subsat_pts_now.latitude.degrees subsat_pts_now.longitude.degrees #捏造环绕地球保持情节从包装阿龙断点=朗[1:]-朗(:1)> 10。#对SMAP这意味着经度纬度,经度=纬度(:1),朗(:1)朗[中断点]= np。南如果真的:plt.figure (plt)。(经度、纬度)plt的阴谋。title('SMAP map every minute for 24-feb-2020, dot is for ts.now()') plt.xlabel('longitude (degs)') plt.ylabel('latitude (degs)') plt.plot([lon_now], [lat_now], 'ok') # put a dot for right now plt.show()