Jump to content

Algorytmy astronomiczne czyli Python w rachunkach astro. - Cz. VI GHA Aries (dokładne) i zamiana współrzednych.


Wiesiek1952
 Share

Recommended Posts

 

Poniżej dwie funkcje (używają/wywołują funkcje z poprzednich odcinków):

 

gha_aries() wylicza GHA punktu Barana z dokładnością lepszą od 0.05' (ok 3" kątowe) i powinna utrzymać tą dokładność dla dat na 1000 lat do przodu (Meeus pisze nawet o 6000).

 

ecliptical_to_equatorial() - pozwala na zamianę współrzędnych z ekliptycznych na równikowe. W większości przypadków efemerydy ciał niebieskich (CN) liczone są we współrzędnych ekliptycznych (bo łatwiej) i na koniec zamieniane są na współrzędne równikowe czyli rektascencję i deklinację. Zwraca wartości sun_efemeries schowane w tejże klasie ale może być wykorzystana dla innych CN jeśli na wejściu wstawimy dowolne inne CN w body_position.

 

Dodatkowo poprawka/uzupełnienie definicji klas. Wszystkie klasy używane dotychczas i w przewidywanych kolejnych odcinkach w drugim "okienku"

 

 

 

# ******************************************************************************************

def gha_aries(current_day: day_in_calendar, current_time: present_time) -> float:
    gha = sideral_time(current_day, current_time)
    nut = nutation(current_day, current_time)
    obliq = ecliptic_obliquity(current_day, current_time) + nut.latitude
    gha += nut.longitude * math.cos(obliq)

    return gha


# ******************************************************************************************

def ecliptical_to_equatorial(current_date: day_in_calendar, current_time: present_time,
                             body_position: sun_efemeries) -> sun_efemeries:
    final_position = sun_efemeries()
    body_declination = body_position.declination
    body_longitude = body_position.sha
    nutacja = nutation(current_date, current_time)
    epsilon = ecliptic_obliquity(current_date, current_time) + nutacja.latitude

    alfa = math.atan2((math.sin(body_longitude) * math.cos(epsilon)
                  - math.tan(body_declination * math.sin(epsilon))),
                 math.cos(body_longitude))
    while alfa < 0:
        alfa += TWO_PI
    while alfa > TWO_PI:
        alfa -= TWO_PI

    declinacja = math.sin(body_declination) * math.cos(epsilon)
    declinacja += math.cos(body_declination) * math.sin(epsilon) * math.sin(body_longitude)
    declinacja = math.asin(declinacja)
    sha = -alfa + gha_aries(current_date, current_time)
    while sha < 0:
        sha += TWO_PI
    while sha > TWO_PI:
        sha -= TWO_PI

    final_position.sha = sha
    final_position.declination = declinacja
    final_position.semi_diameter = body_position.semi_diameter
    return final_position
# ******************************************************************************************

 

 

 

 

class GeoPoint:
    def __init__(self, latitude: float = 0.0, longitude: float = 0.0) -> object:
        self.latitude = latitude
        self.longitude = longitude


class GeoPointPolar:
    def __init__(self, direction: float = 0.0, distance: float = 0.0):
        self.direction = direction
        self.distance = distance

class day_in_calendar:
    def __init__(self, year: int = 0, month: int = 0, day: float = 0):
        self.year = year
        self.month = month
        self.day = day


class present_time:
    def __init__(self, hour: int = 0, minute: int = 0, seconds: float = 0):
        self.hour = hour
        self.minute = minute
        self.seconds = seconds

class sun_efemeries:
    def __init__(self, sha: float = 0, declination: float = 0, semi_diameter: float = 0):
        self.sha = sha
        self.declination = declination
        self.semi_diameter = semi_diameter

class star_ephemeries:
    def __init__(self, rektascencja: float = 0.0, deklinacja: float = 0.0, nazwa: str =''):
        self.nazwa = nazwa
        self.rektascencja = rektascencja
        self.deklinacja = deklinacja


class moon_ephemeries:
    def __init__(self, rektascencja: float = 0.0, deklinacja: float = 0.0, paralaksa: float = 0, sd: float = 0):
        self.rektascencja = rektascencja
        self.deklinacja = deklinacja
        self.paralaksa = paralaksa
        self.sd = sd


# ******************************************************************************************
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Our picks

    • Migracja Astropolis na nowy serwer - opinie
      Kilka dni temu mogliście przeczytać komunikat o wyłączeniu forum na dobę, co miało związek z migracją na nowy serwer. Tym razem nie przenosiłem Astropolis na większy i szybszy serwer - celem była redukcja dosyć wysokich kosztów (ok 17 tys rocznie za dedykowany serwer z administracją). Biorąc pod uwagę fakt, że płacę z własnej kieszeni, a forum jest organizacją w 100% non profit (nie przynosi żadnego dochodu), nie znalazłem w sobie uzasadnienia na dalsze akceptowanie tych kosztów.
        • Thanks
        • Like
      • 58 replies
    • Droga Mleczna w dwóch gigapikselach
      Zdjęcie jest mozaiką 110 kadrów, każdy po 4 minuty ekspozycji na ISO 400. Wykorzystałem dwa teleskopy Takahashi Epsilon 130D i dwa aparaty Nikon D810A zamocowane na montażu Losmandy G11 wynajętym na miejscu. Teleskopy były ustawione względem siebie pod lekkim kątem, aby umożliwić fotografowanie dwóch fragmentów mozaiki za jednym razem.
        • Love
        • Thanks
        • Like
      • 48 replies
    • Przelot ISS z ogniskowej 2350 mm
      Cześć, po kilku podejściach w końcu udało mi się odpowiednio przygotować cały sprzęt i nadążyć za ISS bez stracenia jej ani razu z pola widzenia. Wykorzystałem do tego montaż Rainbow RST-135, który posiada sprzętową możliwość śledzenia satelitów.
      Celestron Edge 9,25" + ZWO ASI183MM. Czas ekspozycji 6 ms na klatkę, końcowy film składa się z grup 40 klatek stackowanych, wyostrzanych i powiększonych 250%.
      W przyszłości chciałbym wrócić do tematu z kamerką ASI174MM, która z barlowem 2x da mi podobną skalę, ale 5-6 razy większą liczbę klatek na sekundę.
      Poniżej film z przelotu, na dole najlepsza klatka.
        • Love
        • Thanks
        • Like
      • 72 replies
    • Big Bang remnant - Ursa Major Arc or UMa Arc
      Tytuł nieco przekorny bo nie chodzi tu oczywiście o Wielki Wybuch ale ... zacznijmy od początku.
       
      W roku 1997 Peter McCullough używając eksperymentalnej kamery nagrał w paśmie Ha długą na 2 stopnie prostą linie przecinajacą niebo.
       
      Peter McCullough na konferencji pokazał fotografię Robertowi Benjamin i obaj byli pod wrażeniem - padło nawet stwierdzenie: “In astronomy, you never see perfectly straight lines in the sky,”
        • Love
        • Thanks
        • Like
      • 17 replies
    • Jeśli coś jest głupie, ale działa, to nie jest głupie - o nietypowych rozwiązaniach sprzętowych
      Sformułowanie, które można znaleźć w internetach jako jedno z "praw Murphy'ego" przyszło mi na myśl, gdy kolejny raz przeglądałem zdjęcia na telefonie z ostatniego zlotu, mając z tyłu głowy najgłośniejszy marsjański temat na forum. Do rzeczy - jakie macie (bardzo) nietypowe patenty na usprawnienie sprzętu astronomicznego bądź jakieś kreatywne improwizacje w razie awarii czy niezabrania jakiegoś elementu sprzętu  Obstawiam, że @HAMAL mógłby samodzielnie wypełnić treścią taki wątek.
        • Haha
        • Like
      • 43 replies
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.