我想使用以下代码提取卫星(ISS)的十进制坐标:
from skyfield.api import EarthSatellite, Topos, load
import time
line1 = '1 25544U 98067A 14020.93268519 .00009878 00000-0 18200-3 0 5082'
line2 = '2 25544 51.6498 109.4756 0003572 55.9686 274.8005 15.49815350868473'
satellite = EarthSatellite(line1, line2, name='ISS (ZARYA)')
while True:
ts = load.timescale()
t = ts.now()
geometry = satellite.at(t)
subpoint = geometry.subpoint()
print(subpoint.latitude)
print('\n')
print(subpoint.longitude)
time.sleep(1)
输出是一个字符串:-45deg 44' 13.5"
将其转换为以下内容的最简单方法是什么:-77.0089°
试试这个
输出:
令人高兴的是,对象
latitude
和longitude
不是简单的字符串,而是奇特的角度对象,它们只是将自身打印为三部分字符串,以便在屏幕上轻松阅读。您可以通过向Python索取它们的文档来了解更多。在循环结束时,尝试添加:将出现
Angle
类的文档。您也可以在以下网站上找到:https://rhodesmill.org/skyfield/api-units.html#skyfield.units.Angle
您需要使用属性
degrees
,该属性将角度表示为浮点数。将程序中的打印调用更改为:相关问题 更多 >
编程相关推荐