python将au转换为km

Mon*_*tom 3 python skyfield

我正在尝试编写一个非常简单的程序,以千米为单位打印到任何行星的当前距离.我正在使用Skyfield.这是我的火星代码:

from skyfield.api import earth, mars, now
ra, dec, distance = earth(now()).observe(mars).radec()


print(distance)
Run Code Online (Sandbox Code Playgroud)

这将以天文单位打印出距离.为了转换为公里,我试图乘以149597871:

from skyfield.api import earth, mars, now
ra, dec, distance = earth(now()).observe(mars).radec()


print(distance*149597871)
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个错误:

TypeError: unsupported operand type(s) for *: 'Distance' and 'int'
Run Code Online (Sandbox Code Playgroud)

我能做什么?

aga*_*rs3 5

distance是一个Distance对象,所以distance.km如果你想要以km为单位的距离,你可以简单地使用它.如果您想自己进行转换,可以使用distance.AU * 149597871.(如果它不完全匹配,那是因为Skyfield使用149597870.700 km/au进行转换).

您可以在此处查看此类的实现.