Расчет положения звезды на небе, PyEphem
У меня трудности с поиском текущих координат (RA, DEC) для звезды на небе. В сети я нашел только один урок, как использовать библиотеку ephem: http://asimpleweblog.wordpress.com/2010/07/04/astrometry-in-python-with-pyephem/
Как я понял, мне нужно:
- создать наблюдателя
telescope = ephem.Observer() telescope.long = ephem.degrees('10') telescope.lat = ephem.degrees('60') telescope.elevation = 200
Создать тело Объект звезда здесь беда, у меня только (RA, DEC) координаты звезды
Рассчитать позицию по.calculate(now())
по новым координатам найти высоту
Еще один вопрос о точности этой библиотеки, насколько она точна? Я сравнил юлиандатское и звездное время между этой программой и kstars, похоже, очень похоже.
и это http://www.jgiesen.de/astro/astroJS/siderealClock/
PS! Или может быть кто-то может порекомендовать лучшую библиотеку для этих целей.
2 ответа
Я думаю, вы ищете FixedBody?
telescope = ephem.Observer()
telescope.long = ephem.degrees('10')
telescope.lat = ephem.degrees('60')
telescope.elevation = 200
star = ephem.FixedBody()
star._ra = 123.123
star._dec = 45.45
star.compute(telescope)
print star.alt, star.az
Я не знаю о точности; pyephem использует тот же код, что и xephem, и, например, положения планет задаются округленными вниз решениями VSOP87 (точность лучше, чем 1 угловая секунда); kstars использует полное решение VSOP.
Но это действительно будет зависеть от вашей потребности; Например, не полагайтесь на то, что ваш телескоп слепо направляет, для этого есть лучшие решения.
star = ephem.FixedBody(ra=123.123, dec=45.45)
в моем случае создание исправленного тела не работает, должно быть
star = ephem.FixedBody()
star._ra = ephem.hours('10:10:10')
star._dec = ephem.degrees('10:10:10')