Wojtek Borczyk
2011-03-10 20:11:09 UTC
Zgodnie z umową, postaram się przedstawić skrócony algorytm obliczania
momentów wschodów i zachodów Słońca dla dowolnej lokalizacji i daty.
Rachunki składają się z dwóch kroków:
1) znalezienia współrzędnych równikowych równonocnych Słońca na
przybliżony momet wschodu/zachodu, oraz
2) wyliczenia na ich podstawie momentów wschodu i zachodu.
Krok 1) można przeprowadzić na wiele różnych sposobów (zależnie od
wymaganej dokładności), począwszy od wyinterpolowania współrzędnych z
"rocznika astronomicznego", poprzez ich przybliżenie analityczne
rozmaitymi szeregami jako funkcjami czasu, a skończywszy na precyzyjnym
całkowaniu numerycznym. Nie chcąc zagłębiać się zbyt szczegółowo w żadną
konkretną metodę, zacznę może od kroku 2) , a do kroku 1) wrócę jeszcze
nieco później :)
Krok 2) Zakładamy, że znamy deklinację Słońca (delta), szerokość
i długość geograficzną miejsca obserwacji (fi, lambda), oraz chwilową
wartość równania czasu (E) na przybliżony moment wschodu/zachodu.
Współrzędne powinny być wyliczone na *epokę*daty* , więc formalnie rzecz
biorąc powinniśmy dokonać ich transformacji z epoki J2000, ale w praktyce
popełnimy niewielki błąd używając współrzędnych na epokę J2000.
Rozwiązując trójkąt sferyczny z wierzchołkami w zenicie, północnym
biegunie świata i Słońcu dostajemy wyrażenie na cosinus kąta godzinnego
Słońca:
cos(t)=(sin(h)-sin(fi)*sin(delta))/(cos(fi)*cos(delta)) (1.1)
gdzie h oznacza wysokość kątową Słońca nad horyzontem.
"Zachód" lub "wschód" Słońca rozumiemy jako zniknięcie/pojawienie się
górnego brzegu jego tarczy. Odpowiada to wysokości kątowej środka tarczy
Słońca równej -(d/2+R), gdzie d jest średnicą kątową tarczy słonecznej, a
R oznacza wartość refrakcji atmosferycznej przy horyzoncie. "d" możemy
przyjąć równe ok. 32' łuku (zmienia się w niewielkich granicach w
zależności od odległości Ziemia-Słońce), natomiast nieco gorzej jest z "R"
- współczesne modele refrakcji atmosferycznej bardzo niedokładnie opisują
jej wartość w pobliżu horyzontu (zależy ona od bardzo wielu czynników,
takich jak temperatura, ciśnienie, wilgotność). Można jednak z dość dobrym
przybliżeniem założyć, że R = ok. 34' Stąd nasze h = -(32/2+34) = 50' =
-0,833(3) stopnia.
Następnie z (1.1) wyliczamy kąt godzinny Słońca "t". Ponieważ cosinus jest
funkcją parzystą, więc dostajemy dwa symetryczne rozwiązania, z których
wybieramy to, które leży po właściwej stronie południka (wschodniej dla
wschodu, zachodniej dla zachodu). Oczywiście pamiętamy o tym, że kąt
godzinny musimy wyrazić w mierze godzinnej, a nie stopniowej (360 stopni =
24 godziny) :)
Dodając do tak wyliczonego kąta godzinnego Słońca 12 godzin dostajemy
miejscowy czas słoneczny prawdziwy:
Tv = t + 12h (w razie potrzeby normalizujemy do przedziału 0h-24h, modulo
24h)
Znając wartość równania czasu "E" obliczamy teraz czas słoneczny średni
miejscowy "Tm":
Tm = Tv - E
Odejmując od czasu słonecznego średniego długość geograficzną "lambda"
(również wyrażoną w *godzinach*) dostajemy czas UT wschodu lub zachodu
Słońca:
UT = Tm - lambda
(pamiętajmy o znaku "lambda" - ja przyjąłem konwencję, że długości
wschodnie mają znak "+")
Na koniec dodajemy do tak obliczonego czasu różnicę między czasem
urzędowym a UT (+1h dla czasu zimowego, +2 godziny dla czasu letniego) - i
gotowe! :)
Na dzisiaj tyle - jutro postaram się nieco obszerniej opisać kilka różnych
metod przeprowadzenia kroku 1)
Mam nadzieję, że chociaż trochę pomogłem... :)
Pozdrawiam :)
W.
momentów wschodów i zachodów Słońca dla dowolnej lokalizacji i daty.
Rachunki składają się z dwóch kroków:
1) znalezienia współrzędnych równikowych równonocnych Słońca na
przybliżony momet wschodu/zachodu, oraz
2) wyliczenia na ich podstawie momentów wschodu i zachodu.
Krok 1) można przeprowadzić na wiele różnych sposobów (zależnie od
wymaganej dokładności), począwszy od wyinterpolowania współrzędnych z
"rocznika astronomicznego", poprzez ich przybliżenie analityczne
rozmaitymi szeregami jako funkcjami czasu, a skończywszy na precyzyjnym
całkowaniu numerycznym. Nie chcąc zagłębiać się zbyt szczegółowo w żadną
konkretną metodę, zacznę może od kroku 2) , a do kroku 1) wrócę jeszcze
nieco później :)
Krok 2) Zakładamy, że znamy deklinację Słońca (delta), szerokość
i długość geograficzną miejsca obserwacji (fi, lambda), oraz chwilową
wartość równania czasu (E) na przybliżony moment wschodu/zachodu.
Współrzędne powinny być wyliczone na *epokę*daty* , więc formalnie rzecz
biorąc powinniśmy dokonać ich transformacji z epoki J2000, ale w praktyce
popełnimy niewielki błąd używając współrzędnych na epokę J2000.
Rozwiązując trójkąt sferyczny z wierzchołkami w zenicie, północnym
biegunie świata i Słońcu dostajemy wyrażenie na cosinus kąta godzinnego
Słońca:
cos(t)=(sin(h)-sin(fi)*sin(delta))/(cos(fi)*cos(delta)) (1.1)
gdzie h oznacza wysokość kątową Słońca nad horyzontem.
"Zachód" lub "wschód" Słońca rozumiemy jako zniknięcie/pojawienie się
górnego brzegu jego tarczy. Odpowiada to wysokości kątowej środka tarczy
Słońca równej -(d/2+R), gdzie d jest średnicą kątową tarczy słonecznej, a
R oznacza wartość refrakcji atmosferycznej przy horyzoncie. "d" możemy
przyjąć równe ok. 32' łuku (zmienia się w niewielkich granicach w
zależności od odległości Ziemia-Słońce), natomiast nieco gorzej jest z "R"
- współczesne modele refrakcji atmosferycznej bardzo niedokładnie opisują
jej wartość w pobliżu horyzontu (zależy ona od bardzo wielu czynników,
takich jak temperatura, ciśnienie, wilgotność). Można jednak z dość dobrym
przybliżeniem założyć, że R = ok. 34' Stąd nasze h = -(32/2+34) = 50' =
-0,833(3) stopnia.
Następnie z (1.1) wyliczamy kąt godzinny Słońca "t". Ponieważ cosinus jest
funkcją parzystą, więc dostajemy dwa symetryczne rozwiązania, z których
wybieramy to, które leży po właściwej stronie południka (wschodniej dla
wschodu, zachodniej dla zachodu). Oczywiście pamiętamy o tym, że kąt
godzinny musimy wyrazić w mierze godzinnej, a nie stopniowej (360 stopni =
24 godziny) :)
Dodając do tak wyliczonego kąta godzinnego Słońca 12 godzin dostajemy
miejscowy czas słoneczny prawdziwy:
Tv = t + 12h (w razie potrzeby normalizujemy do przedziału 0h-24h, modulo
24h)
Znając wartość równania czasu "E" obliczamy teraz czas słoneczny średni
miejscowy "Tm":
Tm = Tv - E
Odejmując od czasu słonecznego średniego długość geograficzną "lambda"
(również wyrażoną w *godzinach*) dostajemy czas UT wschodu lub zachodu
Słońca:
UT = Tm - lambda
(pamiętajmy o znaku "lambda" - ja przyjąłem konwencję, że długości
wschodnie mają znak "+")
Na koniec dodajemy do tak obliczonego czasu różnicę między czasem
urzędowym a UT (+1h dla czasu zimowego, +2 godziny dla czasu letniego) - i
gotowe! :)
Na dzisiaj tyle - jutro postaram się nieco obszerniej opisać kilka różnych
metod przeprowadzenia kroku 1)
Mam nadzieję, że chociaż trochę pomogłem... :)
Pozdrawiam :)
W.