Mierzenie pozycji ISS

Trafiłem jakiś czas temu na osobę negującą, między innymi, istnienie stacji kosmicznej. Osoba ta zaprezentowała pogląd, że stacja kosmiczna jest tak naprawdę czymś latającym znacznie niżej. Jest to też pogląd częsty wśród zwolenników płaskiej Ziemi - jeśli Ziemia jest płaska, to kosmos i satelity nie mają sensu, a zatem obserwowane na całym świecie światełko nazywane ISS musi być czymś innym, być może balonem albo dronem, latającym znacznie niżej. Możliwość, że człowiek umieścił sztuczną konstrukcję na wysokości 400 km nad powierzchnią Ziemi godzi bezpośrednio w poglądy takich ludzi, m.in. przez to, że dane z takiego obiektu wprost dowodzą, że panuje tam próżnia, a także że kształt Ziemi jest kulisty.

Gdyby zatem udało się w jakiś prosty sposób sprawdzić, że ISS faktycznie lata na wysokości 400 km, byłby to solidny cios dla wszelkiego rodzaju płaskoziemskich teorii. Tak się szczęśliwie składa, że prosta metoda istnieje. Zaproponowałem ją już kilka lat temu w rozmowie ze wspomnianą na początku osobą, ale wykonałem w praktyce dopiero w przeciągu kilku ostatnich dni. Oto ona.

Jak sprawdzić gdzie jest ISS?

Idea jest bardzo prosta. Należy obserwować przelot ISS jednocześnie z dwóch lub więcej miejsc o znanych współrzędnych. W każdym z tych miejsc ISS będzie widoczna w nieco innym kierunku (jest to, zasadniczo, efekt paralaksy). Znając położenia obserwatorów i kierunki od nich do ISS, można wyznaczyć położenie stacji.

Ilustracja azymutu i elewacji
Azymut i elewacja

Wszystko fajnie, ale jak zmierzyć te kierunki i na czym w ogóle polega "pomiar kierunku"? Kierunki można mierzyć na kilka różnych sposobów, w tym przypadku najprostszym jest zmierzenie dwóch kątów: azymutu i elewacji (wysokości nad horyzontem). Azymut to kąt w poziomie między kierunkiem północnym a punktem na horyzoncie bezpośrednio pod obserwowanym obiektem. Standardowo przyjmuje się wschód jako 90 stopni, południe - 180, zachód - 270, a wszelkie liczby pomiędzy oznaczają kierunki pośrednie. Elewacja to z kolei kąt między płaszczyzną poziomą a kierunkiem do obiektu. Wyznaczenie tych dwóch liczb wystarczy do precyzyjnego określenia kierunku do ISS.

Jak zmierzyć te kąty? Tradycyjnie azymuty można mierzyć np. kompasem, a elewację - sekstantem, ale... kto choć raz widział przelot ISS, ten wie, że stacja kosmiczna porusza się po niebie raczej szybko. W związku z tym bardzo ciężko byłoby bezpośrednio zmierzyć szukane kąty w konkretnym momencie. Trzeba uciec się do innych sposobów.

Ponieważ jednym z problemów jest ruch stacji, sprawa znacznie by się uprościła, gdyby udało się go wyeliminować. Można to łatwo zrobić - po prostu robiąc zdjęcie! Na zdjęciu stacja będzie nieruchoma, pozostaje tylko w jakiś sposób odczytać z niego azymut i elewację.

A jak odczytać azymut i elewację ze zdjęcia? Potrzebne są jakieś punkty odniesienia. Doskonałymi punktami odniesienia na niebie są gwiazdy. Ich położenia na niebie można by było już zmierzyć kompasem i sekstantem, ale można też pójść nieco na skróty. Ponieważ te położenia są bardzo dobrze poznane i doskonale wiadomo, pod jakimi kątami widać konkretne gwiazdy z konkretnego miejsca w konkretnym momencie (do stopnia, w którym możliwa jest astronawigacja), możemy po prostu skorzystać z programu, np. Stellarium, który powie nam, jakie były azymuty i wysokości nad horyzontem wybranych gwiazd w momencie obserwacji stacji kosmicznej.

Ostatni problem jest taki, że żeby na zdjęciu ISS było widać również gwiazdy, trzeba użyć długiego czasu naświetlania, co najmniej kilka sekund. W tym czasie stacja przemieści się na niebie dość znacznie, co oznacza, że na zdjęciu pokaże się nie jako punkt, a jako kreska. Ale to na szczęście nie jest duży problem - jeśli tylko znamy dokładne momenty rozpoczęcia i zakończenia naświetlania, możemy odczytać położenia ISS w tych momentach, mierząc położenia początku i końca kreski! Co więcej, w pewnym przybliżeniu możemy też poznać położenia ISS w momentach pośrednich, dokonując interpolacji między tymi dwoma punktami.

Mamy więc sposób poznania azymutu i elewacji ISS z danego miejsca na podstawie wykonanego zdjęcia. Te dwa kąty w połączeniu z pozycją obserwatora określają pewną prostą w przestrzeni - prostą, na której znajdowała się w danym momencie stacja kosmiczna! Znając kilka takich prostych, możemy znaleźć punkt ich przecięcia, dzięki czemu poznamy położenie ISS w przestrzeni. Powtarzając obliczenia dla momentów początku i końca naświetlania, otrzymamy nawet położenia w dwóch momentach, co pozwoli nam także poznać jej prędkość. Pozostało już tylko wykonać to w praktyce :)

Obserwacja

Wykonałem wspólnie z dwójką znajomych kilka obserwacji, tu skupię się na jednej jako przykładzie. Zdjęcia poniżej wykonaliśmy 17 maja 2020 o godzinie 0:45:25, z 30-sekundowym naświetlaniem: ja w Katowicach, jeden znajomy w okolicach Łodzi, drugi w okolicach Mielca.

Na początek pokażę na przykładzie widoku z Katowic, jak uzyskać azymut i elewację ISS (a dokładniej, początku i końca toru ISS).

Pierwszym krokiem jest zidentyfikowanie kilku gwiazd. Poniżej zdjęcie z podpisanymi jaśniejszymi gwiazdami i gwiazdozbiorami:

Podpisane gwiazdy z gwiazdozbiorów Wielkiej i Małej Niedźwiedzicy, Smoka oraz Psów Gończych

Z tych gwiazd wybrałem pięć do dalszej obróbki: Cor Caroli, Megrez, Merak, Eltanin i Polaris. Nic nie stoi na przeszkodzie, aby wybrać więcej - 5 to rozsądne minimum, a nie chciałem poświęcać na analizę zbyt dużo czasu, ale ogólnie im więcej, tym lepiej. Wybrałem tych pięć, gdyż są w miarę szeroko rozrzucone po kadrze i dobrze widoczne.

Następny krok to spisanie współrzędnych wybranych gwiazd. Potrzebne są dwa zestawy współrzędnych: x i y na zdjęciu (można je odczytać w programie graficznym, np. w GIMPie) oraz azymut i elewacja w rzeczywistości. Te ostatnie dwa odczytałem ze Stellarium:

Dane ze Stellarium dla gwiazdy Megrez, dla mojej lokalizacji i czasu obserwacji

Spisane z tego zdjęcia dane wyglądają tak:

W każdym wierszu mamy x i y gwiazdy na zdjęciu, azymut i wysokość.

Do obliczenia azymutu i wysokości ISS potrzeba jeszcze x i y położeń ISS na zdjęciu - współrzędne początku i końca toru wyglądają następująco:

Analogiczną procedurę przeprowadziłem dla pozostałych dwóch zdjęć. Po wykonaniu tych kroków mamy wszystkie dane, pozostaje tylko przejść do obliczeń!

Obliczenia

Pole widzenia

Pierwsze co musimy zrobić, to ustalić pole widzenia aparatu. To pozwoli nam przeliczać piksele na zdjęciu na kąty w rzeczywistości.

Aby tego dokonać, zaczniemy od wprowadzenia pewnego modelu powstawania fotografii. Przyjmijmy układ współrzędnych, w których oś z jest skierowana wzdłuż osi aparatu, oś x odpowiada kierunkowi lewo-prawo względem aparatu, a oś y kierunkowi góra-dół (również względem aparatu). "Względem aparatu" oznacza tutaj, że gdybyśmy np. położyli aparat na boku, to oś x byłaby de facto pionowa, a oś y pozioma.

Ilustracja układu współrzędnych związanego z aparatem

Założymy, że punkt (x,y) na zdjęciu odpowiada kierunkowi reprezentowanemu przez pewien wektor we współrzędnych wprowadzonych wyżej \vec{v} = [v_x, v_y, z_{fov}], gdzie:

 v_x = x - \frac{w}{2}

 v_y = \frac{h}{2} - y

przy czym w oznacza tu szerokość zdjęcia w pikselach, h - wysokość zdjęcia, a z_{fov} - pewną wielkość związaną z polem widzenia aparatu. Konkretnie, ponieważ przy naszych założeniach punkt (0, 0) na obrazie jest dokładnie na osi aparatu, a punkt (\frac{w}{2}, 0) jest na brzegu pola widzenia, to mamy:

Pole widzenia aparatu

 \frac{w}{2z_{fov}} = \tan \frac{\varphi}{2}

gdzie \varphi to pole widzenia w poziomie wyrażone jako kąt.

z_{fov} jest wielkością, którą chcemy dopiero wyznaczyć. Jak to zrobić?

Rozważmy dwie gwiazdy na zdjęciu, których azymuty i wysokości oznaczymy odpowiednio \alpha_1, \lambda_1 dla pierwszej gwiazdy i \alpha_2, \lambda_2 dla drugiej gwiazdy. Azymut i elewacja \alpha, \lambda odpowiadają wektorowi w przestrzeni:

 \vec{v} = \left[ \begin{array}{c} \cos \lambda \cos \alpha \\ \cos \lambda \sin \alpha \\ \sin \lambda \end{array} \right]

w układzie współrzędnych w których oś x jest skierowana na północ, oś y na wschód, a oś z - w górę.

Na podstawie takich wektorów przypisanych do dwóch gwiazd możemy wyliczyć ich odległość kątową na niebie \delta:

 \cos \delta = \vec{v_1} \cdot \vec{v_2} = \cos \lambda_1 \cos \alpha_1 \cos \lambda_2 \cos \alpha_2 + \cos \lambda_1 \sin \alpha_1 \cos \lambda_2 \sin \alpha_2 + \sin \lambda_1 \sin \lambda_2

Z drugiej strony, jeśli założymy jakąś wartość z_{fov}, możemy obliczyć odległość kątową gwiazd \delta' wynikającą ze zdjęcia:

 \cos \delta' = \frac{\vec{v_1}' \cdot \vec{v_2}'}{|\vec{v_1}'| |\vec{v_2}'|}

gdzie:

 \vec{v_1}' = \left[ \begin{array}{c} x_1 \\ y_1 \\ z_{fov} \end{array} \right], \;\; \vec{v_2}' = \left[ \begin{array}{c} x_2 \\ y_2 \\ z_{fov} \end{array}\right]

Zatem:

 \cos \delta' = \frac{x_1 x_2 + y_1 y_2 + z_{fov}^2}{\sqrt{x_1^2 + y_1^2 + z_{fov}^2}\sqrt{x_2^2 + y_2^2 + z_{fov}^2}}

Takie odległości - rzeczywiste oraz wynikające ze zdjęcia - można wyliczyć dla wielu par gwiazd i sprawdzić, jak bardzo odległości wynikające ze zdjęcia (przy założonym z_{fov}) różnią się od rzeczywistych. Na tej podstawie można zmodyfikować z_{fov}, znowu sprawdzić dopasowanie, itd., aż odległości obliczone ze zdjęcia będą możliwie zbliżone do rzeczywistych. Tę procedurę najlepiej przeprowadzić przy użyciu komputera, który jest idealnym narzędziem do wykonywania wielu powtarzalnych obliczeń - co też uczyniłem, stosując funkcję scipy.optimize.least_squares z biblioteki SciPy w języku Python.

Wykonanie opisanej powyżej procedury na danych z mojego zdjęcia daje wynik:

co przy szerokości zdjęcia 6000 pikseli przekłada się na poziome pole widzenia ok. 74,5 stopni. Zdjęcie robiłem obiektywem o ogniskowej wynoszącej 24 mm w przeliczeniu na format pełnoklatkowy (35 mm), co daje teoretyczne pole widzenia 73,7 stopni.

Orientacja aparatu

Kolejnym etapem jest obliczenie orientacji aparatu w przestrzeni. Orientację wyliczymy jako zbiór kątów Eulera w układzie, w którym oś z jest skierowana na północ, oś y w górę, a oś x na wschód. Być może zauważyliście, że ten układ bardzo przypomina ten zastosowany wyżej do obliczania odległości kątowych gwiazd, ale z inaczej przypisanymi osiami - czemu tu używam innego? Powód jest prosty. Ten układ jest zorientowany tak, że jeśli osie aparatu są ułożone wzdłuż osi układu współrzędnych, to mamy do czynienia z aparatem wypoziomowanym, patrzącym prosto na północ. Taką orientację będę chciał przyjąć jako kąty (0, 0, 0), każda inna orientacja będzie oznaczała jakieś niezerowe wartości kątów.

Ale wybiegam trochę w przyszłość, najpierw może kilka słów o kątach Eulera. Jak można wyczytać na Wikipedii, jest to zestaw 3 kątów pozwalających opisać wzajemną orientację dwóch układów współrzędnych. W skrócie: kąty te mówią, o ile trzeba obrócić jeden układ wokół pewnych 3 osi, aby jego osie pokryły się z osiami drugiego układu.

W naszym wypadku kąty Eulera będzie można wyobrazić sobie w ten sposób:

  1. Zaczynamy z wypoziomowanym aparatem patrzącym na północ.
  2. Obracamy aparat o kąt \alpha wokół osi pionowej. Aparat jest nadal wypoziomowany, ale patrzy w innym kierunku - dokładniej, na azymut równy kątowi \alpha.
  3. Obracamy aparat o kąt \beta wokół jego osi lewo-prawo. To znaczy, że oś pozioma aparatu nadal będzie w poziomie, ale aparat nie patrzy już poziomo na horyzont, ale w kierunku punktu o elewacji \beta.
  4. Obracamy aparat o kąt \gamma wokół jego osi przód-tył. Teraz aparat nadal patrzy w kierunku punktu o azymucie \alpha i elewacji \beta, ale jego oś lewo-prawo już niekoniecznie jest pozioma.

Odpowiednio dobierając wartości tych trzech kątów, możemy wyrazić dowolną orientację aparatu w przestrzeni. Pozostało wyliczyć jakie dokładnie były te kąty w przypadku mojego aparatu.

Metoda, którą zastosowałem, jest identyczna co do zasady jak ta, którą obliczałem pole widzenia. Zakładam pewne wartości kątów Eulera i sprawdzam, czy położenia gwiazd na zdjęciu pokryją się z ich rzeczywistymi położeniami. Modyfikuję kąty dotąd, aż zgodność jest możliwie duża - znów przy pomocy scipy.optimize.least_squares.

Konkretnie, matematyka wygląda następująco: dla każdej gwiazdy spisanej ze zdjęcia wykonuję następujące kroki:

  1. Wyliczam wektory \vec{v} = [x, y, z_{fov}] i \vec{u} = [ \cos\lambda \sin\alpha, \sin\lambda, \cos\lambda\cos\alpha ] (czyli wektor kierunku ze zdjęcia i wektor kierunku na podstawie azymutu i wysokości, ale w układzie współrzędnych przyjętym na tym etapie). Wektor \vec{v} dodatkowo normalizuję (dzielę przez jego długość, aby miał długość 1 - wektor u od początku ma długość 1).
  2. Transformuję wektor \vec{v} zgodnie z kątami Eulera, otrzymując wektor \vec{v}'.
  3. Liczę błąd dopasowania dla tej gwiazdy, równy |\vec{v}' - \vec{u}|^2

Suma błędów dopasowania dla wszystkich gwiazd jest następnie przyjęta jako ogólny błąd dopasowania kątów. Program, minimalizując ten błąd, znajduje właściwe kąty Eulera.

Po zastosowaniu do mojego zdjęcia, otrzymujemy:

Wychodziłoby zatem, że aparat patrzył prawie dokładnie na północ, (co się zgadza, widać po pozycji Polaris), był w miarę wypoziomowany (niski kąt \gamma, również się zgadza) i patrzył pod kątem ok. 64 stopni w górę (co również pasuje; z tym że tutaj ewidentnie jest przeciwny znak kąta, ale to po prostu efekt przyjęcia niewłaściwej konwencji osi).

Azymut i elewacja ISS

Kolejny krok to wyliczenie azymutu i elewacji ISS. Ten krok jest już prosty - mając z_{fov} i kąty Eulera, możemy po prostu wziąć współrzędne ISS ze zdjęcia, przerobić na wektor [x, y, z_{fov}], znormalizować, przekształcić kątami Eulera i z otrzymanych w ten sposób współrzędnych [v_x, v_y, v_z] wyliczyć azymut i elewację:

 \lambda = \arcsin v_y

 \alpha = \arctan \frac{v_x}{v_z}

Dokładniej, w przypadku azymutu, w programie najwygodniej skorzystać z funkcji zwanej najczęściej "atan2" - zwykły arcus tangens może mieć wartość tylko między -90 a 90 stopni, co nie pokrywa pełnych 360 stopni azymutu. Dwuargumentowy arcus tangens "atan2" uwzględnia znaki licznika i mianownika i potrafi dzięki temu podać wartość między -180 a 180 stopni.

Wykonanie tych obliczeń na danych dotyczących początku toru z mojego zdjęcia prowadzi do wyniku:

Według Stellarium, azymut i wysokość ISS w tamtym momencie powinny były wynosić u mnie: 329,3554 i 62,7508. Dokładność, śmiem twierdzić, całkiem dobra ;)

Ostatni krok - przecięcia prostych

Mając odczytane azymuty i elewacje punktów początku i końca toru ISS z poszczególnych zdjęć, pozostało nam znaleźć punkt, w którym przecinają się wyznaczone w ten sposób proste.

Musimy jednak wziąć pod uwagę, że azymuty i wysokości są bezpośrednio związane z lokalnymi kierunkami takimi jak pion czy północ. Konkretnie, jeśli wyrazimy kierunek jako pewien wektor, to azymut \alpha i elewacja \lambda wyznaczają kierunek:

 \vec{v} = \cos\lambda \cos\alpha \vec{e}_{polnoc} + \cos\lambda \sin\alpha \vec{e}_{wschod} + \sin\lambda \vec{e}_{gora}

Wektory \vec{e}_{polnoc}, \vec{e}_{wschod} i \vec{e}_{gora} to pewne wektory wyznaczające lokalne kierunki na północ, na wschód i w górę, których dokładne reprezentacje we współrzędnych mogą różnić się w zależności od przyjętego układu (mieliśmy zresztą okazję pośrednio doświadczyć tego wcześniej, kiedy szukając kątów Eulera używaliśmy odrobinę innego układu niż wcześniej licząc odległości kątowe między gwiazdami).

Aby znaleźć punkt przecięcia prostych wyznaczonych przez poszczególne zdjęcia, musimy położenia i lokalne kierunki wyznaczyć w jakimś jednym, globalnym układzie współrzędnych.

Tu pojawia się kolejna komplikacja - dla celów dyskusji z płaskoziemcami, będę chciał przeprowadzić obliczenia zarówno przy założeniu że Ziemia jest kulą, jak i przy założeniu że jest płaska. To oznacza, że będę musiał wprowadzić dwa różne układy współrzędnych.

Płaska Ziemia

Zacznijmy od płaskiej Ziemi, bo ten układ jest prostszy. Założymy, że Ziemia jest dyskiem w płaszczyźnie xy z osią x przechodzącą przez Greenwich i biegunem północnym w punkcie (0,0). Oś z przyjmiemy jako prostopadłą do dysku. Ponadto, założymy, że szerokość geograficzna odpowiada odległości od bieguna do danego punktu. Konkretnie, mając daną szerokość geograficzną \vartheta i długość geograficzną \varphi, możemy obliczyć położenie obserwatora następująco:

 x = (90 - \vartheta) \times 111,11 \times \cos \varphi

 y = (90 - \vartheta) \times 111,11 \times \sin \varphi

 z = 0

(Współrzędne wyrażone są w kilometrach, przyjmujemy że obserwator jest na poziomie morza - co wprowadza pewien błąd, ale niewielki, w rzeczywistości nasze odchylenia od poziomu morza nie przekraczały 300 m.)

Wektory kierunkowe będą z kolei wyglądały tak:

 \vec{e}_{polnoc} = [ -\cos \varphi,\, -\sin\varphi,\, 0 ]

 \vec{e}_{wschod} = [ -\sin\varphi,\, \cos\varphi, 0 ]

 \vec{e}_{gora} = [0,\, 0,\, 1]

Kulista Ziemia

Dla Ziemi kulistej, wprowadzimy układ w którym (0, 0, 0) to środek Ziemi, oś z jest skierowana wzdłuż ziemskiej osi obrotu (przechodzi przez bieguny), a oś x przechodzi przez przecięcie równika z południkiem Greenwich. Przyjmując R = 6371 \textrm{km}, możemy wyrazić położenie obserwatora następująco:

 x = R \cos\vartheta \cos\varphi

 y = R \cos\vartheta \sin \varphi

 z = R \sin \vartheta

Kierunki natomiast będą wyglądały następująco:

 \vec{e}_{polnoc} = [ -\sin\vartheta \cos\varphi,\, -\sin\vartheta \sin\varphi,\, \cos\vartheta ]

 \vec{e}_{wschod} = [-\sin\varphi,\, \cos\varphi,\, 0]

 \vec{e}_{gora} = [\cos\vartheta \cos\varphi,\, \cos\vartheta\sin\varphi,\, \sin\vartheta]

Właściwe dopasowywanie pozycji

Tu docieramy wreszcie do dopasowywania pozycji ISS. "Dopasowywania", gdyż metoda będzie taka sama jak przy polu widzenia i kątach Eulera - wybierzemy pewne wspołrzędne (x,y,z), obliczymy pewien błąd dopasowania, po czym każemy komputerowi znaleźć takie współrzędne, dla których błąd jest najmniejszy.

Jako błąd dopasowania przyjmiemy średnią kwadratową odległości od prostych wyznaczonych przez poszczególne zdjęcia. Już wyjaśniam :)

Mając prostą zdefiniowaną przez pewien punkt \vec{x} i kierunek \vec{v} (zakładamy też, że długość \vec{v} jest równa 1), możemy obliczyć odległość punktu \vec{y} od tej prostej następująco:

Liczenie odległości punktu y od prostej wyznaczonej przez punkt x i wektor v
  1. Wyznaczamy wektor od punktu \vec{x} do punktu \vec{y}: \vec{u} = \vec{y} - \vec{x}.
  2. Znajdujemy rzut wektora \vec{u} na wektor \vec{v}, wynoszący: (\vec{u}\cdot\vec{v})\vec{v}
  3. Różnica wektora \vec{u} i jego rzutu na wektor \vec{v} to składowa \vec{u} prostopadła do \vec{v}. Ta składowa jest wektorem prostopadłym do naszej prostej, wskazującym od pewnego punktu na prostej do punktu \vec{y} - jej długość to nasza szukana odległość.

Wobec tego, odległość punktu \vec{y} od prostej wynosi:

 d = |\vec{u} - (\vec{u}\cdot\vec{v})\vec{v}|

W tym przypadku punktem y jest założona pozycja ISS, punkt x to położenie obserwatora, a wektor \vec{v} to wektor wyznaczony przez azymut i elewację ISS i położenie obserwatora w globalnych współrzędnych.

Dla obserwatora nr i liczymy d_i: odległość ISS od prostej wyznaczonej przez zdjęcie tego obserwatora, po czym liczymy średnią odległość pozycji ISS od prostych:

 \bar{d} = \sqrt{\frac{d_1^2 + d_2^2 + ... + d_n^2}{n}}

Pozycję, dla której ta średnia jest najmniejsza, uznamy za pozycję ISS wyznaczoną przez zdjęcia. Jeśli wszystkie proste przetną się w jednym punkcie, ta średnia dla punktu najlepszego dopasowania będzie wynosiła 0 - ale ponieważ cała metoda nie jest idealnie dokładna, raczej mała szansa, że uda się osiągnąć taką wartość.

Nawiasem mówiąc, nie użyłem tutaj średniej arytmetycznej, tylko tzw. kwadratowej. Czemu?

Załóżmy, że mamy dwie proste, które w punkcie największego zbliżenia są odległe od siebie o np. 6 km. Jeśli weźmiemy jakiś punkt leżący na odcinku tych 6 km, to będzie odległy od jednej prostej o d, a od drugiej: o 6 - d. Średnia z tych odległości wynosi \frac{d + 6 - d}{2} = 3. Nieważne jaki punkt z tego odcinka weźmiemy, średnia odległość będzie 3 km.

W przypadku średniej kwadratowej jest inaczej. Ta średnia będzie wynosiła \sqrt{\frac{d^2 + (6-d)^2}{2}}. Ta liczba już zależy od d i jest najmniejsza, kiedy d wynosi 3. Innymi słowy, minimalizując tę średnią trafimy na punkt w połowie odcinka łączącego nasze proste. Gdybyśmy użyli średniej arytmetycznej, moglibyśmy wylądować w dowolnym punkcie na tym odcinku.

Prędkość stacji

Ostatnia rzecz, którą możemy wyciągnąć z tych zdjęć, to prędkość stacji - a konkretnie przybliżona średnia prędkość na odcinku, który pokonała w ciągu 30 sekund naświetlania. Jak ją otrzymać? Po prostu znaleźć pozycję ISS na początku, pozycję na końcu, i odległość między tymi pozycjami podzielić przez 30 sekund. I już.

Wyniki

Pozostało zaprezentować końcowy wynik!

Dla 3 zdjęć przedstawionych wyżej, wynik prezentuje się następująco:

Średnie odchylenia pozycji od kierunków to miara błędu dopasowania, którą opisałem wyżej.

Jak widać, niezależnie od tego, czy przyjmiemy Ziemię kulistą, czy płaską, wychodzi nam, że ISS - czymkolwiek jest - porusza się na wysokości ok. 400 km z prędkością przekraczającą 7 km/s. Żaden balon ani dron nie potrafi czegoś takiego osiągnąć. Jedyne sensowne wyjaśnienie tego faktu jest proste: ISS to faktycznie stacja kosmiczna, orbitująca wokół kulistej Ziemi.

Należy się tutaj jeszcze jedna uwaga: ktoś na pewno zwróci uwagę, że błąd dopasowania jest mniejszy dla płaskiej Ziemi niż dla kulistej, przynajmniej dla pozycji początkowej. Kogoś mogłoby kusić, żeby uznać to za dowód na płaskość Ziemi, ale muszę ostudzić zapał takich osób: różnica w błędzie dopasowania jest tu o wiele za mała, żeby o czymkolwiek świadczyć. Sama niepewność wyznaczenia kierunków ze zdjęć prawdopodobnie powoduje większe odchylenia, niż tych kilka kilometrów. Gdyby rozbieżność była duża, np. kilka km w jednym przypadku, a kilkadziesiąt w drugim - wtedy można byłoby pokusić się o jakieś wnioski. Tutaj jednak na wnioski jest o wiele za wcześnie.

Nawiasem mówiąc, prawdopodobnie dałoby się wykorzystać obserwacje ISS do rozróżnienia między płaską a kulistą Ziemią - trzeba by tylko było zebrać dane z większego obszaru. Tutaj wykonywaliśmy obserwacje z wierzchołków trójkąta o bokach 170-200 km, podczas gdy ISS jest widoczna w danym momencie z koła o promieniu ok. 1400 km. Gdyby zebrać więcej ludzi z różnych miejsc odległych o kilkaset km, tak że niektórzy widzieliby ją w pobliżu zenitu, a inni blisko horyzontu - mogłoby się okazać, że jeden z modeli pasuje znacznie lepiej, niż drugi.

Podsumowanie

Pomiary położenia ISS okazały się świetną zabawą, a dokładność przekroczyła moje oczekiwania :)

Prawdopodobnie będziemy jeszcze przeprowadzać kolejne obserwacje. Chętnych do wzięcia udziału zapraszam na serwer Discord, na którym koordynujemy przedsięwzięcie (tu uwaga: głównie skupia on ludzi kłócących się z płaskoziemcami na Youtube, więc jeśli tam wejdziecie, nie bądźcie zaskoczeni ;) ale mamy osobny kanał przeznaczony wyłącznie na rozmowy o pomiarach pozycji ISS). Im więcej ludzi fotografuje ISS naraz, tym dokładniejszy wynik, więc zachęcam :)

Podejrzewam, że płaskoziemcy - mimo dość rozstrzygających wyników świadczących o naturze ISS - pozostaną nieprzekonani, ale na szczęście nie o to w tym wszystkim chodziło. Chodziło o zabawę i przekonanie się, jak dobry wynik uda się uzyskać - te cele zostały osiągnięte :)