A A A A Автор Тема: как узнать точное взаимное расположение планет?  (Прочитано 5514 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Доброго времени суток!
Наверняка все ответы есть на форуме, но я даже не знаю с чего начать поиск.

Итак, суть вопроса:
В рамках разработки небольшого приложения для мобильных платформ, передо мной встала задача, решить которую я не могу. Мне нужно знать достаточно точное расположение планет солнечной системы относительно солнца. В декартовых или радиальных координатах. Допустим, в моём случае, можно пренебречь эллипсичностью орбит и положить, что все траектории движения находятся в одной плоскости, кроме луны.

Если провести линии из солнца во все другие планеты, вращающиеся вокруг него, то важно знать угол между линией земля-солнце и другими. Где взять эти углы? Или по какой фрмуле расчитать?

Заранее спасибо

Оффлайн shers

  • *****
  • Сообщений: 8 191
  • Благодарностей: 420
    • Сообщения от shers
Гелиоцентрическая долгота.

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Благодарю!!!

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Вопрос в догонку.

Я примерно понял, что есть гелиоцентрическая долгота. По большому счёту это почти та же долгота, что в земных навигационных координатах, только смотрим мы положения планет относительно Солнца, а не положение чего либо на поверхности земли относительно Гринвича. Ок, это теория.

Практика. Думаю, что механика движения всех планет СС достаточно хорошо изучены и известна формула расчёта Долгот и широт в любой момент времени для всех планет. Где я могу подобное найти? И не совсем понятно, как быть со спутниками планет. Хотя бы с той же луной. Понятно, что проще луну "разместить" относительно земли, а не солнца, т.е. в геоцентрической системе отсчёта со своими широтой и долготой. Я правильно мыслю?

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Смещение систем координат делается суммированием векторов, развороты - умножением на матрицу разворота. Считаем в той, где удобнее, потом приводим в ту, которая нужна.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Спасибо, стараюсь разобраться сам без лишних вопросов, но тем не менее, остаётся острым главный вопрос: Где публикуется долгота для каждой планеты? есть какие-то справочники, возможно Интернет-ресурс, может он-лайн калькуляторы? Нашёл только эфемериды, но это, похоже, не совсем то

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Эти таблицы и называются эфемеридами. Онлайн-калькуляторы есть, есть исходники на С++ в книге Пфлегера и Монтенбрука "Астрономия на персональном компьютере".
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Спасибо ответевшим! Всёравно придётся в матчасти разобраться))) скачал кнугу Глобы по эфемеридам и системам космических координат.

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Кого-кого? О_О
Более адекватного ничего не нашлось?
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
 :( не знаю. Подкупил размер 100 страниц. Если есть более научные варианты, буду рад ссылке))

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Астрономический каледарь, постоянная часть, 1981 года издания. В Сети есть. Всё читать совсем не обязательно, первый раздел даёт достаточное представление об эфемеридной астрономии. А приведённые там формулы с определённой точностью сойдут. Если мало - берите Пфлегера и Монтенбрука "Астрономия на персональном компьтере". Там и исходники есть, и пояснения, но в основном без матчасти.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Спасибо! Приятно удивлён отзывчивости местных форумчан! Обычно в профессиональных сообществах пренебрежительно относятся к нубам, посылая в гугл))) ещё раз благодарю и с праздником!

Оффлайн Александр Вольф

  • *****
  • Сообщений: 3 364
  • Благодарностей: 104
  • Разработчик Stellarium'а
    • Skype - alex.v.wolf
    • DeepSkyHosting: alexwolf
    • Сообщения от Александр Вольф
    • 47 Tucanae
Кого-кого? О_О
Более адекватного ничего не нашлось?
Исходя из первого сообщения я осмелись предположить, что речь идёт о создании очередного астрологического инструмента :)
С уважением, Александр
Астротоп | Stellarium: donate | KStars | Astrarium
SW ED80/SW AllView GOTO | Celestron 15x70 | Celestron 25-125x80 | Veber 25x100

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Ну не совсем. Точнее даже совсем не так)))

Это будет довольно ёмкое приложение, частью которого будет 3д схема солнечной системы. По началу мне казалось, что всё несложно, но, я жестоко ошибался)

Ответы я искал и у астрологов и у астрономов. У астрологов вообще всё не то. У вас же всё очень сложно и в основном речь о наблюдении небесных тел с земли, мне же нужен взгляд какбы со стороны. Что до эфемерид, то я так и не понял, где там зашифровано фактическое положение планеты в пространстве, а не наблюдаемое на небосводе(((

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Вот, теперь что-то стало яснее.
Вам нужен гелиоцентрическое положение планеты, с которого обычно и начинается расчёт. Будем считать, что это высчитали, получили координаты в эклиптической декартовой \((X,Y,Z)\) или сферической \((R,\lambda,\beta)\) системе координат.
Также Вам надо знать "текущее" положение, тоже в виде декартового вектора \((X_0,Y_0,Z_0)\) - оно может либо совпадать с какой-то планетой, либо это может быть произвольная точка в пространстве.
Тогда видимый вектор получается вычитанием текущего гелиоцентрического положения положения объекта, то есть \((X',Y',Z') = (X,Y,Z) - (X_0,Y_0,Z_0)\).
Дальше разворотами проецируете уже в экранную систему координат и рисуете.
Переводы из декартовой в сферическую систему координат и обратно, надеюсь, показывать не надо? :)

Рекомендую книгу Абалакина "Основы эфемеридной астрономии", там хорошо необходимый Вам материал изложен.
И на будущее: излагайте задачу, а не попытку её упростить с Вашей позиции, поскольку Вы можете убрать значимые детали, а тут и так поймут ;)
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
получили координаты в эклиптической декартовой \((X,Y,Z)\) или сферической \((R,\lambda,\beta)\) системе координат.

да, вот именно их и надо высчитать) как? И какие исходны данные мне понадобятся?

Оффлайн xd

  • *****
  • Сообщений: 17 982
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Смотря с какой точностью хотите. В первом приближениии - орбитальные элементы и текущее время. Во втором - наиболее существенные возмущения. В третьем - световые задержки, аберрации, барицентрическая система координат, возмущения высоких порядков.
Я более чем уверен, что первого-второго приближения вполне достаточно.
Раздел астрономии, который среди прочего рассматривает эти вопросы, называется эфемеридная астрономия.
Ознакомьтесь с литературой выше. Исходники на С++ есть в книге "Астрономия на персональном компьютере" Пфлерега и Монтенбрука.
Усилие в любом случае приложить придётся, не всё там так просто.
Кстати, Вам надо только расположение планет-"точек" или же диски в нужной проекции? (Второй случай намноооооооооооооого более сложный)
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Точек более чем достаточно. Что касается точности, то думаю, даже первого варианта без возмущений хватит.

Оффлайн gasha

  • ****
  • Сообщений: 353
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Точек более чем достаточно. Что касается точности, то думаю, даже первого варианта без возмущений хватит.

Всё уже придумано до нас)) А по делу, так есть Швейцарские эфемериды. Подключаем готовую библиотеку (например, libswe.a)

Есть подробная документация.

Конечно, без знаний эфемеридной астрономии не обойтись, но процесс значительно ускорится.

Например, надо получить гелиоцентрические координаты Урана.

iflgret = swe_calc_ut(tjd_ut, p, iflag, x2, serr);

В результате работы этой функции, массиву x2 будут присвоены 6 значений:

x2[0] - Прямое восхождение
x2[1] - Склонение
x2[2] - Расстояние от Земли до объекта
x2[3] - Изменение прямого восхождения, гралусы/сутки
x2[4] - Изменение склонения, градусы/сутки
x2[5] - Изменение радиуса-вектора, астрономических единиц/сутки

tjd - Юлианская дата, время всемирное. Для эфемеридного времени используйте поправку.
p - планета

#define SE_SUN               0     
#define SE_MOON              1     
#define SE_MERCURY           2     
#define SE_VENUS             3     
#define SE_MARS              4     
#define SE_JUPITER           5     
#define SE_SATURN            6     
#define SE_URANUS            7     
#define SE_NEPTUNE           8     
#define SE_PLUTO             9       

iflag - самый интересный параметр. Позволяет указать какие координаты и в каком виде мы хотим получить, а также указать, что использовать для расчёта.

SEFLG_JPLEPH           /* use JPL ephemeris */
SEFLG_SWIEPH           /* use Swiss Ephemeris */
SEFLG_MOSEPH           /* use Moshier ephemeris */

SEFLG_HELCTR              8L     // return heliocentric position
SEFLG_TRUEPOS      16L     // return true positions, not apparent
SEFLG_XYZ                 returns x, y, z coordinates instead of longitude, latitude, and distance.

Комбинируем, iflag = SEFLG_MOSEPH|SEFLG_HELCTR|SEFLG_TRUEPOS

Такая комбинация вернёт геометрические (не учитывается аберрация, световая задержка и гравитационное искривление луча вблизи Солнца) гелиоцентрические (в центре системы координат Солнце) эклиптические (координаты в плоскости земной орбиты) координаты, отнесённые к равноденствию текущей даты (учтена прецессия и нутация). То есть вы видите, что эфемеридная матчасть не помешает)
Также здесь используются эфемериды Мошьера (на основе DE404, если не путаю). Профит в данном случае, что не нужно качать файлы с эфемеридами. Но хуже точность. Но она всё равно остаётся на очень приличном уровне. Отличие в долях секунд. Вам должно хватить её с головой.
По умолчанию суточные изменения координат НЕ вычисляются, если они вам нужны, то добавте к iflag ещё SEFLG_SPEED

Итого, для вычисления координат Урана, мы получим следующую функцию:

iflag = SEFLG_MOSEPH|SEFLG_HELCTR;
iflgret = swe_calc_ut(tjd_ut, SE_URANUS, iflag, x2, serr);

Если добавить SEFLG_XYZ, то получим прямоугольные координаты. Они удобны для получения негелицентрических координат. Например имеет гелиоцентрические координаты Меркурия и Земли (ABC и DEF соответственно. Для получения ГЕОцентрических координат Меркурия достаточно сложить гелиоцентрические координаты его и Земли.

9.         Swiss Ephemeris Functions
9.1         Swiss Ephemeris API


We give a short overview of the most important functions contained in the Swiss Ephemeris DLL. The detailed description of the programming interface is contained in the document swephprg.doc which is distributed together with the file you are reading.
Calculation of planets and stars

/* planets, moon, asteroids, lunar nodes, apogees, fictitious bodies */

swe_calc();

/* fixed stars */

swe_fixstar();   
Date and time conversion

/* delta t from Julian day number

 * Ephemeris time (ET) = Universal time (UT) + swe_deltat(UT)*/

swe_deltat();

/* Julian day number from year, month, day, hour, */

swe_date_conversion ();           

/* Julian day number from year, month, day, hour */

swe_julday();          

/* year, month, day, hour from Julian day number */

swe_revjul ();

/* UTC to Julian day number */

swe_utc_to_jd ();

/* Julian day number TT to UTC */

swe_jdet_to_utc ();

/* Julian day number UT1 to UTC */

swe_jdut1_to_utc ();

/* utc to time zone or time zone to utc*/

swe_utc_time_zone ();

/* get tidal acceleration used in swe_deltat() */

swe_get_tid_acc();

/* set tidal acceleration to be used in swe_deltat() */

swe_set_tid_acc();

Initialization, setup, and closing functions

/* set directory path of ephemeris files */

swe_set_ephe_path();


/* set name of JPL ephemeris file */

swe_set_jpl_file();

/* close Swiss Ephemeris */

swe_close();
« Последнее редактирование: 28 Мая 2013 [02:22:30] от gasha »
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн maxstatusАвтор темы

  • Новичок
  • *
  • Сообщений: 11
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от maxstatus
Спасибо большое!!!