我在地球上有一个定向天线,我想知道它在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'
我所有不同的试验都产生错误......
我怎么能设法做到这一点?
谢谢!
您尝试使用的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