PyEphem

О библиотеке PyEphem

PyEphem — это библиотека для составления эфемерид. Она предоставляет инструменты для астрономических вычислений на языке программирования Python. Используя дату и место на поверхности Земли, PyEphem может вычислить положение Солнца и Луны, планет и их спутников, а также любых астероидов, комет или искусственных спутников Земли, чьи орбитальные элементы пользователь может ввести в программу. Дополнительные функции предоставляют вычисления угловых расстояний между двумя объектами на небе, определения созвездия, в котором находится объект, определения времени восхода, захода, транзита и проч. для любых объектов на определенный день.
Численные процедуры, которые лежат в основе PyEphem заимствованы из прекрасного астрономического приложения XEphem, автор которого, Elwood Downey, великодушно разрешил использовать их в PyEphem по назначению.

Установка в Fedora Linux

Для того, чтобы, без лишних заморочек, библиотека PyEphem была добавлена к прочим библиотекам Python необходимо установить пакет pip, который предназначен для инсталляций и управления библиотеками Python. Данный пакет входит в репозиторий пакетов Fedora как пакет с именем python3-pip. Если его нет, то устанавливаем (по ходу вы можете и обновить данный пакет):

# dnf install python3-pip python3-setuptools
# easy_install pip3

PyEphem установлен в системе как библиотека python2.7. Если же нет, то устанавливаем для python2.7 так:

# pip install ephem

Чтобы PyEphem был доступен и в python3, его нужно скачать и скомпилировать под python3. Скачать архив с последней версией программы можно так:

# pip3 download ephem

Обратите внимание, что имя библиотеки пишется не pyephem, а более компактно — ephem.
Или обратившись по адресу: https://pypi.python.org/pypi/ephem/#downloads. Распаковываем, заходим в директорию с файлами и устанавливаем библиотеку:

# tar -zxvf ephem-3.7.6.0.tar.gz
# cd ./ephem-3.7.6.0
# python3 setup.py install

Теперь можно использовать PyEphem и в python3! Импортируется библиотека как обычно, например:

>>> from ephem import *

Пример работы

Сначала небольшой алгоритм ;-). Если вы не знаете, что такое Python, то «добро пожаловать» в наш 10 класс! Проще познать ту или иную вещь — это непосредственно решить с её помощью какую-либо задачу. Так мы и поступим.
Постановка задачи: Определить моменты восхода, захода, элонгацию, звездную величину, угловые размеры, дистанцию от Земли и созвездия для планеты Марс в Ейске (Краснодарский край, Россия) на лето 2016 года с шагом 5 дней (начиная с 1.06.2016 г.). Географические координаты обсерватории: 46 40 22 СШ и 38 16 51 ВД.

from ephem import *
yeysk = Observer()
##############################################
# Географические координаты
# lat — Широта, к северу положительная (+N)
# lon — Долгота к востоку положительная (+E)
# elevation — Высота обсерватории над уровнем моря (m)
# temp — Температура (°C)
# pressure — Атмосферное давление (mBar)
##############################################
yeysk.lat = '46:40:22'
yeysk.lon = '38:16:51'
yeysk.elevation = 10
yeysk.temp = 25
yeysk.pressure = 1010.58076 # 758 мм рт ст
start = date('2016/6/1 0:0:0')
end = date(start + 92)
m = Mars(yeysk)
while start <= end:
	yeysk.date = start
	m.compute(yeysk)
	print(	"{} {} {} {} {:3.4f} {:3.4f} {}".format(
			yeysk.next_rising(m),
			yeysk.next_setting(m),
			m.elong,
			m.mag,
			m.size,
			m.earth_distance,
			constellation(m)
			))
	start = date(start + 5)

Вывод программы:

2016/6/1 16:01:32 2016/6/1 00:55:54 167:22:48.5 -2.12 18.5964 0.5033 ('Lib', 'Libra')
2016/6/6 15:34:23 2016/6/6 00:30:09 161:02:09.3 -2.02 18.4840 0.5064 ('Lib', 'Libra')
2016/6/11 15:08:15 2016/6/11 00:05:16 154:54:02.9 -1.9 18.2315 0.5134 ('Lib', 'Libra')
2016/6/16 14:43:32 2016/6/16 23:36:43 147:54:44.1 -1.77 17.7791 0.5265 ('Lib', 'Libra')
2016/6/21 14:20:25 2016/6/21 23:14:08 142:26:39.7 -1.65 17.3102 0.5407 ('Lib', 'Libra')
2016/6/26 13:59:02 2016/6/26 22:52:40 137:18:58.8 -1.54 16.7855 0.5576 ('Lib', 'Libra')
2016/7/1 13:39:26 2016/7/1 22:32:18 132:31:48.7 -1.43 16.2273 0.5768 ('Lib', 'Libra')
2016/7/6 13:21:36 2016/7/6 22:13:01 128:04:55.4 -1.31 15.6543 0.5979 ('Lib', 'Libra')
2016/7/11 13:05:30 2016/7/11 21:54:45 123:57:33.8 -1.2 15.0823 0.6206 ('Lib', 'Libra')
2016/7/16 12:51:00 2016/7/16 21:37:28 120:08:21.8 -1.1 14.5224 0.6445 ('Lib', 'Libra')
2016/7/21 12:37:58 2016/7/21 21:21:05 116:35:39.2 -0.99 13.9817 0.6694 ('Lib', 'Libra')
2016/7/26 12:26:15 2016/7/26 21:05:35 113:17:45.6 -0.89 13.4639 0.6952 ('Lib', 'Libra')
2016/7/31 12:15:44 2016/7/31 20:50:55 110:13:18.3 -0.8 12.9707 0.7216 ('Lib', 'Libra')
2016/8/5 12:06:18 2016/8/5 20:37:06 107:21:11.5 -0.71 12.5033 0.7486 ('Sco', 'Scorpius')
2016/8/10 11:57:49 2016/8/10 20:24:05 104:40:18.2 -0.62 12.0624 0.7760 ('Sco', 'Scorpius')
2016/8/15 11:50:09 2016/8/15 20:11:52 102:09:25.3 -0.54 11.6474 0.8036 ('Sco', 'Scorpius')
2016/8/20 11:43:10 2016/8/20 20:00:27 99:47:19.7 -0.46 11.2569 0.8315 ('Sco', 'Scorpius')
2016/8/25 11:36:44 2016/8/25 19:49:49 97:32:57.2 -0.39 10.8891 0.8596 ('Oph', 'Ophiuchus')
2016/8/30 11:30:45 2016/8/30 19:40:01 95:25:32.7 -0.32 10.5423 0.8879 ('Sco', 'Scorpius')

Как видите, всё довольно просто! Не красиво? Чтож, форматирование вывода данных — это ваше творчество. Пайтон может всё (или почти всё)! Главное — уметь им пользоваться! Здесь представлено лишь небольшое количество функций. Используя документацию на сайте программы вы можете получать гораздо больше информации о движении и положении не только естественных тел Солнечной системы, но и искусственных спутников. И вообще, в любую пасмурную, ветреную, а то и морозную погоду, когда совсем не хочется выходить по ночам на улицу, сидя у теплого домашнего очага и созерцая результаты работы PyEphem, как приятно представлять себе все красоты звездного неба и размышлять о безграничных просторах Вселенной ;-).
Ну а для тех, у кого и с астрономией не всё в порядке, ниже следующие пункты помогут разобраться в терминологии или напомнят, если кто подзабыл!

Астрономические величины

Здесь я совокупно подобрал наиболее важные обозначения астрономических величин, относящихся к небесной механике и астрометрии. Поскольку среди обозначений изобилует использование греческого алфавита, то удобнее представить этот перечень в формате pdf.

Конфигурация планет

Конфигурация планет

Конфигурация планет

Орбитальные элементы
Num Number assigned to the comet. Numbers are only assigned to secure short-period (< 200 year) comets Номер кометы (назначается только для короткопериодических комет с Р < 200 лет) или астероида Например, 1P Галлея или 1 Церера
Name Name of the object Имя объекта Например, C/2003 K4 LINEAR или 78985 2003 UH52
Т Time of perihelion passage (comets only) Время прохождения перигелия (только для комет) YYYYMMDD.DDD
M Mean anomaly at epoch (asteroids only) Средняя аномалия в эпохе (только для астероидов)
q Perihelion distance (comets only) Расстояние перигелия (только для комет) q; AU (а. е.)
a Semi-major axis of the orbit (asteroids only) Большая полуось орбиты (только для астероидов) a; AU (а. е.)
e Eccentricity Эксцентриситет
omega Argument of perihelion Аргумент перигелия omega° (J2000-Ecliptic)
Omega Longitude of the ascending node Долгота восходящего узла Omega° (J2000-Ecliptic)
i Inclination Наклонение орбиты
H Absolute magnitude Абсолютная звездная величина magnitude (m)
G Magnitude slope parameter Параметр изменения блеска
Орбитальные элементы

Орбитальные элементы

В формате PDF
Объяснение некоторых параметров, представленных на схеме, не входящих в основные элементы
Teta — истинная аномалия, угол между радиусом-вектром r и линией, связывающей центр Солнца и точку перигелия (ближайшую точку орбиты небесного тела к Солнцу) q.
b — малая полуось орбиты.
Gamma — направление на точку весеннего равноденствия.

Ссылки

Comments are closed