Do marketingového klubu Cognito přestoupili dva hvězdní hráči – Martin Veselský a Simona Matúšková. Žluto-modrý dres oblékají od konce srpna a ryc...
Jak si vypočítat fázi a pozici Měsíce na obloze
Čas od času mi zavolá nějaký kamarád, který ví, že jsem část mládí strávil na brněnské hvězdárně, s dotazem, zdali bude večer vidět Měsíc, Venuše nebo jiná planeta, případně zdali byla pozorovatelná, když se narodil, což bych přece měl vědět, když jsem ten “astrolog”. Au. Nemám v hlavě astronomickou ročenku, takže dost často nevím, a tak ho odkážu na web nebo mobilní aplikaci. Po jednom z posledních dotazů, ten byl pro změnu na polohu Slunce, jsem si ale řekl, že by stálo za to ukázat vám základ toho, jak se tyhle věci počítají, a že programování je dobré také k něčemu jinému, než jen k přesouvání dat mezi tabulkami v databázi.
Na této stránce si můžete vypočítat fázi a polohu Měsíce na obloze pro určitý den, hodinu a polohu (třeba v Brně nebo Praze). Pro výpočty jsou použité zjednodušené algoritmy, které mohou vykazovat odchylky v řádech jednotek procent, takže bych podle nich nedoporučoval plánovat přistání na Měsíci. Nicméně pro orientaci bohatě stačí. Výpočet jsem popsal krok po kroku, a připojil jsem i zdrojové kódy některých algoritmů v Javascriptu.
Zadejte datum a čas, pro který chcete spočítat fáze Měsíce a jeho polohu.
Čas je potřeba zadat v greenwichském čase (GMT) což je čas v Londýně na nultém poledníku. Náš středoevropský čas je v zimě +1 hodina a v létě +2 hodiny. Víc o zimním a letním času se můžete dočíst na webu, který jsme připravili pro brněnskou hvězdárnu: https://www.stredoevropskycas.cz/.
Postup a výsledky výpočtů fází a polohy Měsíce včetně vizualizace
1. Vypočítáme juliánské datum:
Proč počítáme něco jako Juliánské datum? Protože lidstvo má strašný bordel v kalendářích, takže by astronomové museli neustále kontrolovat, jaký kalendář platil v té či oné zemi v době určitého úkazu. Juliánské datum je počet dní složených z 86 400 sekund, které uplynuly od poledne světového času (to je čas na nultém poledníku v Greenwichi, God save the Queen/King a nechť slunce nikdy nezapadá nad Britským impériem) dne 1. ledna roku 4713 př. n. l. podle Juliánského kalendáře. Nemusíme tedy řešit problém s juliánským, gregoriánským ani čínským datem, počítáme s juliánským datem, na které si naše datum převedeme pomocí docela jednoduchého algoritmu.
2. Upravíme julianské datum dle zeměpisné délky:
Julianské datum se mění spojitě se zeměpisnou délkou, takže pokud chceme vědět jaké u nás v Brně, musíme si ho přepočítat tak, že připočteme podíl zeměpisné délky a obvodu kruhu ve stupních, tedy 360.
3. Vypočítáme synodický měsíc:
Synodický měsíc je doba, za kterou Měsíc projde všemi fázemi, tedy od novu k úplňku a zase zpět k novu. Průměrně to trvá 29.53058868 dnů a s touhle hodnotou také počítám v použitém algoritmu. Ten si bere jako základ známé juliánské datum novu 6. 1. 2000. Hodnotě synodického měsíce se někdy říká stáří měsíce.
4. Určíme fázi Měsíce:
Aktuální fázi měsíce dělám schválně trošičku nepřesně, dobu trvání novu a úplňku jsem protáhl cca na 4 hodiny, i když v reálu jsou to diskrétní časové úseky.
5. Vypočítáme procento osvětlené plochy:
Jaká část plochy Měsíce je zrovna skutečně osvětlená je netriviální fyzikální i matematický úkol, ale pro zjednodušení jsem použil algoritmus s goniometrickou funkcí, který dává správné výsledky pro nov, úplněk i čtvrtky. Mezi tím úplně přesný není.
6. Vypočítáme východ a západ Měsíce pro daný den:
7. Vypočítáme polohu měsíce (výšku nad/pod obzorem a azimut):
Spočítat přesnou polohu Měsíce není sranda. Snažil jsem se implementovat zjednodušený algoritmus Jeana Meeuse, ale přesnost nebyla uspokojivá, takže jsem sáhl po prověřené knihovně SunCalc, kterou si můžete prostudovat na GITu. Její použití je veskrze triviální.
8. Nakreslíme fázi Měsíce:
Pozor. Vizualizace ukazuje fázi tak, jak je skutečně vidět ze severní a jižní polokouli. Z jižní polokoule je náš dorůstající měsíc pozorovatelný jako couvající, tedy zrcadlově. Je to proto, že osvětlení Měsíce Sluncem zůstává stejné, ale pozorovatel na jižní polokouli vidí Měsíc z obrácené perspektivy než pozorovatel na severní polokouli.
Zdrojové kódy použitých algoritmů v Javascriptu
Některé výpočty by bylo možné zjednodušit, ale pro názornost jsem je nechal v "rozloženém" stavu. Pozornému čtenáři tak například neunikne, že časová zóna se na zeměkouli posouvá co 15°.
Algoritmus pro výpočet juliánského data z gregoriánského
Algoritmus pro výpočet upraveného juliánského data dle zeměpisné délky
Algoritmus pro výpočet synodického měsíce
Algoritmus pro výpočet fází Měsíce
Algoritmus pro výpočet podílu osvětlené části Měsíce
Další informace o použitých algoritmech
Pro vizualizaci fází Měsíce jsem vykradl kód Pascala Thormeira, protože veškeré mé pokusy o vykreslení srpků byly neuskopojivé. Mersey et chapeau Pascal!.
Pro výpočet pozice Měsíce a jeho východů a západů jsem použil knihovnu SunCalc od Vladimira Agafonkina. I ona používá výše zmíněné astronomické algoritmy Jeana Meeuse.
Co si dále přečíst
Vyřešit problém s bezhotovostními platbami spropitného v hotelových provozech se rozhodl pražský startup Smart Tips. Pro realizaci technického řeš...
Agentura Cognito zvítězila ve výběrovém řízení na tvorbu marketingové a komunikační strategie pro destinaci Česká Kanada. Tento projekt si klade z...