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


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

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

Rocky

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

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

Оффлайн Ivan Mhitarov

  • Модератор
  • *****
  • Сообщений: 6 223
  • Благодарностей: 108
  • Награды Неоднократный победитель конкурса астрофото
    • Сообщения от Ivan Mhitarov
Re: Положение Солнца на небе
« Ответ #1 : 14 Ноя 2006 [18:14:39] »
О. Монтенбрук, Т. Пфлегер - Астрономия с компьютером. Издавалась где-то в 2001 году.
Язык какой? И точность какая нужна?
Иван Мхитаров
Кубанский Астрономический Клуб "45".

Rocky

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

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

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

Оффлайн Ivan Mhitarov

  • Модератор
  • *****
  • Сообщений: 6 223
  • Благодарностей: 108
  • Награды Неоднократный победитель конкурса астрофото
    • Сообщения от Ivan Mhitarov
Re: Положение Солнца на небе
« Ответ #3 : 14 Ноя 2006 [18:46:08] »
Отправил на мыло набор исходников.
Иван Мхитаров
Кубанский Астрономический Клуб "45".

Rocky

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

Оффлайн smok400

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

Оффлайн Ivan Mhitarov

  • Модератор
  • *****
  • Сообщений: 6 223
  • Благодарностей: 108
  • Награды Неоднократный победитель конкурса астрофото
    • Сообщения от Ivan Mhitarov
Re: Положение Солнца на небе
« Ответ #6 : 14 Апр 2009 [10:53:48] »
http://www.urltoy.com/astro/montenbruck/source_c.rar
Смотреть PlanPos.cpp и Sunset.cpp
Иван Мхитаров
Кубанский Астрономический Клуб "45".

Оффлайн alexfedot

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

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

Оффлайн Астро

  • Обозреватель
  • *****
  • Сообщений: 8 101
  • Благодарностей: 776
  • Истина где-то рядом!
    • Сообщения от Астро
    • Галактика и Астрогалактика
Re: Положение Солнца на небе
« Ответ #8 : 14 Апр 2009 [20:50:10] »
Вот еще замечательная книга П. Даффет-Смита "Практическая астрономия с калькулятором"
http://www.astrolib.ru/library/49.html

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

Оффлайн 1212Lupus

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


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

Оффлайн alexfedot

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

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

Оффлайн smok400

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

Оффлайн alexfedot

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

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

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

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

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

Tau

  • Гость
Re: Положение Солнца на небе
« Ответ #13 : 16 Апр 2009 [06: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 Июн 2009 [18:04:19] от Tau »

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

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

Tau

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

Оффлайн nopnop

  • Новичок
  • *
  • Сообщений: 6
  • Благодарностей: 0
    • Сообщения от nopnop
Re: Положение Солнца на небе
« Ответ #16 : 19 Июн 2009 [17: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 Июн 2009 [18:11:05] »
MD как Double. Или Long. Но никак не Integer.
55009 и должно быть. Если вы на 27 июня считаете.
Строку вычисления Nsec поправила (жирным шрифтом). Та строка была из другой сказки. Сорри.
Может вам листинг всех переменных для какого-нибудь примера дать?

Оффлайн nopnop

  • Новичок
  • *
  • Сообщений: 6
  • Благодарностей: 0
    • Сообщения от nopnop
Re: Положение Солнца на небе
« Ответ #18 : 19 Июн 2009 [18:22:37] »
Дайте, пожалуйста. Буду очень благодарен.

Tau

  • Гость
Re: Положение Солнца на небе
« Ответ #19 : 19 Июн 2009 [18: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