Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.astronomy.ru/forum/index.php/topic,21684.0.html
Дата изменения: Sun Apr 10 05:02:45 2016
Дата индексирования: Sun Apr 10 05:02:45 2016
Кодировка: Windows-1251

Поисковые слова: экваториальная система координат
Положение Солнца на небе - стр. 1 - Астрономия и компьютеры

A A A A Автор Тема: Положение Солнца на небе  (Прочитано 27150 раз)

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

Rocky

  • Гость
Положение Солнца на небе
« : 14.11.2006 [16:33:52] »
Всем привет!

Я вот столкнулся с такой проблемой... Подскажите пожалуйста, как определять положение солнца на небе, зная широту и долготу точки наблюдения, а также точное время (суток/года)? Я так понимаю, что надо знать азимут (A) и высоту (h), но нигде не могу найти формул, как их вычислить...

Оффлайн Ivan Mhitarov

  • Модератор
  • *****
  • Сообщений: 4 904
  • Рейтинг: +64/-9
  • Наша служба и опасна и трудна...
    • Skype - vanmhit
  • Награды Неоднократный победитель конкурса астрофото
Re: Положение Солнца на небе
« Ответ #1 : 14.11.2006 [17:14:39] »
О. Монтенбрук, Т. Пфлегер - Астрономия с компьютером. Издавалась где-то в 2001 году.
Язык какой? И точность какая нужна?
Иван Мхитаров
Кубанский Астрономический Клуб "45".

Rocky

  • Гость
Re: Положение Солнца на небе
« Ответ #2 : 14.11.2006 [17:30:23] »
Спасибо что откликнулись!  :)

Язык любой. Лучше С++, хотя можно Basic, Pascal. А точность... Не самая высокая, полагаю средней вполне достаточно будет.

Книжку поищу, спасибо.

Оффлайн Ivan Mhitarov

  • Модератор
  • *****
  • Сообщений: 4 904
  • Рейтинг: +64/-9
  • Наша служба и опасна и трудна...
    • Skype - vanmhit
  • Награды Неоднократный победитель конкурса астрофото
Re: Положение Солнца на небе
« Ответ #3 : 14.11.2006 [17:46:08] »
Отправил на мыло набор исходников.
Иван Мхитаров
Кубанский Астрономический Клуб "45".

Rocky

  • Гость
Re: Положение Солнца на небе
« Ответ #4 : 14.11.2006 [19:34:29] »
Спасибо, письмо получил. Я ответ отправил.  :)

Оффлайн smok400

  • Новичок
  • *
  • Сообщений: 2
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #5 : 14.04.2009 [00:43:00] »
Прошу прощения за некрофилизм, но моя проблема в точности совпадает.
Прошу помощи...

Оффлайн Ivan Mhitarov

  • Модератор
  • *****
  • Сообщений: 4 904
  • Рейтинг: +64/-9
  • Наша служба и опасна и трудна...
    • Skype - vanmhit
  • Награды Неоднократный победитель конкурса астрофото
Re: Положение Солнца на небе
« Ответ #6 : 14.04.2009 [09:53:48] »
http://www.urltoy.com/astro/montenbruck/source_c.rar
Смотреть PlanPos.cpp и Sunset.cpp
Иван Мхитаров
Кубанский Астрономический Клуб "45".

Оффлайн alexfedot

  • Новичок
  • *
  • Сообщений: 3
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #7 : 14.04.2009 [19:08:05] »
http://www.urltoy.com/astro/montenbruck/source_c.rar
Смотреть PlanPos.cpp и Sunset.cpp
А можно для дураков алгоритм (формулы) выложить по которым считает программа? И если это возможно с коментариями что откуда и куда, т.к. хочется не просто тупо забить формулы в прогу, а понять принцип и логику. заранее спс :)

ЗЫ В архиве таких файлов нет.

Оффлайн Astov (Alexandr_Kozlovskiy)

  • Обозреватель
  • *****
  • Сообщений: 5 364
  • Рейтинг: +301/-11
  • Истина где-то рядом!
    • Галактика и Астрогалактика
Re: Положение Солнца на небе
« Ответ #8 : 14.04.2009 [19:50:10] »
Вот еще замечательная книга П. Даффет-Смита "Практическая астрономия с калькулятором"
http://www.astrolib.ru/library/49.html

Здесь вы найдете почти все форумулы и алгоритмы, которыми пользуется ЛА наблюдатель
Я - вояджер, путник.... Все свое ношу с собой. Шагаю от звезды к звезде, где бурлит ЖИЗНЬ ВСЕЛЕННОЙ. Здесь соединяются воедино МГНОВЕНИЕ и ВЕЧНОСТЬ. Здесь одним взглядом можно увидеть ВСЕ и НИЧЕГО.... Здесь рождаются и рушатся МИРЫ, а ЖИЗНЬ продолжается.... если живешь с ЛЮБОВЬЮ в сердце!(с)

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 221
  • Рейтинг: +162/-4
  • Мне стал не очень нравиться этот форум...
    • http://belastro.net
Re: Положение Солнца на небе
« Ответ #9 : 15.04.2009 [00:59:33] »
Цитировать
А можно для дураков алгоритм (формулы) выложить по которым считает программа? И если это возможно с коментариями что откуда и куда, т.к. хочется не просто тупо забить формулы в прогу, а понять принцип и логику. заранее спс
Идем на серевер ПРАО и качаем "О. Монтенбрук , Т. Пфлегер, "Астрономия с персональным компьютером", 1993 г." -- это предыдущее издание, последнее было в 2002 году. Книга 1993 года содержит код на Pascal, 2002 -- на C++. Но формулы одни и те же. ;) Правда опечатки есть, и много...
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн alexfedot

  • Новичок
  • *
  • Сообщений: 3
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #10 : 15.04.2009 [10:34:41] »
Большое спасибо, буду копать :) Если разберусь - выложу результаты.

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

Оффлайн smok400

  • Новичок
  • *
  • Сообщений: 2
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #11 : 15.04.2009 [12:17:11] »
И от меня спасибо! Будем разбираться.

Оффлайн alexfedot

  • Новичок
  • *
  • Сообщений: 3
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #12 : 16.04.2009 [00:36:06] »
Ура, вроде как разобрался :). Помогла книга П. Даффет-Смит "Практическая астрономия с калькулятором"  (не помню где скачал, но где-то на форуме есть ссылка). Там нет готовых кодов, зато есть формулы и алгоритмы и все подробно и доходчиво описано.

Пока в двух словах опишу свое понимание.
1. Для начала задаемся каким-то заранее известным положением солнца - эпохой, точкой отсчета так сказать (по совету из книжки я задался эпохой 1980 0,0 благо все исходные данные для этого момента в книге приведены).
2. Потом в зависимости и количества дней с момента начала эпохи вычисляется эклиптическая долгота солнца, т.е. положение солнца относительно земли на орбите Земля-Солнце. Тут как я понял принимается "гипотеза", о том что солнце вращается вокруг земли, а не наоборот.
3. Эклиптическая долгота пересчитывается в экваториальные координаты - прямое восхождение и склонение.
4. Прямое восхождение пересчитывается в часовой угол. Тут правда возникает неприятная канитель с преобразованием времен, но это не страшно, просто надо быть аккуратным.
5. И наконец экваториальные координаты (часовой угол и склонение) пересчитываются во всем понятные горизонтальные (высота и азимут).

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

Если гуру астрономии имеют что добавить к моим выкладкам ила поправить меня, буду очень благодарен.

ЗЫ. Как допишу программу - постараюсь выложить исходники и всю  методику.

Tau

  • Гость
Re: Положение Солнца на небе
« Ответ #13 : 16.04.2009 [05:15:49] »
Сколько можно изобретать велосипеды?  ;D

Дано: координаты наблюдателя - долгота Lon, геодезическая широта Lat.
Момент наблюдения - год Year, месяц Mon, день Day, всемирное время в часах UT.

Найти: Азимут Az, высоту над горизонтом H

1.Вычисление модифицированной  юлианской даты на начало суток

 Море готовых процедур на всех языках.
Например,
 Var1 = 10000 * Year + 100 * Mon + Day
 Если Mon <= 2    Mon = Mon + 12, Year = Year - 1
 Если Var1 <= 15821004, то  Var2 = -2 + (Year + 4716) \ 4 - 1179
 Иначе  Var2 = Year \ 400 - Year \ 100 + Year \ 4
 Var3 = 365 * Year - 679004
MD = Var3 + Var2 + 306001 * (Mon + 1) \ 10000 + Day
\ - деление нацело

2. Вычисление местного звездного времени

T0 = (MD - 51544.5) / 36525 ' мод.юл.дата на начало суток в юлианских столетиях
a1 = 24110.54841
a2 = 8640184.812
a3 = 0.093104
a4 = 0.0000062
S0 = a1 + a2 * T0 + a3 * T0 ^ 2 - a4 * T0 ^ 3 ' звездное время в Гринвиче на начало суток в секундах
Nsec =UT * 3600 ' количество секунд, прошедших  от начала суток до момента наблюдения
UT - всемирное время в часах, момент расчета
NsecS = Nsec * 366.2422 / 365.2422 ' количество звездных секунд
SG = (S0 + NsecS) /3600 * 15 ' гринвическое среднее звездное время в градусах
ST = SG + Lon ' местное звездное время
Lon - долгота наблюдателя

3. Вычисление эклиптических координат Солнца

T0 = (MD - 51544.5) / 36525 ' мод.юл.дата на начало суток в юлианских столетиях
UT - время в часах от полуночи даты
M = 357.528 + 35999.05 * T0 + 0.04107 * UT ' средняя аномалия
L0 = 280.46 + 36000.772 * T0 + 0.04107 * UT
L = L0 + (1.915 - 0.0048 * T0) * Sin(M) + 0.02 * Sin(2 *M)  ' долгота Солнца

X = Cos(L)  ' вектор
Y = Sin(L)   '  в эклиптической
Z = 0         '    системе координат

4.Координаты Cолнца в прямоугольной экваториальной системе координат

 Eps = 23.439281   ' наклон эклиптики к экватору
 X' =  X                                    '  вектор
 Y' = Y * Cos(Eps) - Z * Sin(Eps) '   в экваториальной
 Z' = Y * Sin(Eps) + Z * Cos(Eps) '    системе координат

5. Экваториальные геоцентрические координаты Солнца

tg (Ra) = Y' /X'
tg (Dec)= Z' /  Sqrt(X' ^ 2 + Y' ^ 2)

Можно и топоцентрические вычислить, но разница несущественна - несколько угловых секунд.

6. Азимутальные координаты Солнца

ST - местное звездное время
Lat - широта

Th = ST - Ra  ' часовой угол
Cos (z)  = Sin(Lat) * Sin(Dec) + Cos(Lat) * Cos(Dec) * Cos(Th) ' косинус зенитного угла
H = 90 -z
tg (Az) = Sin(Th) * Cos(Dec) * Cos(Lat) / (sin(H) * Sin(Lat) - Sin(Dec))

Проверка геоцентрических координат - сравнение с численными эфемеридами DE200 в течение 2009 года.

Точность лучше 30 угловых секунд, что для Солнца вполне достаточно, не точечный же объект.

« Последнее редактирование: 19.06.2009 [17:04:19] от Tau »

Оффлайн Астроном на минуту

  • Новичок
  • *
  • Сообщений: 1
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #14 : 23.05.2009 [21:21:19] »
Здравствуйте!  :) Извините,  но я не могу понять - что это за неизвестная величина у Вас в теле программы, tint называется? Поясните, пожалуйста!!!

Tau

  • Гость
Re: Положение Солнца на небе
« Ответ #15 : 23.05.2009 [22:27:22] »
Сорри, это целая часть юлианской даты MD.
tint = int(MD)

Оффлайн nopnop

  • Новичок
  • *
  • Сообщений: 6
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #16 : 19.06.2009 [16:22:04] »
Добрый день всем.
Вопрос к Tau. Я попробовал по изложенной Вами методике просчитать Nsec = (MD - int(MD)) * 86400 ' количество секунд, прошедших  от начала суток до момента наблюдения. MD у меня получилось равным 55009. Вы пишите, что MD = Var3 + Var2 + 306001 * (Mon + 1) \ 10000 + Day, где \ -деление нацело, т.е., если я правильно понял, то остатка быть не должно. Но MD=55009, что явно больше int (32768). В таком случае каким по Вашему должен быть результат. Спасибо.

Tau

  • Гость
Re: Положение Солнца на небе
« Ответ #17 : 19.06.2009 [17:11:05] »
MD как Double. Или Long. Но никак не Integer.
55009 и должно быть. Если вы на 27 июня считаете.
Строку вычисления Nsec поправила (жирным шрифтом). Та строка была из другой сказки. Сорри.
Может вам листинг всех переменных для какого-нибудь примера дать?

Оффлайн nopnop

  • Новичок
  • *
  • Сообщений: 6
  • Рейтинг: +0/-0
Re: Положение Солнца на небе
« Ответ #18 : 19.06.2009 [17:22:37] »
Дайте, пожалуйста. Буду очень благодарен.

Tau

  • Гость
Re: Положение Солнца на небе
« Ответ #19 : 19.06.2009 [17:48:04] »
Lon = 41.43147  долгота
Lat = 43.64986  широта
Year = 2009, Mon = 6, Day = 19, UT = 14.0

1.Вычисление модифицированной юлианской даты на начало суток
var1 =   20090619
var2 =   487
var3 =   54281
MD =    55001

2. Вычисление местного звездного времени
Входные параметры: MD = 55001, UT = 14.0
T0 =   9.46338124572211E-02
S0 = 841764.178338331
Nsec =  50400
NsecS =  50537.9906264939
SG =  117.925704020104
ST = 159.357174020104

3. Вычисление эклиптических координат Солнца
Входные параметры: MD = 55001, UT = 14.0
T0=    9.46338124572211E-02
M =   164.830326338125
L0=   3687.92528576318
L =   88.4161785572869 ' приведение угла в диапазон 0-360 градусов
X =    2.76393789023711E-02
Y =    0.999617959389432
Z =    0

4. Координаты Cолнца в прямоугольной экваториальной системе координат
X' =   2.76393789023711E-02
Y' =   0.917131616862311
Z' =    0.397625026985744

5.Экваториальные геоцентрические координаты Солнца
Ra =           88.2738131051079            5h 53m  5.715145 sec
Dec =          23.4297911659417           + 23g 25m 47.2482 sec

6.Азимутальные координаты Солнца
Th =   71.0833609149958
Az =  95.4220991915847
H =  29.3205618652633