2

我在地球上有一个定向天线,我想知道它在 ra,dec 坐标中指向的位置。我想为此使用新的 skyfield 库,因为 pyephem 不再开发。

计算我在地球上的 topos 位置很容易:

planets = load('de421.bsp')
earth = planets['earth']
paris = earth + Topos('48.839059 N', '2.310147 E')

但后来我不知道如何从这一点上表示一对 az,alt 夫妇。我已经看到了这种from_altaz方法,但我无法让它发挥作用。

如果我从一个 topos 尝试它:

antenna = paris.from_altaz(alt_degrees=41.1,az_degrees=180)
Traceback (most recent call last):
  File "./compute.py", line 13, in <module>
    antenna = paris.from_altaz(alt_degrees=41.1,az_degrees=180)
AttributeError: 'VectorSum' object has no attribute 'from_altaz'

我怎么能做到这一点?

4

1 回答 1

3

from_altaz您尝试使用的功能来自position_lib. 由于这适用于固定和移动对象(随时间而异),因此它是时间的函数。所以你需要observer.at函数指定时间。

from skyfield import api

ts = api.load.timescale()
planets = api.load('de421.bsp')
earth = planets['earth']

antenna = earth + api.Topos('48.839059 N', '2.310147 E')

t = ts.now()
direction = antenna.at(t).from_altaz(alt_degrees=41.1, az_degrees=180)

ra, dec, distance = direction.radec()
print(ra)
print(dec)

这导致:

04h 43m 26.56s
-00deg 05' 39.5

于 2019-03-02T17:58:01.110 回答