python将au转换为km

时间:2015-03-04 23:19:03

标签: python skyfield

我试图编写一个非常简单的程序,以千米为单位打印到任何行星的当前距离。我正在使用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'

我该怎么办?

1 个答案:

答案 0 :(得分:5)

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

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