编程语言
首页 > 编程语言> > python将au转换为km

python将au转换为km

作者:互联网

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

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


print(distance)

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

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


print(distance*149597871)

但是这会返回一个错误:

TypeError: unsupported operand type(s) for *: 'Distance' and 'int'

我能做什么?

解决方法:

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

您可以在源here中看到此类的实现.

标签:python,skyfield
来源: https://codeday.me/bug/20190830/1765364.html