Найти (ra, dec) по (азимуту, высоте) в поле неба - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть направленная антенна на Земле, и я хотел бы знать, куда она указывает в координатах ra, dec.Я хотел бы использовать для этого новую библиотеку Skyfield, так как pyephem больше не разрабатывается.

Легко вычислить мою позицию топоса на Земле:

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

Но тогда я могуНе пойму, как обозначить аз, альт пару с этой точки.Я видел метод from_altaz, но мне не удалось заставить его работать.

Если я попробую его с топоса:

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'

Все мои разные испытания приводили к ошибкам...

Как мне это сделать?

Спасибо!

1 Ответ

0 голосов
/ 02 марта 2019

Функция 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
-00deg05 '39,5

...