A A A A Автор Тема: Как расчитываются  (Прочитано 25825 раз)

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

AN1440

  • Гость
Как расчитываются
« : 09.06.2002 [18:10:20] »
Для чисто технических целей (управление освещением) требуется в программу включить расчет моментов восхода/захода солнца. Однако все методики, с которыми удалось познакомиться, начинаются со слов: "Берем из таблицы...". Для компьютерной программы это малоприемлемо, более того, таблицы на каждый год другие.
Может кто-нибудь подсказать АНАЛИТИЧЕСКУЮ формулу?

Оффлайн Karen

  • Модератор
  • *****
  • Сообщений: 5 501
  • Рейтинг: +222/-24
  • Янг, Карен
    • Награды
Re:Как расчитываются
« Ответ #1 : 10.06.2002 [06:22:47] »
Уравнение несложное, а надо иметь склонение солнце (от таблицы :(  или исползуете уравнения на конец сообщения).

Вот уравнение:
cos(h) = -tan(фи)tan(дельта)

фи = ваше широта
дельта = склонение солнце
h = часовой угол (складывайте к, или вычитайте от 12ч00м). Это дает или восход или заход солнца в местном времени. Вам надо изменить на часовое время (московское время и т.д.). Для сведения, видите: http://www.astronomy.ru/forum/index.php?board=6&action=display&threadid=924&start=20           (предпоследнее сообщение)

Вычисление склонения солнца (от Astronomical Almanac 1997 стр. C24—алманак скажет что эти «формулы низкого точности»--+/-0.01 градусов.)

n = JD – 2451545.0 (= число дней с J2000.0).  Julian Day (JD) на 10 июня 2002г. в 0ч00 UT: 2452435.5
L = 280.472 + 0.9856474n    (средняя долгота соднца—исправлённая за аберрацию)
g = 357.528 + 0.9856003n     (средняя аномалия)

Вычитайте 360x (x = целое число) чтобы L и g будут между 0 и 360 градусов.

Ламбда = L + 1.915sin g + 0.020 sin 2g    (эклиптическая долгота)
Эпсилон = 23.439 – 0.0000004n           (наклонность эклиптики)
Дельта = sin-1(sin(эпсилон)sin(ламбла))      (склонение солнце—то что вам нужно!)

Вам желаю успеха!

an1440

  • Гость
Re:Как расчитываются
« Ответ #2 : 11.06.2002 [13:56:53] »

Уравнение несложное, а надо иметь склонение солнце (от таблицы :(  или исползуете уравнения на конец сообщения).

Вот уравне......


Большое спасибо, Karen, за столь подробный ответ.
Перевел все в "компьютерную" форму и теперь испытываю.
Для сравнения использую таблицу эфемерид на 1992 год для широта=+58 долгота=0 ("Астрономический календарь ВАГО").
Результаты пока не очень утешительные - расхождение по восход/заход до 15 минут (причем по заходу гораздо больше, чем по восходу(?)), по склонению - до десятков секунд. Пытаюсь разобраться дальше.
Уравнение времени надо добавлять, или оно как-то учтено в понятии "средняя" долгота?

Сегодня утром у нас (широта +49 долгота +137) наблюдалось частное (процентов 8) солнечное затмение. Возможно, "хвост" его дотянулся вчера вечером  :) и до ваших краев ?

an1440

  • Гость
Re:Как расчитываются
« Ответ #3 : 11.06.2002 [17:12:19] »
Цитировать (выделенное)

Уравнение времени надо добавлять, или оно как-то учтено в понятии "средняя" долгота?


Уже сам понял, что не то сказал: это просто долгота по состоянию на JD2451545,0.

Цитировать (выделенное)

Возможно, "хвост" его дотянулся вчера вечером   и до ваших краев ?


О-ооо-о! Да там не хвост! - по TV сказали.

Оффлайн Karen

  • Модератор
  • *****
  • Сообщений: 5 501
  • Рейтинг: +222/-24
  • Янг, Карен
    • Награды
Re:Как расчитываются
« Ответ #4 : 12.06.2002 [07:37:49] »
"Уравнение времени надо добавлять, или оно как-то учтено в понятии "средняя" долгота?"

Да, надо добавлять уравнение времени ( oops!). Astronomical Almanac даёт формулу:
Е, в минутах времени = (L - альфа), в градусов, помноженное на 4.

альфа (прямое восхождение) = ламбда - f t sin(2 ламбда) + (f/2) t2 sin (4 ламбда)
где f = 180/пи, и  t = tan2(эпсилон/2)

Что касается затмения: мы с учениками наблюдали прекрасное 71% затмение.  :)  Это было последное видно с Южной Калифорнии до 2012г.  :'(

an1440

  • Гость
Re:Как расчитываются
« Ответ #5 : 12.06.2002 [14:27:06] »
[Для Karen]
Цитировать (выделенное)
   
Что касается затмения: мы с учениками наблюдали прекрасное 71% затмение :). Это было последное видно с Южной Калифорнии до 2012г :(  .

Сервер без спросу заменил в моем сообщении 8%  на "рожу",  i.e., у нас было (визуально) процентов 5-8. При такой фазе, наверное, мало кто и заметил, хотя было облачно, и смотреть можно было невооруженным глазом. Но нас Бог миловал - 20 с небольшим лет назад мы здесь видели даже 95% !!!!
Цитировать (выделенное)

:уравнение времени (oops!). Astronomical Almanac даёт формулу:
Е, в минутах времени = (L - альфа), в градусов, помноженное на 4.

У нас в "Астрономическом календаре" для этого предлагается формула:
E=7,7*sin(L+78)-9,5*sin(2*L), где L - средняя долгота истинного солнца в градусах.
(предполагает ошибку до 0,1-0,2 минуты).
-------------------------------------
Значения вычисленного склонения почти совпадают с табличными :), но восходы/заходы дают расхождение около 18 минут :(. Разбираюсь дальше. Компьютерщики говорят: Надо найти ошибку и заменить ее на другую :)
-------------------------------------
Написание "1.915sin g" говорит о том, что Вы не занимаетесь программированием, так же как и рекомендация "Вычитайте 360x чтобы L и g будут между 0 и 360 градусов". Но "tan2(эпсилон/2)" - заставляет думать об обратном. Как на самом деле?
-------------------------------------
Вы прекрасно владеете русским языком, хотя некоторые тонкости указывают на то, что он не является для Вас родным. Откуда такое знание? :)

av

  • Гость
Re:Как расчитываются
« Ответ #6 : 12.06.2002 [16:17:49] »
Небольшое уточнение. То, что Карен назвала «уравнением времени» на самом деле является приближенным переходом от долготы Солнца к прямому восхождению.

Уравнения времени нигде учитывать не нужно. Фактически было сделано следующее. Для момента всемирного времени была найдена долгота среднего Солнца, то есть такого фиктивного Солнца, которое равномерно движется по эклиптике. Затем был учтен факт движения Солнца не по кругу, а по эллипсу (члены с g и 2g). Аналогично вычисляется и «уравнение времени», но оно требуется, если вычисляем истинное солнечное время по среднему. Тут же мы непосредственно нашли истинную долготу Солнца.

Затем осуществлен переход от эклиптических координат к экваториальным (нашли склонение Солнца). И все! Больше ничего не требуется. Все это в сообщении №1 от Карен.

Только нужно учесть еще один момент. Восходом или заходом Солнца называется пересечение линии горизонта верхним краем Солнца. С учетом того, что Солнце имеет размер около 16 минут дуги, а рефракция «приподнимает» Солнце над горизонтом в среднем на 35 минут дуги, получаем формулу для вычисления часового угла пересечения верхним краем Солнца круга с зенитным расстоянием (90 град + 16 + 35 минут дуги).

Пусть Fi и Decl – широта места и склонение Солнца.

Cos t = (Cos (90.85 град) – Sin (Fi)  Sin (Decl) ) / ( Cos (Fi) Cos (Decl)  )
Можно сразу подставить Cos 90.85 = -0.0148.

Следует заметить, что такой приближенный расчет координат Солнца может давать ошибку времени восхода и захода, доходящую до 1 минуты времени, но точнее в данном случае и не требуется, так как мы все равно заранее точно не знаем значение рефракции у горизонта, а взяли среднее значение.

an1440

  • Гость
Re:Как расчитываются
« Ответ #7 : 13.06.2002 [02:25:18] »
Да. Именно до этого я уже успел докопаться сам и сделал расчет с учетом рефракции и радиуса солнца. И получил результаты , сходящиеся с таблицей из "Астрономического календаря " за 1992 и 1983 годы с точностью до минуты. (Какой нехороший человек сделал так, что более современного теперь не достать?!!!).
Однако, уравнение времени для этого все-таки приходится добавлять.(?!), иначе результат отличается от табличного именно на его величину.

Чтобы вычислить сумерки - корректно ли будет просто принять в той же формуле радиус солнца = 7 градусов?

Много лет я думал (как и полагается простому гражданину, неастроному), что эту задачу не решить без таблиц. Заслуга Карен, как и полагается Учителю, - она просто заставила поверить, что любую задачу решить можно :)))

Есть еще одна "вредная" задача - вертикальные солнечные часы. Надо будет как-нибудь подкинуть в Форум...

Спасибо.

av

  • Гость
Re:Как расчитываются
« Ответ #8 : 13.06.2002 [07:58:46] »
Насчет уравнения времени. Я имел в виду, что для вычисления часовых углов точек восхода и захода его учитывать не следует.

Когда же Вы отыскиваете моменты «по часам», естественно нужно использовать момент кульминации Солнца, то есть вот тут необходимо учесть неравномерность скорости перемещения Солнца по небу (уравнение времени). Для отыскания моментов в Вашем месте жительства необходимо учесть и долготу места. Дело в том, что Вы нашли момент для нулевой долготы по Всемирному времени. Если у Вас есть календарь, там, вероятно, описано, как перейти к местному времени.

Сумерки. Надо просто увеличить величину зенитного расстояния на указанный угол. Правда есть разночтения, что такое гражданские сумерки. Иногда называют угол в 7, а иногда в 6 градусов.

Что касается горизонтальных солнечных часов, так у Вас практически все уже готово. Нужно лишь найти азимуты Солнца в целые часы времени и нанести эти углы на горизонтальную поверхность. Поставив вертикальный штырь и сориентировав правильно Ваше устройство получите искомый механизм. Только вот уравнение времени такой механизм учитывать не может. Вы будете иметь истинное солнечное время, отличающееся от среднего времени, которым мы и пользуемся в быту, на величину уравнения времени.

av

  • Гость
Re:Как расчитываются
« Ответ #9 : 13.06.2002 [08:54:51] »
Кстати, кроме моментов восходов и заходов можно посчитать и азимуты точек восхода-захода.

Sin (A) = (Cos (Decl)  Sin (t)) / Sin (90.85 град),

где t – часовой угол точек восхода-захода.

Оффлайн Karen

  • Модератор
  • *****
  • Сообщений: 5 501
  • Рейтинг: +222/-24
  • Янг, Карен
    • Награды
Re:Как расчитываются
« Ответ #10 : 13.06.2002 [10:35:06] »
Анатолий: После длинного размышления  ::), я должна согласиться с вами.  :) Вот то что я теперь понимаю: мы вычисляем интервал между полднём и восходом или заходом солнца--это часовой угол "h" . Так как, если мы начинаем с СРЕДНЫМ солнечным вренемем полдня, и вычитаем или склавываем вычислённый часовой угол, то мы получаем СРЕДНОЕ солнечное время восхода или захода солнца. Уравнение времени не нужно. (С другой стороны, если мы начали бы с ИСТИННЫМ солнечным вренемем полдня, то мы вычислили бы ИСТИННОЕ солнечное время восхода и захода солнца, и нам надо было добавит уравнение времени чтобы изменить на средное солнечное время.)

an1440: Вы правы--я не программисткой, а я знакома с нескольными "старыми" языками программирования (Fortran, Basic). Я только переписала и переводила на русском из книги, почти без изменения.

Спасибо за комплимент о моём "владением русского языка". Это очень мило с вашей стороны; я стараюсь (при помощи словаря!).  :) Я изучила русский язык в университете много лет тому назад, и хочу улучшать свое чтение и писание.

an1440

  • Гость
Re:Как расчитываются
« Ответ #11 : 13.06.2002 [13:52:21] »

О долготе места

Да да, это естественно. Учел и часовой пояс, и декретный час, переход на летнее время и поправку за смещение места от центрального меридиана часового пояса, ну и уравнение времени тоже. Таким образом, сегодня, т.е. 13 июня, на долготе +137 полдень считаю в 13:51:52.

О сумерках

Ну это вопрос более практический, чем теоретический. Я полагаю, достаточно сегодня посмотреть, когда потребуется включить освещение и перейти к градусам. Тем более, если вопрос об освещении в помещении - там, конечно, менньше  и 7 и 6 градусов, и кроме того, разные градусы утром и вечером - в зависимости от ориентации окон.

О солнечных часах

Горизонтальные часы стоят у меня на даче, устроены они немного не так: штырь направлен на полюс мира, т.е. на север и под углом равным широте места. На север же направлена и линия среднего местного декретного летнего полдня. Остальные линии (деления) вычислены от нее как arctg(tg(h)*cos(f)), где h-часовой угол от полудня, f - широта места.
Это не очень сложно. Я же подкинул вопрос о вертикальных - это циферблат на вертикальной стене (дома), произвольно ориентированной по отношению к сторонам света. Видел такие на фотографии, пытался подступиться к расчету, но...
Но это, видимо, уже в другую тему... Стоит открывать?

О языках :)

1. BASIC не может устареть - он вечный.
2. Как Вы, Karen, сказали, вы изучили русский в университете; я же изучал английский в институте. И с тех пор завидую тем, кто изучил... Потому и поинтересовался.

Всем - лучшие пожелания!

an1440

  • Гость
Re:Как расчитываются
« Ответ #12 : 13.06.2002 [14:19:15] »
PS:
При такой большой долготе места посчитал необходимым учесть еще и поправку к долготе солнца в виде -0,38JD



av

  • Гость
Re:Как расчитываются
« Ответ #13 : 13.06.2002 [14:45:40] »
Тогда уж лучше сотворить универсальный алгоритм.

Вычислить моменты восхода и захода Солнца, найти JD, соответствующие этим моментам и снова пересчитать все с координатами Солнца, вычисленными для конкретных моментов. Такой алгоритм будет пригоден для любого места на Земле. Для вычисления моментов восходов-звходов Луны просто необходимо делать несколько приближений, так как координаты Луны за сутки меняются на 13 градусов.

Если хотите вычислять поточнее, могу выслать Вам программы на Паскале, вычисляющие видимые координаты Солнца, Луны и планет. При использовании файла DE200.. точность вычисления координат такая же, как и в Астрономическом ежегоднике.

Оффлайн Karen

  • Модератор
  • *****
  • Сообщений: 5 501
  • Рейтинг: +222/-24
  • Янг, Карен
    • Награды
Re:Как расчитываются
« Ответ #14 : 14.06.2002 [09:13:14] »
[2. Как Вы, Karen, сказали, вы изучили русский в университете; я же изучал английский в институте. И с тех пор завидую тем, кто изучил... Потому и поинтересовался.]

Я думаю, что я вас понимаю. Я ненамеренно подразумевала при использовании слова "изучила" вместе "изучала", что я эксперт русского языка. Ни в коем случае! Вид глягола наверное важен!  :-[

Что касается солнечных часов, я не хорошо осведомлённая на этой теме. Однако я нашла двое интересных веб-страниц на теме вертикальных солнечных часов (по-английски):
http://home.netcom.com/~abraxas2/vert.htm
http://members.netscapeonline.co.uk/rdcd31/wd_calc.htm
« Последнее редактирование: 14.06.2002 [09:14:56] от Karen »

an1440

  • Гость
Re:Как расчитываются
« Ответ #15 : 14.06.2002 [19:31:31] »

Тогда уж лучше сотворить универсальный алгоритм.

Вычислить моменты восхода и захода Солнца, найти JD, соответствующие этим моментам и снова пересчитать все с координатами Солнца, вычисленными для конкретных моментов. Такой алгоритм будет пригоден для любого места на Земле.


Так и сделал. Причем оказалось, что для средних широт происходит уточнение времен порядка 1 минуты, а для приполярных зон - до часа(!).
И в первом случае процесс уточнения заканчивается после 3 ступеней пересчета, а во втором - после 5-6.
Хотя, возможно тут ситуация как если бы вычислять площадь круга до 16 знака исходя из пи=3,14 . Но для технических целей , я думаю, полученных результатов достаточно.

А что Вы имеете в виду относительно "любого места"?

av

  • Гость
Re:Как расчитываются
« Ответ #16 : 14.06.2002 [20:32:43] »
"А что Вы имеете в виду относительно "любого места"?"

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


an1440

  • Гость
Re:Как расчитываются
« Ответ #17 : 15.06.2002 [17:40:15] »
Интереснейшее это оказалось дело!
Теперь попробую "замахнуться" на расчет движения луны. Хотя он много сложнее...
А в перспективе - наверное, можно добраться и до вычисления затмений?

Karen, спасибо за ссылки - это вроде то, что нужно, но тоже надо разбираться.

av

  • Гость
Re:Как расчитываются
« Ответ #18 : 15.06.2002 [18:32:24] »
Для Луны все делается так же, но с небольшими дополнениями.

Координаты Луны рассчитываются с участием некоторого количества тригонометрических членов в разложениях элементов в ряды. Полная теория Брауна содержит несколько больше 3000 членов, но для этой задачи можно ограничиться десятком членов.

При расчете моментов восхода и захода нужно учитывать и параллакс Луны, то есть перейти от геоцентрических координат Луны к топоцентрическим, то есть к видимым из пункта на Земле координатам Луны.

Часовые углы точек восхода и захода могут сильно различаться, так как за день Луна заметно меняет свои координаты. Бывают сутки, когда одного из этих явлений не случается.

В общем, возни с Луной несколько побольше, чем с Солнцем.
Вот процедуры на Паскале для расчета приближенных координат Солнца и Луны, взятые с http://www.springer.de/phys/books/astropc/ Кстати, книга недавно вышла в русском переводе. Сведения о ней имеются на форуме
http://www.starlab.ru/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=14&t=000046

(*-----------------------------------------------------------------------*)
(* MINI_SUN: low precision solar coordinates (approx. 1')                *)
(*           T  : time in Julian centuries since J2000                   *)
(*                ( T=(JD-2451545)/36525 )                               *)
(*           RA : right ascension (in h; equinox of date)                *)
(*           DEC: declination (in deg; equinox of date)                  *)
(*-----------------------------------------------------------------------*)
PROCEDURE MINI_SUN(T:REAL; VAR RA,DEC: REAL);
 CONST P2  = 6.283185307; COSEPS=0.91748; SINEPS=0.39778;
 VAR   L,M,DL,SL,X,Y,Z,RHO: REAL;
 FUNCTION FRAC(X:REAL):REAL;
   BEGIN  X:=X-TRUNC(X); IF (X<0) THEN X:=X+1; FRAC:=X  END;
 BEGIN
   M  := P2*FRAC(0.993133+99.997361*T);
   DL := 6893.0*SIN(M)+72.0*SIN(2*M);
   L  := P2*FRAC(0.7859453 + M/P2 + (6191.2*T+DL)/1296E3);
   SL := SIN(L);
   X:=COS(L); Y:=COSEPS*SL; Z:=SINEPS*SL; RHO:=SQRT(1.0-Z*Z);
   DEC := (360.0/P2)*ARCTAN(Z/RHO);
   RA  := ( 48.0/P2)*ARCTAN(Y/(X+RHO)); IF (RA<0) THEN RA:=RA+24.0;
 END;



(*-----------------------------------------------------------------------*)
(* MINI_MOON: low precision lunar coordinates (approx. 5'/1')            *)
(*            T  : time in Julian centuries since J2000                  *)
(*                 ( T=(JD-2451545)/36525 )                              *)
(*            RA : right ascension (in h; equinox of date)               *)
(*            DEC: declination (in deg; equinox of date)                 *)
(*-----------------------------------------------------------------------*)
PROCEDURE MINI_MOON (T: REAL; VAR RA,DEC: REAL);
 CONST P2 =6.283185307; ARC=206264.8062;
       COSEPS=0.91748; SINEPS=0.39778;  (* cos/sin(obliquity ecliptic)  *)
 VAR   L0,L,LS,F,D,H,S,N,DL,CB    : REAL;
       L_MOON,B_MOON,V,W,X,Y,Z,RHO: REAL;
 FUNCTION FRAC(X:REAL):REAL;
   (* with some compilers it may be necessary to replace *)
   (* TRUNC by LONG_TRUNC oder INT if T<-24!             *)
   BEGIN  X:=X-TRUNC(X); IF (X<0) THEN X:=X+1; FRAC:=X  END;
 BEGIN
   (* mean elements of lunar orbit *)
   L0:=   FRAC(0.606433+1336.855225*T); (* mean longitude Moon (in rev) *)  
   L :=P2*FRAC(0.374897+1325.552410*T); (* mean anomaly of the Moon     *)
   LS:=P2*FRAC(0.993133+  99.997361*T); (* mean anomaly of the Sun      *)
   D :=P2*FRAC(0.827361+1236.853086*T); (* diff. longitude Moon-Sun     *)
   F :=P2*FRAC(0.259086+1342.227825*T); (* mean argument of latitude    *)
   DL := +22640*SIN(L) - 4586*SIN(L-2*D) + 2370*SIN(2*D) +  769*SIN(2*L)
         -668*SIN(LS)- 412*SIN(2*F) - 212*SIN(2*L-2*D) - 206*SIN(L+LS-2*D)
         +192*SIN(L+2*D) - 165*SIN(LS-2*D) - 125*SIN(D) - 110*SIN(L+LS)
         +148*SIN(L-LS) - 55*SIN(2*F-2*D);
   S := F + (DL+412*SIN(2*F)+541*SIN(LS)) / ARC;
   H := F-2*D;
   N := -526*SIN(H) + 44*SIN(L+H) - 31*SIN(-L+H) - 23*SIN(LS+H)
        + 11*SIN(-LS+H) -25*SIN(-2*L+F) + 21*SIN(-L+F);
   L_MOON := P2 * FRAC ( L0 + DL/1296E3 ); (* in rad *)
   B_MOON := ( 18520.0*SIN(S) + N ) / ARC; (* in rad *)
   (* equatorial coordinates *)
   CB:=COS(B_MOON);
   X:=CB*COS(L_MOON); V:=CB*SIN(L_MOON); W:=SIN(B_MOON);
   Y:=COSEPS*V-SINEPS*W; Z:=SINEPS*V+COSEPS*W; RHO:=SQRT(1.0-Z*Z);
   DEC := (360.0/P2)*ARCTAN(Z/RHO);
   RA  := ( 48.0/P2)*ARCTAN(Y/(X+RHO)); IF RA<0 THEN RA:=RA+24.0;
 END;



an1440

  • Гость
Re:Как расчитываются
« Ответ #19 : 15.06.2002 [19:20:30] »
Цитировать (выделенное)

Кстати, кроме моментов восходов и заходов можно посчитать и азимуты точек восхода-захода.
Sin (A) = (Cos (Decl)  Sin (t)) / Sin (90.85 град),
где t – часовой угол точек восхода-захода.


А вот с этим что-то никак не разберусь:
При переходе через весеннее равноденствие Decl переходит с - на + и его косинус, достигнув единицы, начинает уменьшаться.
В то же время t проходит через 90 гр и его синус тоже начинает уменьшаться.
В результате начинает уменьшаться и азимут - что противоречит здравому смыслу. Что-то тут не так - а что- не пойму...

av

  • Гость
Re:Как расчитываются
« Ответ #20 : 15.06.2002 [20:04:30] »
А и t находятся в одном квадранте. Вблизи равноденствий восход-заход происходят строго в точках  востока и запада. Делее все переходит на северо-восток и северо-запад (угол от точки юга > 90 градусов).

Вообще, для определения квадранта нужна пара тригонометрических функций:

Sin Z * Sin A = Cos (Decl) * Sin t
Sin Z * Cos A = -Cos (Fi) * Sin (Decl) + Sin (Fi) * Cos (Decl) * Cos t

По Sin и Cos азимута определяется угол. В астрономии азимут отсчитывается от точки юга на запад от 0 до 360 градусов.

« Последнее редактирование: 15.06.2002 [20:17:41] от Анатолий »

an1440

  • Гость
Re:Как расчитываются
« Ответ #21 : 17.06.2002 [14:29:22] »

А и t находятся в одном квадранте. Вблизи равноденствий восход-заход происходят строго в точках  востока и запада. Делее все переходит на северо-восток и северо-запад (угол от точки юга > 90 градусов).


Ох и темная наука - Астрономия! Не зря вы ей по ночам занимаетесь :) ...
При использовании вышеуказанной методики определения квадранта азимута на широтах вблизи 0 градусов в районе точек равноденствий образуются неприятности - азимут преждевременно (до равноденствия) перебрасывается в другой квадрант, т.е. до того, как он самостоятельно достигнет -90 гр. (часовой угол как раз уже переходит). С этого момента и до равноденствия он имеет неправильный знак приращения и на линии возникает разрыв и далее перелом.
Эффект полностью исчезает если из формул исключить все "приподнимающие" поправки - за рефракцию, радиус, параллакс. - тогда получается нормальная картина вплоть до любых сколь угодно малых широт (0,00000001) . При ровно 0 все равно происходит сбой - но это возможно особенности производства вычислений на компьютере.

Скинуть получившуюся программу? (если да - то куда?) - оценить опытным взглядом - похожи ли на правду результаты.



av

  • Гость
Re:Как расчитываются
« Ответ #22 : 17.06.2002 [18:15:04] »
an1440:

«Ох и темная наука - Астрономия! Не зря вы ей по ночам занимаетесь»
По ночам занимаются наблюдениями, а наукой следует заниматься днем, на свежую голову!

«…азимут преждевременно (до равноденствия) перебрасывается в другой квадрант, т.е. до того, как он самостоятельно достигнет -90 гр.»

А когда, по Вашему мнению, азимуту точки восхода (захода) «своевременно» переходить в другой квадрант и почему?

Относительно особенностей с азимутами на экваторе. Азимут светила – это двугранный угол относительно вертикальной линии. Если светило проходит через зенит (на экваторе вблизи равноденствий Солнце именно это и проделывает), азимут может скачком переходить в другой квадрант. Просто в точке зенита азимут не существует, как не существует прямое восхождение в полюсе экваториальной системы координат или долгота в географическом полюсе. При программировании следует предусматривать такую возможность, иначе программа может «грохнуться». Особенности с азимутом Солнца могут быть на любой широте, где Солнце достигает зенита.

Программу пересылать не требуется. Нужно опубликовать данные для двух-трех моментов, я сравню со своими данными.

an1440

  • Гость
Re:Как расчитываются
« Ответ #23 : 17.06.2002 [18:59:31] »
для
latitude=+ 50°12'40"
longitude=+ 136°53'20"
timezone= +10

(дата/JD/восход/заход/а восх/склонение сл)

15 mar 2002    2452349      07:02:42      18:52:32      + 272°32'17"  - 2°08'27"
16 mar 2002    2452350      07:00:48      18:54:26      + 271°58'01"  - 1°44'43"
17 mar 2002    2452351      06:58:54      18:56:21      + 271°26'03"  - 1°20'58"
18 mar 2002    2452352      06:57:00      18:58:15      + 268°59'51"  - 0°57'13"
19 mar 2002    2452353      06:55:07      19:00:09      + 269°09'18"  - 0°33'28"
20 mar 2002    2452354      06:53:13      19:02:03      + 268°54'41"  - 0°09'42"
21 mar 2002    2452355      06:51:19      19:03:57      + 268°26'43"  + 0°14'02"
22 mar 2002    2452356      06:49:25      19:05:51      + 267°54'01"  + 0°37'45"

здесь как раз заметен тот эффект, что я говорил (в экваториальной зоне он во много раз больше)

av

  • Гость
Re:Как расчитываются
« Ответ #24 : 17.06.2002 [22:54:57] »
an1440:

Дата, восход, заход, азимуты восхода и захода.

17   7 03  19 00    271  89
18   7 01  19 01    271  90
19   6 59  19 03    270  90
20   6 57  19 04    270  91
21   6 54  19 06    269  91
22   6 52  19 08    268  92

В Ваших данных:

Смещены моменты (может быть неточно вычислено уравнение времени).

Имеется скачек азимутов в интервале 17-18 марта. С чем это связано – не могу сказать. Такого скачка быть не должно.

an1440

  • Гость
Re:Как расчитываются
« Ответ #25 : 18.06.2002 [08:12:02] »
Цитировать (выделенное)
Смещены моменты (может быть неточно вычислено уравнение времени).
Правильно Вы сказали - нечего было по ночам считать...
Менял обозначения переменных, и в ур.вр. вместо долготы солнца влепил
долготу места. Сейчас время сошлось.  
Цитировать (выделенное)
Имеется скачек азимутов в интервале 17-18 марта. С чем это связано - не могу сказать. Такого скачка быть не должно.
Теперь в этом интервале он уменьшился.
А вот на широте +10 (долгота та же, +136.889)- картина все равно удручающая:

05 mar 2002     07:06  19:04     + 276°15'03"
06 mar 2002     07:05  19:04     + 275°51'45"
07 mar 2002     07:05  19:04     + 275°28'23"
08 mar 2002     07:04  19:04     + 275°05'00"  
09 mar 2002     07:04  19:04     + 265°18'24"  
10 mar 2002     07:03  19:04     + 265°41'48"
11 mar 2002     07:03  19:04     + 266°05'10"
12 mar 2002     07:02  19:04     + 266°28'28"

18 mar 2002     06:59  19:04     + 268°40'38"
19 mar 2002     06:58  19:04     + 268°57'19"
20 mar 2002     06:58  19:04     + 269°07'50"
21 mar 2002     06:57  19:04     + 269°08'17"  
22 mar 2002     06:56  19:04     + 268°58'29"  
23 mar 2002     06:56  19:04     + 268°42'13"
24 mar 2002     06:55  19:04     + 268°22'41"

Как у Вас выглядит эта область?

По-моему, какой-то подвох связан с тем, что в расчете часового угла
принимает участие точка солнечного диска, максимально удаленная от экватора,
а в расчете азимута - максимально удаленная от горизонта. А так как это разные
точки, то первая раньше чем вторая переходит в другой квадрант. Принудительно переводя по
этому признаку в другой квадрант и вторую - как раз и получаем разрыв.

По крайней мере, этот разрыв полностью устраняется для всех широт, если критерием перевода А
в другой квадрант принять переход в другой квадрант не просто t, а
t+(сумма всех "приподнимающих" поправок)*сos(fi), т.е. проекцию этих поправок с вертикали на экватор.
И тогда тот де самый участок выглядит так:

18 mar 2002     06:59  19:04     + 271°19'40"
19 mar 2002     06:58  19:04     + 271°03'05"
20 mar 2002     06:58  19:04     + 270°52'38"
21 mar 2002     06:57  19:04     + 269°07'49"
22 mar 2002     06:56  19:04     + 268°58'05"
23 mar 2002     06:56  19:04     + 268°41'54"
24 mar 2002     06:55  19:04     + 268°22'26"

Или я опять что-то напутал?

« Последнее редактирование: 18.06.2002 [10:13:31] от an1440 »

av

  • Гость
Re:Как расчитываются
« Ответ #26 : 18.06.2002 [10:26:05] »
Скачки азимутов остались. Вы ведь пользуетесь приближенными величинами координат Солнца и, следовательно, часового угла. Вероятно, это и приводит к разным моментам перехода углов через 270 градусов. Попробуйте использовать формулы определения четверти угла по двум тригонометрическим функциям (Sin и Cos азимута).

Я не знаю, каким языком Вы пользуетесь, но, на всякий случай,
Pi = 3.14159265359;

Function Atan2 ( S, C : Double ) : Double  ;
 { S – Sin Arg, C – Cos Arg }
 Const
   C20   : Double = 2.0;
   Pi2   : Double = Pi * 2.0;
   Pid2  : Double = Pi / 2.0;
   Pi270 : Double = Pi * 2.0 - Pi / 2.0;
 Var
   A  : Double ;

 Begin
   If (  ( S = 0.0 ) And ( C = 0.0 )  )
     Then
         ATan2 := 0.0
     Else
       Begin
         If ( Abs ( C ) > 0.0 )
           Then
             Begin
               If ( Abs ( C ) > Abs ( S ) )
                 Then
                   A := ArcTan ( S / C )
                 Else
                   Begin
                     If ( ( C / S ) < 0.0 )
                       Then  A := Pi270 - ArcTan ( C / S )
                       Else  A := Pid2  - ArcTan ( C / S ) ;
                     End ;
               If ( C < 0.0 )  Then  A := A + Pi;
               If ( A < 0.0 )  Then  A := A + Pi2;
               If ( A > Pi2 )  Then  A := A - Pi2;
             End
           Else
             Begin
               If ( S > 0.0 )
                 Then  A := Pi / C20
                 Else  A := Pi270;
             End ;

         ATan2 := A ;

       End ;
 End ;



an1440

  • Гость
Re:Как расчитываются
« Ответ #27 : 18.06.2002 [17:03:48] »
Цитировать (выделенное)

Попробуйте использовать формулы определения четверти угла по двум тригонометрическим функциям (Sin и Cos азимута).

Попробовал. Получилось отлично - никаких разрывов и скачков.
Функцию на паскале разбирать не стал - написал свою на "том языке, которым пользуюсь".
Оцените, насколько она там получилась проще:

def fnatan2#(s#,c#)
pi#=3.14159265359
if s#>=0 and c#>=0 then
   fnatan2#=atn(s#/c#)
else
   if s#>=0 and c#<=0 then
       fnatan2#=atn(s#/c#)+pi#
   else
       if s#<=0 and c#<=0 then
           fnatan2#=atn(s#/c#)+pi#
       else
           if s#<=0 and c#>=0 then
               fnatan2#=atn(s#/c#)+pi#*2
           end if
       end if
   end if
end if
end def

(как видите, это диалект Borland TURBO-BASIC 1.0 1987)


В этих формулах,

Sin Z * Sin A = Cos (Decl) * Sin t
Sin Z * Cos A = -Cos (Fi) * Sin (Decl) + Sin (Fi) * Cos (Decl) * Cos t


насколько я понял, Z - зенитное расстояние, равное в нашем случае 90 градусов?

an1440

  • Гость
Re:Как расчитываются
« Ответ #28 : 18.06.2002 [17:22:18] »
PS:
в паскале я не сильно разбираюсь, посему так и не понял, что означают следующие конструкции:

If (  ( S = 0.0 ) And ( C = 0.0 )  )

If ( Abs ( C ) > 0.0 )
           
?

av

  • Гость
Re:Как расчитываются
« Ответ #29 : 18.06.2002 [17:38:58] »
Логику работы программы разбирать не стал, но Ваша программа может «грохаться»: везде стоит деление S/C. В случае, когда С=0 (или очень мало, так что при делении возникает переполнение) что получим? «Сложная» процедура на Паскале для того, чтобы исключить ЛЮБЫЕ возможности «грохания». И даже присвоение азимуту значения «0» сделано для того, чтобы убрать неопределенность в полюсе сферической системы координат. При обработке разных ситуаций могут возникнуть самые разные комбинации параметров и программа ВСЕГДА должна выдавать результат.

Кроме того, функция Tg имеет особенность вблизи 90 и 270 градусов и по ней нельзя точно определить угол. Процедура на Паскале учитывает и это, а Ваша – нет!

Z – это расстояние от зенита до центра Солнца в моменты восхода и захода. Азимут точки восхода и азимут центра Солнца в этот момент одинаковы, если, конечно, не учитывать несферичность видимого диска Солнца, чего в данной задаче делать не имеет смысла.

an1440

  • Гость
Re:Как расчитываются
« Ответ #30 : 18.06.2002 [19:04:15] »
Замечания принял. Просто первоочередная задача стояла избавиться от разрывов.
С другой стороны, "критические" точки COS=0 (т.е. 90 и 270) обходятся двумя дополнительными строками, а в областях близких к ним (на величину, которую машина еще отличает от нуля) - результаты получаются на пренебрежимо малую величину отличающиеся от 90 и 270.

А вот как быть с остальным? Что можно считать корректным результатом, если на вход попали явно некорректные данные - например, SIN=0 COS=0 или оба по 1? Выдача каких-либо данных может ввести в заблуждение, скорее, по-моему, надо выдавать сообщение об ошибке?
Цитировать (выделенное)

Z – это расстояние от зенита до центра Солнца в моменты восхода и захода

...и тогда Z надо брать, как (90+16'+35') ?

av

  • Гость
Re:Как расчитываются
« Ответ #31 : 18.06.2002 [19:34:56] »
Зенитное расстояние нужно брать то, какое было при вычислении часового угла. В отношении восходов-заходов это действительно зенитное расстояние Солнца с учетом размера и рефракции.

По поводу проверок параметров. Можно выдавать сигнал об ошибке и останавливать процесс. Но при отладке больших проектов бывает полезно продолжать счет и выявлять за один прогон программы и те ошибки, которые встречаются дальше. В общем, это дело вкуса программиста. Можно поступать и так, как Вы предлагаете.

an1440

  • Гость
Re:Как расчитываются
« Ответ #32 : 19.06.2002 [20:01:23] »
В "соседней" теме поставлен вопрос - вычислить координаты солнца на 07ч40м на территории Москвы.
Насколько правильно у меня это получилось (без учета рефракции)?

31 янв 2002  h=-14°46'   A=+283°15'
14 июн 2002 h=+14°60'   A=+250°30'  (летнее время)

av

  • Гость
Re:Как расчитываются
« Ответ #33 : 19.06.2002 [20:32:28] »
Для центра Москвы азимуты и высоты соответственно:

291.4   -6.0
258.4   20.5

an1440

  • Гость
Re:Как расчитываются
« Ответ #34 : 20.06.2002 [07:31:13] »
Для центра Москвы азимуты и высоты соответственно:
291.4   -6.0
258.4   20.5
Нет слов.
Исходные данные находились в отдельном файле, и там вместо
7.666666 часов стояло 7,666666 что, естественно, воспринималось как 7.0

На обнаружение ушло около 4 часов.

Все сошлось ! ! ! ! ! ! ! ! ! !
(плюс полградуса на рефракцию)

+++++++++++++++++++++++++++++++++++++++

Кто-то сейчас усиленно работает над дизайном Форума. Если позволите, хочу выразить свое мнение: предыдущий вариант с обратным порядком сообщений и страниц в теме был горааааздо удобнее.

+++++++++++++++++++++++++++++++++++++++
 И, видимо, пока последний вопрос по солнцу:
Если центр Москвы, как я полагаю, находится на вершине Спасской башни, то находящийся там орел освещается солнцем раньше, чем восход увидят простые граждане, ходящие по земле. Эта поправка по какому принципу учитывается?
« Последнее редактирование: 20.06.2002 [07:58:42] от an1440 »

av

  • Гость
Re:Как расчитываются
« Ответ #35 : 20.06.2002 [09:01:28] »
Если наблюдатель находится над уровнем поверхности происходит "понижение горизонта". Величина понижения с учетом рефракции определяется из формулы

d = 1.779 * Sqrt ( h ),

где d - понижение горизонта в минутах дуги.
h - высота точки наблюдения в метрах,
Sqrt - корень квадратный.

Только все это имеет смысл учитывать при больших высотах наблюдателя.
« Последнее редактирование: 20.06.2002 [09:02:05] от Анатолий »

Sumo

  • Гость
Re:Как расчитываются
« Ответ #36 : 20.06.2002 [09:30:12] »

Кто-то сейчас усиленно работает над дизайном Форума. Если позволите, хочу выразить свое мнение: предыдущий вариант с обратным порядком сообщений и страниц в теме был горааааздо удобнее.


Не позволим  :) Для обсуждения этого вопроса была создана отдельная тема: http://www.astronomy.ru/forum/index.php?board=5;action=display;threadid=1148;start=0;boardseen=1 Там и надо было высказываться.

an1440

  • Гость
Re:Как расчитываются
« Ответ #37 : 21.06.2002 [14:08:08] »
Ну вот. Программа вроде работает.
Спасибо огромное всем:
Карен - первая протянула руку помощи аж через 18 часовых поясов!
Анатолий - за великое терпение - не послал меня туда, куда следовало бы (в библиотеку за учебником :)  ).
Болельщикам - их, судя по посещаемости, было немало...

DeuSeX

  • Гость
Re:Как расчитываются
« Ответ #38 : 30.06.2004 [17:06:40] »
Долго я тут все перечитывал, так как особыми астрономическими талантами не блещу :-[. Но все понял, кроме одного: как по местному часовому углу найти время. Меес дает формулу t = гринвическое звездное время - долгота места наблюдения - прямое восхождение. Однако тогда появляется другая проблема :(: в течение года прямое восхождение постоянно возрастает от 0 до 360(градусов), таким образом, время восхода также перемещается на сутки(!) за год(!). Может кто-нибудь объяснит мне в чем дело и где я не прав ???

Оффлайн Самодуров Владимир

  • ASTRONOMY.RU
  • *****
  • Сообщений: 10 038
  • Рейтинг: +208/-33
  • Пусть цветут сто цветов! Кроме сорняков...
    • АстроТоп России
    • Награды
Re:Как расчитываются
« Ответ #39 : 01.07.2004 [16:23:13] »
Ну, так все правильно - ведь звездные сутки короче солнечных на 4 минуты - относительно звезд-то Земля оборачивается за 23 часа 56 минут! За счет "лишнего" оборота Земли вокруг солнца в течение года и возникает неувязочка....
В итоге часовое время источника в одно и то же местное время (обычное, бытовое время) в течение года медленно сдвигается...
Можете поиграться с рапсчетами звездного времени для разных дат и мест вот здесь - http://astro.psn.ru/utilities/utilstar.html
Нужны ли мы нам? ((С)  Братья Стругацкие)

DeuSeX

  • Гость
Re:Как расчитываются
« Ответ #40 : 01.07.2004 [16:49:19] »
Спасибо за ссылку, посмотрел :).

А как вычислить местное время по звездному? Меня собственно интересует оно ::)
У Мееса только обратный перевод есть, а другой литературой я не располагаю :(

DeuSeX

  • Гость
Re:Как расчитываются
« Ответ #41 : 02.07.2004 [17:07:23] »
Все вроде разобрался :). Оказалось что не так это и сложно, просто 2 класс математики вспомнить надо было ;D ;D ;D.
Владимир, огромное Вам спасибо за своевременную помощь.

lysikov

  • Гость
Re: Как расчитываются
« Ответ #42 : 03.04.2005 [16:41:17] »
Предлагаю готовый исходник для вычисления восходов и заходов солнца на языке С.  ;)
Точность вычислений составляет около 1-2 минут, что, думаю, не очень существенно,
т.к. рефракция на горизонте может приводить к большим ошибкам.
ссылка: sunrise.zip
Хотелосы бы получить комментарии и предложения по улучшению расчетов.

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re:Как расчитываются
« Ответ #43 : 08.09.2011 [21:53:28] »
Вот уравнение:
cos(h) = -tan(фи)tan(дельта)

Очень прошу, помогите. 3 дня пытаюсь победить эту тему.
Хочу написать программу для определения времени захода и восхода солнца.
Перечитал этот и кучу разных форумов.
Наткнулся на много формул с разными степенями точности.
Склонение светила вроде определяю точно.
Возникли вопросы с прямым восхождением, так, у меня RA получается в зимние дни порядка 18-ти часов (что как я понимаю не верно).
Но, самый большой возник у меня вопрос по самой простой формуле
cos(h) = -tan(фи)tan(дельта)
если подставляю свою широту (-40), склонение (например 5 градусов),
от полученного выражения вычисляю арккосинус - получаю 1,5 (как я понимаю в угловых часах), но, если из RA вычитаю и прибавляю эти 1,5 часа - безсмыслится получается.

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

Для примера, если беру алгоритм с сайта http://williams.best.vwh.net/sunrise_sunset_algorithm.htm  - с теми значениями которые там указаны - получаю все ок, но стоит подставить свои значения - получается бред.

Помогите пожалуйста с расчетами.

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re:Как расчитываются
« Ответ #44 : 08.09.2011 [22:11:50] »
Но, самый большой возник у меня вопрос по самой простой формуле
cos(h) = -tan(фи)tan(дельта)
если подставляю свою широту (-40), склонение (например 5 градусов),
от полученного выражения вычисляю арккосинус - получаю 1,5 (как я понимаю в угловых часах), но, если из RA вычитаю и прибавляю эти 1,5 часа - безсмыслится получается.
cos(h) = -tan(-40)*tan(5)= 7.34117052967958E-02
h= 1.49731852 РАДИАН =  85.7900318 градусов =  5.71933545 часов

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #45 : 09.09.2011 [12:46:30] »
Спасибо! Действительно с этим запутался. Итак, у меня есть часовой угол, склонение солнца.
Теперь осталось найти прямое восхождение.
Подскажите пожалуйста для него формулу.
И еще -  в каких пределах может быть прямое восхождение?
На одной из формул у меня получилось 18 часов, но если посчитать заход и восход как
Se = RA+t;
Sw = RA-t;
то у меня получалось 13 часов восход, 23 заход... Явно ошибка
И есть ли формула связывающая прямое восхождение и склонение солнца?

P.S RA получается в звездном времени?
А как его перевести в местное?
« Последнее редактирование: 09.09.2011 [13:04:16] от 404_not_found »

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #46 : 09.09.2011 [13:18:41] »
Теперь осталось найти прямое восхождение.
Подскажите пожалуйста для него формулу.
По приведенной вами ссылке прямое восхождение вычисляется: RA = atan(0.91764 * tan(L))
Цитировать (выделенное)
И еще -  в каких пределах может быть прямое восхождение?
От 0 до 24 часов = от 0 до 360 градусов. Если больше или меньше, приводится в этот диапазон.
Цитировать (выделенное)
И есть ли формула связывающая прямое восхождение и склонение солнца?
Нет.
Цитировать (выделенное)
P.S RA получается в звездном времени?
RA - это угол, он может измеряться в радианах/градусах/часах.

Напечатайте ваш конкретный пример и что у вас получается.

Оффлайн Аstrocity

  • *****
  • Сообщений: 2 076
  • Рейтинг: +38/-11
  • Suum сuiquе!
    • Награды
Re: Как расчитываются
« Ответ #47 : 09.09.2011 [13:21:41] »
Вот статьи с формулами для расчетов http://hea.iki.rssi.ru/~nik/astro/time.htm#uravn_t
Vitaliy Schein
НПЗ-ПО 3-9х24-1

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #48 : 09.09.2011 [14:24:01] »
404_not_found
L и M вычисляются в градусах, а как аргументы тригонометрических функций они должны быть в радианах. И наоборот - обратные тригонометрические функции выдают результат в радианах, а в дальнейшем эти результаты используются в градусах.
Введите множитель  перехода из градусов в радианы  q=pi/180 и поправьте код:

L =  M + 1.916 * Sin(M * q) + 0.02 * Sin(2 * M * q) + 282.634
Ra = Atn(0.91764 * Tan(L * q)) / q
sinDec = 0.39782 * Sin(L * q)
CosH = (Cos(zenith * q) - (sinDec * Sin(Latitude * q))) / (cosdec * Cos(Latitude * q))
if if rising time is desired:
    H = 360 - ACos(CosH) / q
if setting time is desired:
   H = ACos(CosH) / q
И все работает достаточно хорошо.
« Последнее редактирование: 09.09.2011 [14:29:31] от Tau »

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #49 : 09.09.2011 [16:30:42] »
Вот статьи с формулами для расчетов http://hea.iki.rssi.ru/~nik/astro/time.htm#uravn_t

А подскажите дальше.
Приближенное значения уравнения времени:
η = 7.6*sin(0o.986*(n-4)) - 9.8*sin(1o.973*(n-81))   -  предположим получил.
И как мне от него прийти к прямому восхождению.

И ts + η + 12ч  - это и будет прямым восхождением?
А как мне ts получить?
или можно "Приближенное значения уравнения времени" просто прибавить или вычесть от 12.00 и приближенно считать его прямым восхождением?

404_not_found
L и M вычисляются в градусах, а как аргументы тригонометрических функций они должны быть в радианах. И наоборот - обратные тригонометрические функции выдают результат в радианах, а в дальнейшем эти результаты используются в градусах.
Введите множитель  перехода из градусов в радианы  q=pi/180 и поправьте код:

L =  M + 1.916 * Sin(M * q) + 0.02 * Sin(2 * M * q) + 282.634
Ra = Atn(0.91764 * Tan(L * q)) / q
sinDec = 0.39782 * Sin(L * q)
CosH = (Cos(zenith * q) - (sinDec * Sin(Latitude * q))) / (cosdec * Cos(Latitude * q))
if if rising time is desired:
    H = 360 - ACos(CosH) / q
if setting time is desired:
   H = ACos(CosH) / q
И все работает достаточно хорошо.

Спасибо. Вечером проверю.
А что означает фразы
if rising time is desired:
     t = N + ((6 - lngHour) / 24)
   if setting time is desired:
     t = N + ((18 - lngHour) / 24)


if if rising time is desired:
     H = 360 - acos(cosH)
   if setting time is desired:
     H = acos(cosH)

Не могу точно перевод понять. И если я использовал первую формулу, например t = N + ((6 - lngHour) / 24), то во втором случае тоже надо использовать первую формулу  H = 360 - acos(cosH) ?

И еще, из того-же алгоритма
T = H + RA - (0.06571 * t) - 6.622

Что это за цифровые коэффициенты?
« Последнее редактирование: 09.09.2011 [16:48:47] от 404_not_found »

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #50 : 09.09.2011 [17:09:02] »
Уравнение времени вам не нужно. В пункте 8 алгоритма http://williams.best.vwh.net/sunrise_sunset_algorithm.htm уже вычисляется среднее местное время (которое показывают часы в этой зоне). Формула там, конечно, нетривиальная, я пока смысла не понимаю, но оно работает.
Цитировать (выделенное)
А что означает фразы
 if if rising time is desired:
    H = 360 - ACos(CosH) / q
if setting time is desired:
   H = ACos(CosH) / q
Не могу точно перевод понять
Для вычисления времени восхода используйте первую формулу, а для времени захода - вторую.
Цитировать (выделенное)
И если я использовал первую формулу, например t = N + ((6 - lngHour) / 24), то во втором случае тоже надо использовать первую формулу  H = 360 - acos(cosH) ?
Да.
Цитировать (выделенное)
И еще, из того-же алгоритма
T = H + RA - (0.06571 * t) - 6.622
Что это за цифровые коэффициенты?
Подумать надо :). Алгоритм настолько простой, что аж мозг скрипит.

И зенитое расстояние Солнца для восхода/захода возьмите не 90 градусов, а zenith= 90.85 (угловой радиус Солнца + рефракция на горизонте)

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #51 : 09.09.2011 [17:57:05] »
Цитировать (выделенное)
И еще, из того-же алгоритма
T = H + RA - (0.06571 * t) - 6.622
Что это за цифровые коэффициенты?
H + Ra - это местное звездное время (по определению) в моменты восхода/захода.
0.06571 час = 3.9426 мин - это разница между солнечными и звездными сутками.
t - время в сутках от начала года, следовательно t*0.06571 - разница между шкалой солнечного и звездного времени, набежавшая от начала года. Звездное время бежит "быстрее"  солнечного, с начала года по звездному времени набежало t*0.06571  лишних часов, отнимаем их чтобы перейти к шкале солнечного времени.
6.622 - звездное гринвическое время в часах в момент начало года (с точностью до нескольких  минут), это ноль-пункт, отнимаем его.
Вообщем, точность алгоритма плюс/минус несколько минут, потому что 6.622 - неточное значение (для разных лет), и t  тоже приблизительно вычисляется.

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #52 : 09.09.2011 [19:55:13] »
Спасибо за ответы! Вы мне очень помогли.
Итак, проверьте, правильно ли я посчитал (хоть приблизительно).
Город Луганск (48°35′ с. ш. 39°20′ в. д. )
Часовой пояс (зимний +2)
Для даты 9 февраля 2011
RA=22.36
DEC=-10.21
H=5.31

И последний, наверное самый глупый вопрос, как имея эти данные получить время восхода и захода   :'(

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #53 : 09.09.2011 [20:24:40] »
Цитировать (выделенное)
И последний, наверное самый глупый вопрос, как имея эти данные получить время восхода и захода   
Вы дали ссылку на алгоритм. Дойдете до конца алгоритма и получите время (localT).
Цитировать (выделенное)
Итак, проверьте, правильно ли я посчитал (хоть приблизительно).
Город Луганск (48°35′ с. ш. 39°20′ в. д. )
Часовой пояс (зимний +2)
Для даты 9 февраля 2011
RA=22.36
DEC=-10.21
H=5.31
Неправильно.
Longitude= 39.3333
Latitude= 48.58333
localOffset= 2
N= 40
-----Восход
t = 40.1407407
M= 36.273714074
L= 320.06038209
RA = 322.46331071 градус =   21.497554047 час
sindec= -0.255392461494
dec = -14.796841575
H = 19.0691107913
T = 31.3070167648
UT = 28.6847945426 = 4.6847945426
LocalT = 6.684794542 час = 06:41

-----Заход
t= 40.6407407
M= 36.7665140740741
L= 320.566526110699
RA= 322.95974183 градус = 21.530649455 час
sindec = -0.252688047
dec = -14.6366341573
H = 4.9442817111
T = 17.1824280931
UT = 14.5602058708
LocalT= 16.56020587 час = 16:33

Поставьте себе какую-нибудь программу-планетарий, например Старкалк и будет гораздо удобнее - всегда можно посмотреть прямое восхождение и склонение Солнца на любую дату, время восхода и захода для вашего места.

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #54 : 09.09.2011 [23:11:39] »
sindec= -0.255392461494
Дохожу то суда, и должен вычислить cosDeс по формуле cosDec = cos(asin(sinDec))
но, получаю значение cosDec=0.9668374686919531, что не совпадает с том, что вы мне написали. Скажите, в чем я ошибаюсь?
Косинус склонения у вас правильный. Я его вообще не писала :). Я писала само склонение Солнце (dec = asin(sindec)/q), чтобы проконтролировать, правильно ли оно вычисляется. В явном виде склонение Солнца в этом алгоритме не нужно, фигурирует только синус его и косинус (sindec, cosdec)

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #55 : 09.09.2011 [23:33:40] »
Tau спасибо Вам ОГРОМНОЕ. Вы мне очень помогли! Все посчиталось и так как надо!  :-*  :angel:


Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #56 : 11.09.2011 [12:13:39] »
Еще маленький вопрос - сумерки. "увеличить зенитное расстояние 6-7 градусов" - в том алгоритме, это какая величина?

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #57 : 11.09.2011 [14:41:59] »
Цитировать (выделенное)
Еще маленький вопрос - сумерки. "увеличить зенитное расстояние 6-7 градусов" - в том алгоритме, это какая величина?
zenith=96

Сумерки разделяются на три стадии: гражданские, навигационные, астрономические. Тут подробнее. Зенитное расстояние Солнца равное 96 градусов - это гражданские сумерки.

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #58 : 15.09.2011 [09:45:42] »
Возникла проблема. С координатами например Сиднея (-33.859972; 151.21111)
Если их ввожу в тот алгоритм, получаю время восхода 24.1 либо если вычесть 24  0.1 часа.
В чем может быть проблема?

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #59 : 15.09.2011 [10:46:42] »
Цитировать (выделенное)
В чем может быть проблема?
Для Сиднея разность между местным и всемирным временем localOffset = 10 (летом 11).

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #60 : 15.09.2011 [11:13:36] »
Это я уже учел.
Вот что я получил на 1-е января 2011 года

L=280.0790039230139
RA=280.9625683862115
cosH=-0.3039933073482763
UT=18.80110639599338
localT=28.80110639599338

Оффлайн Tau

  • *****
  • Сообщений: 735
  • Рейтинг: +62/-7
    • Награды
Re: Как расчитываются
« Ответ #61 : 15.09.2011 [11:34:39] »
L= 280.07868935
RA= 280.96222761
CosH= -0.30503847
UT= 18.789505314
LocalT=  28.7895053 = 4.7895053 = 04:47
У меня слегка отличается, в результате на минуту где-то.
Что вас смущает в таком результате?

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #62 : 15.09.2011 [11:44:09] »
Спасибо. Разобрался. Надо было 24 прибавлять или вычитать из уже окончательного времени., а я его вычитал и прибавлял из UT.  :-*

Оффлайн 404_not_found

  • Новичок
  • *
  • Сообщений: 10
  • Рейтинг: +0/-0
  • Таким я был раньше
    • Авторские программы для мобильных телефонов
    • Награды
Re: Как расчитываются
« Ответ #63 : 22.09.2011 [16:21:22] »
В качестве благодарности все пользователям данного форума, выкладываю программу для расчета времени восхода и захода солнца, времени начала и конца сумерек, продолжительности дня, времени солнца в зените. В программе содержится база 240 городов мира, возможно добавление 5 пользовательских локаций.Переход на летнее время в программе осуществляется вручную.

Данная программа предназначена для мобильных телефонов, поддерживающих технологию Java (MIDP 2.0, CLDC 1.1).