Я пытаюсь преобразовать экваториальные координаты объекта в координаты alt-az для заданного времени и местоположения в (надеюсь) <5 se c времени выполнения или, в идеале, <1 se c времени выполнения. </p>
Следуя учебнику по астропии для преобразования координат , я настроил следующий код:
from astropy import units as u
from astropy.coordinates import SkyCoord,EarthLocation, AltAz
from astropy.time import Time
target = SkyCoord(9.81625*u.deg, 0.88806*u.deg, frame='icrs')
location = EarthLocation(lat='31d57.5m', lon='-111d35.8m', height=0*u.m)
obs_time = Time('2010-12-21 1:00')
alt_az_frame = AltAz(location=location, obstime=obs_time)
target_alt_az = target.transform_to(alt_az_frame)
print(target_alt_az.alt, target_alt_az.az)
Этот код выполняется за 20 секунд, почти все из которых получены из строка target.transform_to(alt_az_frame)
.
Есть ли более подходящий способ использовать функцию transform_to
для ускорения кода или мне следует вообще отказаться от использования астропии и писать код с нуля? Я понимаю, что в SkyCoord
объекты встроено множество дополнительных функций, большая часть которых мне, скорее всего, не нужна - просто удобно использовать предварительно созданный стандартизированный код.