Преобразуйте топоцентрические координаты (азимут, высота) в экваториальные координаты (прямое восхождение, склонение) с помощью PyEphem

Это выглядит довольно простой задачей, но я не могу в ней разобраться.

Документация PyEphem:

http://rhodesmill.org/pyephem/radec.html

описывает, как выполнить преобразование наоборот, от объектов Body и Observer к кажущемуся топоцентрическому положению, с высотой и азимутом в атрибутах .alt и .az.

Однако как мне вместо этого начать с высоты и азимута и получить прямое восхождение и склонение?

Например, вот один набор координат, для которого я хотел бы получить прямое восхождение и склонение в экваториальной системе отсчета:

az = 3.30084818 #rad
el = 0.94610742 #rad
lat = 34.64 #deg
lon = -103.7 #deg
alt = 35800.26 #m
ut = 2455822.20000367 #julian date

Спасибо!


person Andrea Zonca    schedule 22.01.2012    source источник


Ответы (1)


Здесь есть две тонкости. Во-первых, вам довелось использовать «высота» и «высота» для обозначения противоположности тому, что эти два термина означают в библиотеке PyEphem - поэтому вы называете точку в небе его положением «высота / азимут», а не «высотой». / azimuth ». Во-вторых, похоже, что PyEphem забыл предоставить простой способ преобразования дат из юлианского в собственный формат. Хотя существует функция julian_date(), которая будет пойти в другом направлении, нам придется немного поработать, чтобы пойти в другом направлении, выяснив, для чего используется имя ephem.

С учетом этих условий, я думаю, этот сценарий может ответить на ваш вопрос:

import ephem

az = 3.30084818 #rad
el = 0.94610742 #rad
lat = 34.64 #deg
lon = -103.7 #deg
alt = 35800.26 #m
ut = 2455822.20000367 #julian date

# Which Julian Date does Ephem start its own count at?
J0 = ephem.julian_date(0)

observer = ephem.Observer()
observer.lon = str(lon)  # str() forces deg -> rad conversion
observer.lat = str(lat)  # deg -> rad
observer.elevation = alt
observer.date = ut - J0

print observer.date
print observer.radec_of(az, el)

Правильно ли полученный ответ соответствует данному конкретному наблюдению? Вот что мне напечатал сценарий:

2011/9/17 16:48:00
(9:16:24.95, -0:45:56.8)

Сообщите мне, имеет ли это физический смысл для данного конкретного наблюдения, или одно из чисел здесь неверно и его все еще необходимо изменить!

person Brandon Rhodes    schedule 24.01.2012