Телескопы покупают здесь


A A A A Автор Тема: Вычисление координат планет  (Прочитано 2345 раз)

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

Оффлайн Андрей-САвтор темы

  • Новичок
  • *
  • Сообщений: 7
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Андрей-С
Вычисление координат планет
« : 03 Мая 2016 [22:56:59] »
Здравствуйте.
Помогите пожалуйста.
Я не астроном - всего лишь программист...
Нужно вычислять координаты небесных тел (экваториальные). Пусть для начала это будут координаты для основных планет.

Сам справился только с юлианской датой (немодифицированной) и часовым углом.
А дальше - тёмный лес...

В идеале - хочется иметь функцию:
на входе дату/время и название планеты (с какими-то начальными данными видимо).
на выходе - координаты Ra и Dec.

Поскольку я не астроном, то не хотелось бы лезть в дебри.
Тем более, что за столько лет это должна быть до безобразия стандартная задача, решённая много раз.
Хорошо бы рабочую функцию или их набор, на любом языке (сейчас больше на PHP и Perl пишу, но и другие ещё не до конца забыл).

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

_________________________________________________ ________
ЗЫ:
О точности пока помолчу (хотя и есть что сказать) - хоть что-нибудь-бы заработало...

Оффлайн krussh

  • *****
  • Сообщений: 2 460
  • Благодарностей: 112
  • http://www.soulfulbits.com/
    • Сообщения от krussh

Оффлайн Андрей-САвтор темы

  • Новичок
  • *
  • Сообщений: 7
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Андрей-С
Re: Вычисление координат планет
« Ответ #2 : 04 Мая 2016 [07:42:41] »
Спасибо :)
Попробую разобраться...
Но, я тут подумал получше: если у кого-то алгоритм расчёта есть, который можно напрямую забить в программу - это было бы лучше.

Оффлайн MOHAX

  • *****
  • Сообщений: 791
  • Благодарностей: 35
  • Mi casa es la Vía Láctea
    • Сообщения от MOHAX
Re: Вычисление координат планет
« Ответ #3 : 04 Мая 2016 [08:04:37] »
А разве исходники не есть готовая реализация алгоритма расчета?

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Вычисление координат планет
« Ответ #4 : 04 Мая 2016 [08:24:43] »
Вам просто реализовать или забыть, или же понимать тоже хочется?
В первом случае - взять библиотеку, в промежуточном - взять исходники, во втором - почитать книги.
Выберите предпочтительный вариант.
А ещё надо определиться с тем, какими точностями можно ограничиться.
У природы нет плохой погоды, у неё просто на нас аллергия.

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

Оффлайн Андрей-САвтор темы

  • Новичок
  • *
  • Сообщений: 7
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Андрей-С
Re: Вычисление координат планет
« Ответ #5 : 04 Мая 2016 [15:48:49] »
По-большому счёту - да, реализовать и забыть.

Очень прошу простить за многословность, но я всё-же напишу подробнее.

Переспрашивая во-второй раз, я имел ввиду единый рабочий кусок исходника, в который надо только подставить дату и эфемериды для небесного тела. И всё.
(ну, может быть ещё задать эпоху J2000 или B1950, долготу с широтой места наблюдения и тому подобное).
Перевести на другой язык программирования и причесать единый рабочий кусок исходника - это за работу не считается :)

Надо сделать так, чтобы легко было добавлять новые небесные тела. Добавил новое тело с его эфемеридами - получил готовые координаты тела. Всё.
В приведённой ссылке приведены примеры расчёта основных планет... Это замечательно, но что народ будет делать с какой-нибудь Церерой или Маке-Маке? С наскока я не разглядел, где вставляются эфемериды произвольного тела - как-то непрозрачно это там... (каюсь - возможно не заметил, если ткнёте носом - буду признателен...)
Я так понимаю, что модель должна быть стандартная.
Ну или несколько моделей - лишь бы с чёткими критериями применения (не знаю - деление на внешние и внутренние планеты, например...)

Да, по приведённой ссылке алгоритм есть в исходниках.
Но, этот алгоритм размазан по многим файлам - в каждом файле стоят ссылки на другие файлы с соответствующими кусками алгоритма и так далее по цепочкам. Надо аккуратно ползти на брюхе по всем строкам, вырезать и склеивать + наверняка ставить условия вместо некоторых параметров... Кто пытался ковырять такие проекты - знает, что это равносильно чтению учебника и написанию кода с нуля. (увы, это не моя основная работа - не могу позволить себе такой роскоши...)
И опять же - эфемерид я например там не нашёл - ну и что с такими белыми пятнами делать?
Поэтому, просто "дёрнуть библиотеку" с наскока не получится - все функции очень мелкие и расчитаны на того, кто "в теме" (как и во всех универсальных проектах :-[ ). Если знаешь небесную механику - из этого мелкого конструктора можно собрать что угодно, но у меня не тот случай...

Впрочем, возможно, я просто не докопался и там всё проще, чем я вчера увидел.

К слову: раскопал "инструментарий NASA для расчёта небесных тел" для MathLab. Если удалось бы его поставить с бубном и плясками, и относиться к нему как к "чёрному ящику" - вполне себе вариант, тем более что там наверняка хорошая база по объектам CC.
Но, сам MathLab для Линукса - платный  ;D Вдобавок непредсказуемо, сколько времени угроблю на установку - от часа до "не поставилось, только время потерял"... Да и некрасиво - модель наверняка небольшая, как я себе представляю, - нехорошо такого монстра из-за неё ставить...

Точность - до десятых долей секунд наверное... Просто, если координаты звёзд даны до секунд, то нет смысла занижать точность других тел (десятые доли секунд нужны просто чтобы округлить правильно и в итоге получить правильные значения секунд).
Если вопрос о точности был о том, что расчитывать -  гео- или топоцентрические координаты, то я не знаю какие из этих систем координат обеспечит указанную точность и надо ли использовать координаты места наблюдения - вам виднее...

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Вычисление координат планет
« Ответ #6 : 04 Мая 2016 [15:52:49] »
Т. Пфлерег, О. Монтенбрук - Астрономия на персональном компьютере.
Там все исходники на C++, эта задача точно решается.


И чем не нравится это решение?
http://libnova.sourceforge.net/
У природы нет плохой погоды, у неё просто на нас аллергия.

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

Оффлайн Андрей-САвтор темы

  • Новичок
  • *
  • Сообщений: 7
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Андрей-С
Re: Вычисление координат планет
« Ответ #7 : 04 Мая 2016 [15:54:24] »
И чем не нравится это решение?
Цитата: krussh от Сегодня в 06:30:10
http://libnova.sourceforge.net/
Хм, вообще-то только что, выше, я написал чем...

Уточнение: говоря "эфемериды", я имел ввиду набор неких стандартных данных для небесного тела, по которым можно вычислить его орбиту и затем расчитать координаты на какую-то дату/время.
(я много чего открыл для себя в астрономии за несколько дней, но много в чём ещё "плаваю" и выражаюсь не точно  :( )
« Последнее редактирование: 04 Мая 2016 [16:11:22] от Андрей-С »

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Вычисление координат планет
« Ответ #8 : 04 Мая 2016 [21:57:34] »
Т. Пфлерег, О. Монтенбрук - Астрономия на персональном компьютере.
У природы нет плохой погоды, у неё просто на нас аллергия.

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

Оффлайн MOHAX

  • *****
  • Сообщений: 791
  • Благодарностей: 35
  • Mi casa es la Vía Láctea
    • Сообщения от MOHAX
Re: Вычисление координат планет
« Ответ #9 : 05 Мая 2016 [07:17:59] »
Пфлерег
Пфлегер
Цитата
Надо сделать так, чтобы легко было добавлять новые небесные тела.
Для этого существуют постоянно обновляемые списки астероидов и комет с элементами их орбит (astorb.dat и mpcorb.dat). Для планет существует VSOP87, для Луны — ELP82.
Цитата
Добавил новое тело с его эфемеридами - получил готовые координаты тела.
Не с эфемеридами, а с элементами орбиты. Эфемерида — это и есть таблица с полученными экваториальными координатами небесного тела за период времени.
Цитата
В приведённой ссылке приведены примеры расчёта основных планет. Это замечательно, но что народ будет делать с какой-нибудь Церерой или Маке-Маке?
В примерах есть asteroid.c, по ним и рассчитывайте
Цитата
С наскока я не разглядел, где вставляются эфемеридыэлементы орбиты произвольного тела - как-то непрозрачно это там
Элементы орбиты — это входные данные. Как реализовать их "вставку" — задача программиста.
Дальше лень комментить :)

Вы определитесь с языком. Для C вам ничего не придется переписывать, libnova — готовая либа. Для Perl существует некий модуль Astro::Coords, однако не юзал и не знаю, какой алгоритм расчета лежит в его основе. На PHP не знаю библиотек, есть только частично переведенная на PHP либнова для своих нужд.
« Последнее редактирование: 05 Мая 2016 [07:47:45] от MOHAX »

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Вычисление координат планет
« Ответ #10 : 05 Мая 2016 [08:11:15] »
Опечатался, извините ::)
У природы нет плохой погоды, у неё просто на нас аллергия.

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

Оффлайн Андрей-САвтор темы

  • Новичок
  • *
  • Сообщений: 7
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Андрей-С
Re: Вычисление координат планет
« Ответ #11 : 05 Мая 2016 [15:45:22] »
Благодарю, пока этого достаточно.
Насколько я понял, готового нет и надо плясать от печки. Жаль - думал, что это типовая задача...
Буду разбираться...

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Вычисление координат планет
« Ответ #12 : 05 Мая 2016 [15:56:11] »
Это не типовая задача, потому что это размен точности на производительность, да и способы работы с результатами сильно разные.
У природы нет плохой погоды, у неё просто на нас аллергия.

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

Оффлайн Андрей-САвтор темы

  • Новичок
  • *
  • Сообщений: 7
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Андрей-С
Re: Вычисление координат планет
« Ответ #13 : 05 Мая 2016 [16:07:28] »
Вы имеете ввиду, что орбиты, расчитанные по формулам менее точны, чем расчёты на основе ежегодных наблюдений?
Я просто не разбираюсь в этом - могу только догадываться, нахватавшись верхушек, пока с этим возился...
Какой способ в таком случае даёт "точные" координаты?

Или Вы что-то другое противопоставляете?

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Re: Вычисление координат планет
« Ответ #14 : 05 Мая 2016 [16:44:18] »
Нет, я говорю о том, что в зависимости от требуемой точности зависит вычислительная сложность, начиная от приближения для Кеплеровых орбит, через упрощённые теории движения с введением возмущений орбит, и заканчивая численным интегрированием положений в разных системах счёта времени.
У природы нет плохой погоды, у неё просто на нас аллергия.

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

Оффлайн Андрей-САвтор темы

  • Новичок
  • *
  • Сообщений: 7
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от Андрей-С
Re: Вычисление координат планет
« Ответ #15 : 05 Мая 2016 [17:37:40] »
Понятно: разные задачи порождают разные модели из-за разных требований к точности...

Оффлайн vbcfceg

  • Новичок
  • *
  • Сообщений: 6
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от vbcfceg
Re: Вычисление координат планет
« Ответ #16 : 22 Апр 2018 [02:28:01] »
Здравствуйте! Прошу помощи!
Я не программист и не астроном, но мне нужно для учебного проекта написать вычислительный алгоритм расчёта экваториальных координат Солнца и больших планет, как в Морском Астрономическом Ежегоднике (так же и для т. Овна).
Может у кого есть такие алгоритмы в доступном виде?
Так же может кто подсказать как по полиномам Чебышева вычисляются бариц. положение Земли и скорость, а также бариц. положения планеты и Солнца, отнесенные к экватору и равноденствию J2000?

Оффлайн Toth

  • *****
  • Сообщений: 2 581
  • Благодарностей: 174
    • Сообщения от Toth
Re: Вычисление координат планет
« Ответ #17 : 22 Апр 2018 [07:09:24] »
как по полиномам Чебышева вычисляются бариц. положение Земли и скорость, а также бариц. положения планеты и Солнца, отнесенные к экватору и равноденствию J2000?
Для этого вам кто-то должен дать коэффициенты для этих полиномов.
Например, JPL NASA. Про их эфемериды - есть тема. Эфемериды DE-405.

Оффлайн vbcfceg

  • Новичок
  • *
  • Сообщений: 6
  • Благодарностей: 0
  • Мне нравится этот форум!
    • Сообщения от vbcfceg
Re: Вычисление координат планет
« Ответ #18 : 23 Апр 2018 [18:10:39] »
Для этого вам кто-то должен дать коэффициенты для этих полиномов.
А есть вообще способ расчёта без таких дополнительных данных? Где можно найти формулы, если это возможно?

Оффлайн Toth

  • *****
  • Сообщений: 2 581
  • Благодарностей: 174
    • Сообщения от Toth
Re: Вычисление координат планет
« Ответ #19 : 23 Апр 2018 [18:34:39] »
А есть вообще способ расчёта без таких дополнительных данных? Где можно найти формулы, если это возможно?
А что конкретно нужно?
Если координаты, как в ежегоднике - то это видимые геоцентрические координаты.
Или вам нужны геометрические координаты? Потому что ,если  барицентрические - это обычно для геометрических координат тел. Хотя, можно преобразовать видимые<-->геометрические. Это называется редукция.
И какая точность нужна ?