A A A A Автор Тема: Перевод координат из Первой экваториальной системы координат в геоцентрические  (Прочитано 1637 раз)

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

Оффлайн Upsilon

  • *****
  • Сообщений: 518
  • Благодарностей: 245
    • Все сообщения темы
Точно из первой экваториальной, а не из второй? Непонятно в каких задачах нужно такое преобразование.
Широту геоцентрическую или геодезическую?

Дано: часовой угол t и склонение DEC
Часовой угол должен быть задан для пункта с долготой Long, т.к I-экваториальная система координат является наблюдательной системой координат, она должна быть привязана к какому-то пункту.

Искомая долгота L:
tg(L) = sin(Long-t)/cos(Long-t)
Т.е. L = atn2(sin(Long-t), cos(Long-t))
Геоцентрическая широта F:
F =  DEC
« Последнее редактирование: 11 Дек 2016 [18:04:13] от Upsilon »

Оффлайн Upsilon

  • *****
  • Сообщений: 518
  • Благодарностей: 245
    • Все сообщения темы
Ооо, наша любимая тема, которая была миллион  раз. Если в разделе форума "поиск" задать поиск по "координаты подспутниковой точки", то можно встретить много чудесного.

Deimos, вот у меня есть постоянная часть издания 1962 г., там нету. Какого года та постоянная часть, на которую вы постоянно ссылаетесь? :)

Для топикстартера.
Положение ИСЗ на орбите (вектора положения и скорости) обычно описываются в двух системах координатах: в инерциальной (II-экваториальная) или гринвической (системе координат Земли).
У вас явно первый случай, раз фигурирует слово "экваториальная".
Вектор скорости не понадобится, только вектор положения (x,y,z).
Сначала нужно перевести вектор положения в гринвическую систему, проще всего повернуть его вокруг оси Z на угол равный звездному гринвическому времени S в заданный момент (которому соответствует вектор положения ИСЗ):
Xg = x*cos(S) +  y*sin(S)
Yg = -x*sin(S) + y*cos(S)
Zg= z
(Xg, Yg, Zg) - вектор ИСЗ в гринвической системе координат.
Гринвическое звездное время - это функция от юлианской даты. Гринвическое звездное время постоянно меняется. Вам нужно вычислить юлианскую дату момента времени, на который задано положение ИСЗ, а затем вычислить зв.время. Функции вычисления юлианской даты и зв.времени в интернете уже на всех языках можно встретить.

Затем разложить вектор ИСЗ в гринвической системе координат (ECEF) на два угла и высоту над эллипсоидом hell.
Картинка ниже - алгоритм.
Там rI, rJ, rK - вектор в гринвической системе (ECEF)
Геодезическая широта вычисляется итерационно, первое приближение - геоцентрическая широта (дельта).
Используемые постоянные (вместо значка Земли пишу о):
Ro -экваториальный радиус Земли 6378.155 км
eo - эксцентриситет Земли 0.081819221456

Оффлайн Upsilon

  • *****
  • Сообщений: 518
  • Благодарностей: 245
    • Все сообщения темы
1980 :)
Гуглится обычно ссылка именно на неё в первой же строчке выдачи гугла :)
Спасибо :). От издания 1962 г. не сильно отличается. Решить поставленную задачу после прочтения АК невозможно, там нет нужной информации.

Интересно же понять, в каких таких бурсах программистов с завидной регулярностью мучают координатами ПСТ.
Каждый имеет право на анонимность  8).

Оффлайн Upsilon

  • *****
  • Сообщений: 518
  • Благодарностей: 245
    • Все сообщения темы
А смысл говорить? Ты вот согласен пропечатать свое имя-фамилие, место работы и на юзерпик еще портрет повесить? Вот и топикстартер имеет право не разглашать ВУЗ, а то придет суровый препод и печаль случится.
Хотя.. если это курсовик, то научный руководитель должен задать вектор направления движения студенту. Как сильно изменилась педагогика в 21 веке, однако.

Сейчас придет Deimos и за оффтоп случится у нас печаль.

Оффлайн Upsilon

  • *****
  • Сообщений: 518
  • Благодарностей: 245
    • Все сообщения темы
Смысл в том, что где-то есть ВУЗ (либо ВУЗы), где программистов дрючат довольно специфическими задачками
Хм.. воспитать бойца с юных лет в нужном направлении и потом послать на передовую? Фантастика, сэр.

Оффлайн Upsilon

  • *****
  • Сообщений: 518
  • Благодарностей: 245
    • Все сообщения темы
Примеры для отладки:

13.12.2016  00:02:24.0 UT      JD = 2457735.50166667
r (km) =      -4316.1       -4452.0       -2747.9
Sideral time (deg) =        82.71229
r_grin (km) =               -4963.5       3716.5        -2747.9
L, F (deg) =  143.18        -24.03

13.12.2016  00:22:24.0 UT      JD =  2457735.51555556
r (km) =      943.7         -5485.2       3868.7
Sideral time (deg) =        87.72598
r_grin (km) =               -5443.5       -1160.6       3868.7
L, F (deg) =  192.04        34.97

13.12.2016  00:42:24.0 UT      JD =  2457735.52944444
r (km) =      4721.8        2126.2        4379.9
Sideral time (deg) =        92.73967
r_grin (km) =               1898.1        -4818.0       4379.9
L, F (deg) =  291.50        40.40

13.12.2016  01:02:24.0 UT      JD =   2457735.54333333
r (km) =      1073.8        6393.5        -2013.9
Sideral time (deg) =        97.75336
r_grin (km) =               6190.2        -1926.5       -2013.9
L, F (deg) =  342.71        -17.36

13.12.2016  01:22:24.0 UT      JD =   2457735.55722222
r (km) =      -4266.2       613.0         -5240.2
Sideral time (deg) =        102.76705
r_grin (km) =               1540.7        4025.2        -5240.2
L, F (deg) =  69.06         -50.74

Оффлайн Upsilon

  • *****
  • Сообщений: 518
  • Благодарностей: 245
    • Все сообщения темы
Если интересно могу скинуть
А вот код публиковать не стоит. Оставьте долю мучений тем, кто будет решать эту задачку в будущем. :)