ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца АПРЕЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
Дано: координаты наблюдателя – долгота Lon, геодезическая широта Lat.Момент наблюдения – год Year, месяц Mon, день Day, всемирное время в часах UT.Найти: Азимут Az, высоту над горизонтом H1.Вычисление модифицированной юлианской даты на начало суток Море готовых процедур на всех языках. Например, 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 - 679004MD = Var3 + Var2 + 306001 * (Mon + 1) \ 10000 + Day\ - деление нацело2. Вычисление местного звездного времениT0 = (MD - 51544.5) / 36525 ‘ мод.юл.дата на начало суток в юлианских столетияхa1 = 24110.54841a2 = 8640184.812a3 = 0.093104a4 = 0.0000062S0 = 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 ' системе координат
Lon = 41.43147 долготаLat = 43.64986 широтаYear = 2009, Mon = 6, Day = 19, UT = 14.01.Вычисление модифицированной юлианской даты на начало суток var1 = 20090619 var2 = 487 var3 = 54281 MD = 55001 2. Вычисление местного звездного времениВходные параметры: MD = 55001, UT = 14.0T0 = 9.46338124572211E-02 S0 = 841764.178338331 Nsec = 50400 NsecS = 50537.9906264939 SG = 117.925704020104 ST = 159.357174020104 3. Вычисление эклиптических координат СолнцаВходные параметры: MD = 55001, UT = 14.0T0= 9.46338124572211E-02 M = 164.830326338125 L0= 3687.92528576318 L = 88.4161785572869 ' приведение угла в диапазон 0-360 градусовX = 2.76393789023711E-02 Y = 0.999617959389432 Z = 0
Но, с вычислением L всё хуже - получаю L = 89.833730218558 вместо L = 88.4161785572869Вот этого я уже не понимаю...
Вычел 3600 и сошлось. Ясно, что цикличность, но в алгоритме этого всё-же нет...
вместоL = 88.4161785572869Вот этого я уже не понимаю...
Как определить по этим данным где сейчас солнце? )
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)
Что означает операция апостроф (верхняя запятая)?
Как представить эту систему что бы понять от какой точки считать?А обязательно переводить из эклиптические координаты в экваториальные, а экваториальные - в азимутальные что бы определить где солнце относительно наблюдателя?
tg (Ra) = Y’ /X’tg (Dec)= Z’ / Sqrt(X’ ^ 2 + Y’ ^ 2)
Ra = Math.Tan(Y1 / X1); результат -5,0539826731987 а должно быть 88.2738131051079Dec = Math.Tan( Z1 / Math.Sqrt(Math.Pow(X1, 2) + Math.Pow(Y1, 2)) ); результат 0,462689303803096 а должно быть 23.4297911659417