Krajobrazy a refrakcja atmosferyczna

Czasem mi się nudzi i wdaję się w dyskusje z różnego rodzaju pseudonaukowcami. Często takie dyskusje są marnotrawstwem czasu, ale czasem da się z nich coś wynieść - w końcu żeby wyjaśnić komuś jasno, czemu jest w błędzie, sam musisz dobrze rozumieć temat. Jak Twoja znajomość tematu jest niewystarczająca do odparcia argumentów przeciwnika, musisz ją pogłębić i tym samym czegoś się uczysz. Tak było w moim przypadku tym razem.

Zaczęło się od pojawienia się na pewnym forum dwóch zwolenników płaskiej Ziemi. Na pierwszy ogień poszły standardowe argumenty, w stylu strefy czasowe, pory roku, zaćmienia, obroty nieba... co tylko może przyjść do głowy. Jak to zwykle w takich sytuacjach bywa, argumenty te zostały zbyte milczeniem lub mocno naciąganymi alternatywnymi wyjaśnieniami. Nie będę wchodził w szczegóły, kto chce to znajdzie propozycje płaskoziemców w internecie.

Ale wiadomo, osoby święcie przekonanej o swojej racji argumentami nie przekonasz, więc dyskusja stała się dość jałowa. Obie strony okopały się na swoich stanowiskach i zaczęło się wałkowanie w kółko tych samych kwestii. Do czasu, aż jeden ze zwolenników płaskiej Ziemi zaczął przedstawiać zdjęcia, jego zdaniem dowodzące, że Ziemia "nie jest kulą o promieniu 6371-6378 km", z opisami dającymi się streścić jako "wyjaśnijcie TO!". No dobrze.

Challenge accepted!

Najciekawiej zrobiło się, gdy poruszona została kwestia tej obserwacji masywu Schneeberg z góry Pradziad:

Schneeberg widziany z Pradziada

W czym problem? Cóż, podajmy parę faktów:

  1. Góra Pradziad ma wysokość 1491 m n.p.m., uzasadnione jednak jest przyjąć, że obserwacji dokonano z platformy widokowej na wieży na szczycie, czyli z wysokości ok. 1565 m n.p.m.
  2. Góry masywu Schneeberg sięgają 2070 m n.p.m.
  3. Odległość od Pradziada do masywu Schneeberg to 277 km.
  4. Między Pradziadem a Schneebergiem, w odległości ok. 73 km od tego pierwszego, znajduje się wzniesienie o wysokości 680 m n.p.m. (na zdjęciu jest to grzbiet, na którym stoją dwa słupy - wiatraki - na lewo od Schneebergu; te wiatraki znajdują się na wschód od czeskiego miasteczka Protivanov).

I wszystko byłoby oczywiste, gdyby nie punkt czwarty. Policzmy bowiem, jak wysoki musiałby być Schneeberg, żeby górka koło Protivanova go nie zasłoniła.

Schemat obliczenia

Obliczenia wykonamy we współrzędnych biegunowych, zakładając promień Ziemi R = 6378 \textrm{km}.

Mamy więc:

 r_0 = R + 1565 \textrm{m}

 \varphi_0 = 0

 r_1 = R + 680 \textrm{m}

 \varphi_1 = \frac{73 \textrm{km}}{R}

 \varphi_2 = \frac{277 \textrm{km}}{R}

Równanie prostej we współrzędnych biegunowych to:

 r(\varphi) = \frac{r_{min}}{\cos (\varphi - \varphi_{min})}

Podstawiając współrzędne pierwszych dwóch punktów, otrzymujemy r_{min} i \varphi_{min}, wyliczamy r_2... I co się okazuje?

Ano linia prosta zaczynająca się na Pradziadzie i styczna do górki koło Protivanova dociera do Schneebergu na wysokości... ok. 2600 m n.p.m.!

Górka koło Protivanova powinna zasłaniać Schneeberg. Schneeberg nic jednak sobie z tego nie robi i jest widoczny na zdjęciu.

Co tu się dzieje?

Na ratunek - refrakcja

Nasz zwolennik płaskiej Ziemi oczywiście stwierdził, że to niepodważalny dowód na płaskość Ziemi. Na płaskiej Ziemi obiekty nie chowałyby się pod horyzontem, więc nie byłoby problemu, żeby Schneeberg wystawał nad górkę koło Protivanova.

Oczywiście, istnieje też alternatywne wyjaśnienie, a jest nim refrakcja atmosferyczna.

Słowem wstępu - refrakcja jest tematem, z którym przy płaskoziemcach trzeba obchodzić się ostrożnie. Jest ona dla nich słowem-wytrychem, tłumaczącym strefy czasowe, pory roku, horyzont... ogólnie wszystko, co jest dobrym argumentem za kulistością Ziemi. Coś wygląda inaczej, niż powinno wyglądać na płaskiej Ziemi? Refrakcja! Oczywiście to jest żadne tłumaczenie - ale jeśli nie przyjmujemy argumentów z refrakcji drugiej strony, to kiedy sami musimy wyjaśnić coś refrakcją, lepiej zróbmy to solidnie. Nie chcemy w końcu sprowadzać się do ich poziomu, prawda? ;)

Tak więc, nie chcąc zostawić żadnej luki w tłumaczeniu, zabrałem się za porządną, ilościową analizę.

Uprzedzając jeszcze prezentację podejścia, które przyjąłem - płaskoziemcy mają tendencję do kwestionowania wszystkiego, czego nie są w stanie sprawdzić sami. Tak więc, mimo że refrakcja atmosferyczna jest niewątpliwie dobrze zbadana i pomierzona, postanowiłem wyprowadzić atak zaczynając od podstawowych zasad. Ciężko zaprzeczyć prawom optyki, mając z nimi do czynienia na codzień, jak i temu, że powietrze rzednie wraz z wysokością. Przyjąłem zatem uproszczony model:

  1. Gęstość powietrza maleje wykładniczo z wysokością.
  2. Odchylenie współczynnika załamania powietrza od jedynki jest proporcjonalne do gęstości.
  3. No i, oczywiście - Ziemia jest kulą o promieniu 6378 km.

Punkt pierwszy sprowadza się do przyjęcia równania \varrho(r) = \varrho_0 e^{-\alpha (r-R)}.

Współczynnik \alpha można wyprowadzić z równania \frac{dp}{dh} = -\varrho g, wiążąc gęstość z ciśnieniem równaniem gazu doskonałego. Prowadzi do to współczynnika \alpha równego \frac{\mu g}{RT}, gdzie \mu - masa molowa powietrza, g - przyspieszenie ziemskie, R - uniwersalna stała gazowa, T - temperatura powietrza. Stałe można znaleźć na Wikipedii, temperaturę przyjmiemy 273 K, skąd otrzymujemy \alpha \approx 1.25 \times 10^{-4} \textrm{m}^{-1}.

Znowuż z Wikipedii możemy odczytać współczynnik załamania powietrza przy ciśnieniu 1 atmosfery i temperaturze 273 K równy 1,000293.

Założenie 2 sprowadza się do równania: n(r) - 1 = 0,000293 \times e^{-\alpha (r-R)}.

Mamy więc model atmosfery, teraz trzeba policzyć, jak w takiej atmosferze porusza się światło. W tym celu skorzystamy z zasady Fermata.

Zasada Fermata mówi tyle, że światło podróżuje między punktami A i B po takiej trasie, aby droga optyczna (całka ze współczynnika załamania) była jak najmniejsza. Innymi słowy, jest to zasada wariacyjna:

 \int\limits_A^B n\,ds = \textrm{min}

We współrzędnych biegunowych można to zapisać jako:

 \int\limits_A^B n(r)\sqrt{dr^2 + r^2d\varphi^2} = \textrm{min}

Jeśli przyjmiemy, że droga naszego promienia daje się zapisać jako funkcja r(\varphi) (a tak będzie, dopóki nie będziemy rozważać promieni biegnących w pionie), tę całkę można sprowadzić do całki po \varphi:

 \int\limits_{\varphi_1}^{\varphi_2} n(r(\varphi)) \sqrt{r'^2 + r^2} d\varphi = \textrm{min}

W tym równaniu r' = \frac{dr}{d\varphi}.

Zagadnienia wariacyjne tego typu można rozwiązywać równaniem Eulera-Lagrange'a. Jeśli przyjmiemy L(\varphi, r, r') = n(r)\sqrt{r'^2 + r^2}, równanie Eulera-Lagrange'a będzie postaci:

 \frac{\partial L}{\partial r} = \frac{d}{d\varphi} \frac{\partial L}{\partial r'}

Pomijając już kroki pośrednie (kto umie różniczkować, przeliczy sam; kto nie umie, temu i tak te kroki niewiele powiedzą ;)), końcowy wynik jest następujący:

 r'' = r'^2 \frac{n'}{n} + r^2 \frac{n'}{n} + 2\frac{r'^2}{r} + r

gdzie n' = \frac{dn}{dr}.

Możemy w tym miejscu dokonać szybkiej kontroli, czy otrzymamy sensowny wynik dla stałego n. W takiej sytuacji n' = 0 i dostajemy r'' = 2\frac{r'^2}{r} + r - równanie spełniane przez równanie prostej r(\varphi) = \frac{r_0}{\cos (\varphi - \varphi_0)}. Przynajmniej tyle się zatem zgadza.

To równanie, delikatnie mówiąc, nie zachęca do dalszych przekształceń. Ale tak się szczęśliwie składa, że mamy XXI wiek i komputery, więc od czego jest analiza numeryczna? Stworzyłem więc programik, który znajduje tory promieni na podstawie tego równania (link do kodu i skompilowanej wersji będzie na końcu).

Pierwszy test: puszczamy promień równolegle do horyzontu. Odchylenia takich promieni są istotne dla astronomów i dobrze pomierzone, w typowych warunkach odchylenie wynosi 34 minuty łuku. Każemy programowi przeliczyć trasę takiego promienia do wysokości 200 km (na tyle wysoko, że można przyjąć, że bardziej się już nie odchyli) i odczytujemy wynik... 35 minut. Jak na tak toporne przybliżenie, świetnie!

Zachęcony tym testem, wklepałem dane sytuacji ze Schneebergiem. Wypuszczamy promień z 1565 m n.p.m., kąt pod jakim ma zostać wypuszczony obliczamy z warunku, że ma w odległości 73 km przelecieć na wysokości 680 m n.p.m. Na jakiej wysokości taki promień będzie w odległości 277 km? Wynik:
$ atm-refraction --start-h 1565 --tgt-h 680 --tgt-dist 73 --output-dist 277 -v
Ray parameters chosen:
Starting altitude: 1565 m ASL
Hits 680 m ASL at a distance of 73 km

Altitude at distance 277 km: 1688.2650324094586

W odległości Schneebergu promień będzie na wysokości niecałych 1700 m! To prawie 400 m poniżej szczytu, zdecydowanie wystarczająco, żeby góra była widoczna! Sukces :D

Dekonstrukcja kolejnego przykładu

Można byłoby na tym poprzestać, ale nasz płaskoziemca postanowił rzucić kolejne wyzwanie. "Ten filmik jednoznacznie dowodzi, że Ziemia jest płaska!", napisał, podając link: https://www.youtube.com/watch?v=oNdRhW1yQZ4.

Dla tych, co nie chcą oglądać filmiku: autor pokazuje widok z zatoczki koło Wellington na południową wyspę Nowej Zelandii. Widać kilka szczytów. Autor znajduje je na mapie, odczytuje wysokości i odległości, po czym porównuje z przewidywaniami na Ziemi płaskiej i okrągłej. Wychodzi mu zgodność z płaską i niezgodność z okrągłą. Ale czy na pewno...?

Szczyty są pooznaczane kolorami, ich dane przedstawiam na kadrze z filmiku:

Szczyty z filmiku

Już na samym filmiku widać jedną niepokojącą rzecz: w tym kadrze fioletowy szczyt jest oznaczony jako mający 2362 m wysokości, natomiast później autor pokazuje tabelkę do wykresu, w którą wpisał 2410 m. Czemu? Nie wiem.

W każdym razie, postanowiłem wklepać te dane do mojego programu i odczytać kąty, pod jakimi będzie widać poszczególne szczyty. Przyjmując horyzont za 0 (czego, nawiasem mówiąc, nie zrobił autor), otrzymujemy następujący wynik:

Dopasowanie do danych autora

Szczyty: fioletowy, żółty, czerwony i zielony pasują zaskakująco dobrze! Problem jest ze szczytami błękitnym (zlewa się z żółtym) i niebieskim. Zachęcony dobrym dopasowaniem pozostałych szczytów, pomyślałem, że prawdopodobną przyczyną jest błędna identyfikacja szczytu błękitnego i niebieskiego. Postanowiłem sam je znaleźć.

Niestety, przeszukiwanie mapy Nowej Zelandii okazało się syzyfową pracą. Różnych szczytów mniejszych i większych jest w okolicy pełno. Postanowiłem wspomóc się więc generatorem panoram ze strony http://www.udeuschle.selfhost.pro/panoramas/makepanoramas_en.htm. Generator ten pozwala wybrać miejsce i kąt patrzenia, po czym rysuje, co z danego miejsca widać.

Stosunkowo łatwo było na wygenerowanej panoramie zidentyfikować szczyty błękitny i niebieski:

Szczyt błękitny


Szczyt niebieski

Jak widać, ich wysokości i odległości różnią się nieco od podanych przez autora. Spróbujmy więc podać symulatorowi refrakcji te wartości...

Dopasowanie poprawionych danych

Pasuje przepięknie :)

Podsumowanie

Jaki z tej opowieści płynie morał? Cóż, ja wyciągnąłem dwa główne wnioski:

1. Nie zakładaj, że efekt jest nieistotny, dopóki w jakiś sposób tego nie sprawdzisz (licząc, bądź eksperymentalnie).
2. Krajobrazy wyglądałyby zupełnie inaczej, gdyby nie refrakcja atmosferyczna.

No i oczywiście nic nie zastąpi satysfakcji z wykazania komuś, że się myli, podpartego obliczeniami :D

Na koniec jeszcze obiecane linki do programu:
Kod: https://gitea.ebvalaim.pl/ebvalaim/atm-refraction
(atm-refraction --help drukuje listę opcji)

Pobierz “atm-refraction - Linux” atm-refraction-0.2.2-linux.zip – Pobrano 9 razy – 1 MB


Pobierz “atm-refraction - Windows” atm-refraction-0.2.2-win.zip – Pobrano 9 razy – 1 MB

Aktualizacja

Przyszedł mi do głowy jeszcze jeden test, który można wykonać przy użyciu zdjęcia Schneebergu.

Otóż wiatraki widoczne na zdjęciu (przypominam - dwa słupy na lewo od Schneebergu) można zlokalizować na mapach Google. Znajdują się one tutaj:

Wiatraki koło Protivanova

Mapy Google wskazują, że odległość między nimi to ok. 450 m. Z odległości 73 km to daje kąt 0,3 - 0,35 stopnia (0,35 jest dla odcinka prostopadłego do linii patrzenia, a odcinek między wiatrakami jest lekko na skos do kierunku wzroku). W związku z tym możemy ocenić rozmiary kątowe Schneebergu na zdjęciu na 0,05 - 0,1 stopnia.

Najnowszą wersję symulatora refrakcji wyposażyłem w dwie opcje: wypisywania początkowego kąta między promieniem a poziomem i symulację płaskiej Ziemi. Symulowane promienie wypuszczane są z pozycji obserwatora, więc możemy dzięki temu obliczyć pod jakim kątem do poziomu byłoby widać Schneeberg i górkę koło Protivanova na Ziemi zarówno okrągłej, jak i płaskiej, z refrakcją i bez. Wyniki przedstawiam poniżej:

Cztery testowane modele

a) Ziemia okrągła, z refrakcją
Grzbiet:
$ ./atm-refraction --start-h 1565 --tgt-h 680 --tgt-dist 73 --output-ang
-0.9565201819329879
Szczyt:
$ ./atm-refraction --start-h 1565 --tgt-h 2070 --tgt-dist 277 --output-ang
-0.8812788180363719

Różnica: 0,075 stopnia

b) Ziemia okrągła, bez refrakcji
Grzbiet:
$ ./atm-refraction --start-h 1565 --tgt-h 680 --tgt-dist 73 --output-ang --straight
-1.0223415221033665
Szczyt:
$ ./atm-refraction --start-h 1565 --tgt-h 2070 --tgt-dist 277 --output-ang --straight
-1.1397834768466832

Różnica: -0,117 stopnia (niewidoczny)

c) Ziemia płaska, bez refrakcji
Grzbiet:
$ ./atm-refraction --start-h 1565 --tgt-h 680 --tgt-dist 73 --output-ang --straight --flat
-0.6945791903312372
Szczyt:
$ ./atm-refraction --start-h 1565 --tgt-h 2070 --tgt-dist 277 --output-ang --straight --flat
0.10445608879994964

Różnica: 0,799 stopnia

d) Ziemia płaska, z refrakcją
Grzbiet:
$ ./atm-refraction --start-h 1565 --tgt-h 680 --tgt-dist 73 --output-ang --flat
-0.6293267999337602
Szczyt:
$ ./atm-refraction --start-h 1565 --tgt-h 2070 --tgt-dist 277 --output-ang --flat
0.3332380994146694

Różnica: 0,963 stopnia

Jak widać, przewidywane wielkości kątowe widocznej części Schneebergu różnią się dramatycznie w zależności od przyjętego modelu. Jeden z modeli pasuje jednak doskonale... kulisty, z refrakcją.

Nawet tak prosta obserwacja okazuje się całkiem solidnym dowodem na kulistość Ziemi!