Skocz do zawartości

Algorytmy astronomiczne czyli Python w rachunkach astro. - Cz. III Sideral Time


Wiesiek1952

Rekomendowane odpowiedzi

SIDERAL TIME - CZAS GWIAZDOWY + trochę teorii :getlost:

 

 

            Termin Sideral Time (ST) brzmi nieco tajemniczo a w gruncie rzeczy jest to dość proste. Tak w dużym skrócie jest to nic innego jak położenie „zerowego” punktu na nieboskłonie względem południka Greenwich. Punkt Barana jest punktem przecięcia się ekliptyki i równika (niebieskiego) a jego położenie względem południka Greenwich to właśnie Sideral Time.

             Na Ziemii systemów liczenia długości było kilka - ostał się jedynie słuszny według południka Greenwich czyli południk przechodzący przez Obserwatorium Astronomiczne Jej Królewskiej Mości w Greenwich leży na południku „zero”. Na niebie jako taki punkt zerowy przyjęto punkt równonocy wiosennej zwany również punktem wstępującym. Punkt ten nazywany jest zamiennie Punktem Barana (Aries) a sam Sideral Time często bywa nazywany Greenwich Hour Angle (GHA) z dodatkiem słowa Aries (Baran). Popularne jest oznaczenie GHA image.png.6519aec4e06eb03f40bfc1cbd9376906.png (grecka litera gamma, którą silnik forum zamienił na "g") .Położenie Ciał Niebieskich na nieboskłonie podawane jest względem tego punktu a odpowiednikiem długości geograficznej na Ziemii jest tu Rektascencja (RA) często zastępowana terminem SHA (Sideral Hour Angle). RA i SHA oznaczają tą samą "długość gwiazdową" a różnią się jedynie kierunkiem liczenia. W Nautical Almanach wszystkie kąty czasowe są liczone w kierunku zachodnim (W) stąd termin SHA (Gwiazdowy Kąt Czasowy) w odróżnieniu do RA liczonej na wschód (E) od Greenwich.  

            Zwyczajowo Sideral Time i Rektascencja (RA) podawane są w jednostkach czasu czyli w godzinach, minutach i sekundach a GHA i SHA  w jednostkach kątowych. W obliczeniach GHA i SHA są  wygodniejsze w użyciu bo nie ma potrzeby zamiany jednostek a ujednolicenie kierunków liczenia katów zmniejsza ryzyko pomyłek ze znakami wartości.

            Na skutek precesji i nutacji osi ziemskiej Punkt Barana wędruje po gwiazdozbiorach równikowych. (O samej precesji i nutacji będzie później) W 1982 Międzynarodowa Unia Astronomiczna przyjęła standard wyliczania położenia tego punktu. Poniższa procedura jest implementacją ustaleń Unii Astronomicznej.

 

            Procedura wylicza MEAN SIDERAL TIME czyli czas średni. Do wyliczenie widocznej pozycji Punktu Barana konieczne jest uwzględnienie dodatkowych poprawek. Procedura wylicza Punkt Barana dla położenia ekliptyki i równika średniego dla danego dnia.

 

            Wyszarzona („wykomentowana” czyli po znaku # na początku linii) jest formuła ważna jedynie dla północy UTC.

 

 

#
# ******************************************************************************************
#   Sideral Time at Greenwich  (aka GHA Aries) Jean Meeus chapter 11
#   expression adopted in 1982 by the International Astronomical Union
# ******************************************************************************************

def sideral_time(current_date: day_in_calendar, current_time: present_time) -> float:
    jd = julian_day(current_date)
    jd_time = jd + current_time.hour / 24 \
              + current_time.minute / 1440. \
              + current_time.seconds / 86400.

    time_gmt = (jd_time - 2451545.0) / 36525.0

    # *************************************************************************************
    # below formula is valid only for those values of time_gmt which correspond to 0h UT
    # *************************************************************************************
    # theta_o = 100.46061837 + 36000.770053608 + time_gmt \
    #           + 0.000387933 * time_gmt * time_gmt \
    #           - time_gmt * time_gmt * time_gmt / 38710000.0
    # *************************************************************************************


    # *************************************************************************************
    # below formula is valid for ANY values of time_gmt
    # *************************************************************************************
    theta_o = 280.46061837 + 360.98564736629 * (jd_time - 2451545.0) \
              + 0.000387933 * time_gmt * time_gmt \
              - time_gmt * time_gmt * time_gmt / 38710000.0

    while theta_o > 360.0:
        theta_o -= 360.0
    while theta_o < 0:
        theta_o += 360.0

    return theta_o * TO_RAD


# ******************************************************************************************
Edytowane przez Wiesiek1952
  • Lubię 2
Odnośnik do komentarza
Udostępnij na innych stronach

Cześć, tutaj programista Pythona :)

 

Powyższy kod nie zadziała. Czy skopiowałeś go z większej całości? Brakuje kilku definicji.

 

def sideral_time(current_date: day_in_calendar, current_time: present_time) -> float:

 

Tutaj brakuje definicji czym są day_in_calendar i present_time. W Pythonie po dwukropku podaje się typ zmiennej, pewnie chodzi o datetime.date. Brakuje też definicji funkcji julian_day w pierwszej linijce funkcji.

Odnośnik do komentarza
Udostępnij na innych stronach

5 minut temu, stfn napisał:

Cześć, tutaj programista Pythona :)

 

Powyższy kod nie zadziała. Czy skopiowałeś go z większej całości? Brakuje kilku definicji.

 

def sideral_time(current_date: day_in_calendar, current_time: present_time) -> float:

 

Tutaj brakuje definicji czym są day_in_calendar i present_time. W Pythonie po dwukropku podaje się typ zmiennej, pewnie chodzi o datetime.date. Brakuje też definicji funkcji julian_day w pierwszej linijce funkcji.

 

 

Kod jest dalszym ciągiem cz i i cz II tam są i te funkcje i klasy day_in_calendar i present_time. Po prostu nie chcę i byłoby to mało sensowne dołączanie kolejnych elementów i wielokrotne powtarzanie tego samego.

 

 

  • Lubię 1
Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...
W dniu 4.06.2022 o 10:06, Wiesiek1952 napisał:

Popularne jest oznaczenie GHA image.png.6519aec4e06eb03f40bfc1cbd9376906.png (grecka litera gamma, którą silnik forum zamienił na "g") .

 

Hm, na pewno silnik? Gdy przeklejam z programu do wyboru znaków (Tablica Znaków pod Windows, KCharSelect pod Linuksem), zawsze mi działa:

 

GHAγ, Hα, n0 → p+ + e + νₑ

Edytowane przez WielkiAtraktor
Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, WielkiAtraktor napisał:

 

Hm, na pewno silnik? Gdy przeklejam z programu do wyboru znaków (Tablica Znaków pod Windows, KCharSelect pod Linuksem), zawsze mi działa:

 

GHAγ, Hα, n0 → p+ + e + νₑ

 

No chyba silnik i kodowanie. :-) Tekst był pisany w Wordzie na Mac OS X i po wklejeniu wyszły jakieś bzdury a ja nie miałem siły z tym walczyć. Ale tak, faktycznie jak się wstawi znaki bezpośrednio spod Maca, z edytora znaków, to (o dziwo) nie przekłamuje. 

 

????? - ????? - ?????.  <---- To tylko test

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.