Python 如何在天空中找到卫星的相对速度?

Python 如何在天空中找到卫星的相对速度?,python,satellite,skyfield,satellite-navigation,Python,Satellite,Skyfield,Satellite Navigation,我需要知道卫星相对于我的移动速度。我曾考虑使用Python包“skyfield”,但我不知道如何计算: from skyfield.api import EarthSatellite, Topos import skyfield.api sat = EarthSatellite('1 43700U 18090A 18335.89431171 +.00000133 +00000-0 +00000-0 0 9993', '2 43700 000.0858 2

我需要知道卫星相对于我的移动速度。我曾考虑使用Python包“skyfield”,但我不知道如何计算:

from skyfield.api import EarthSatellite, Topos
import skyfield.api

sat = EarthSatellite('1 43700U 18090A   18335.89431171 +.00000133 +00000-0 +00000-0 0  9993',
                 '2 43700 000.0858 245.4352 0001094 006.6237 164.6135 01.00274015000309')
time_scale = skyfield.api.load.timescale()
time0 = time_scale.utc(2018, 12, 1, 21, 0, 0)
position0 = sat.at(time0)
position0_ITRF = sat.ITRF_position_velocity_error(time0)[:2]

my_loc = Topos('39.0 N', '105.0 W')

我不知道如何将我的位置转换成相应的位置,以便计算卫星的相对速度。我是否应该使用实现了更多功能的不同软件包?

如果您在
时间0询问“我的位置在哪里?”

position1 = my_loc.at(time0)
然后,您将拥有另一个具有
.velocity
的位置对象,您应该能够将其与卫星的速度进行比较。您也可以事先进行减法:

relative_position = (sat - my_loc).at(time0)
然后,结果对象的
.position
.velocity
都应该相对于您的位置,而无需您自己减去它们