Geohashing

Geohashing

Zabawa w podróże na chybił-trafił, gdzie cel wyprawy wyznaczają notowania nowojorskiej giełdy.

niedziela, 17 grudnia 2017

Podróże

Geohashing to terenowa zabawa GPS-owa, w której celem jest dotarcie do punktów na powierzchni Ziemi, których położenie generowane jest prostym algorytmem na podstawie bieżącej daty oraz notowań indeksu nowojorskiej giełdy, Dow Jones Industry Average. Punkty nigdy nie znajdują się dalej niż 150 kilometrów od grającego, ale poza tym mogą wylądować absolutnie gdziekolwiek: w lesie, na środku autostrady, w jeziorze, w klatce lwa w ZOO... Grający podejmują ekspedycje, próbując dotrzeć albo we wskazany punkt, albo tak blisko, jak się da - obowiązuje zasada, że ekspedycja jest nieważna, jeśli bez pozwolenia wkroczymy na ogrodzony teren lub zlekceważymy znak "Zakaz wstępu". Trzeba też zmieścić się w limicie czasu, ponieważ co 24 godziny punkty zmieniają swoje położenie. Poza tym? Liczy się pomysłowość, dobra zabawa i udokumentowanie ekspedycji, za którą możemy zdobyć różne osiągnięcia.

O istnieniu geohashingu dowiedziałem się tak naprawdę... wczoraj. Narodził się on jednak prawie 10 lat temu za sprawą Randalla Munroe, twórcy internetowego komiksu xkcd, który w odcinku #426 opublikował algorytm wyznaczania losowych punktów na Ziemi na podst. notowań Dow Jones, jako parodię innej zabawy GPS, geocachingu. Pomysł chwycił, a fani komiksu rzeczywiście zaczęli odbywać ekspedycje do tak wyznaczonych punktów i dokumentować je na specjalnie w tym celu założonym wiki. Okazało się, że jeden z punktów na 17 grudnia 2017 roku wylądował zaledwie 11 kilometrów od centrum Krakowa i tak oto odbyłem dzisiaj swą pierwszą ekspedycję :).

Jak wyznaczać punkty?

Obliczeń nie musimy oczywiście robić ręcznie, ponieważ istnieją odpowiednie kalkulatory, np. xkcd.com/geohashing. Warto jednak poznać ogólną mechanikę, by wiedzieć, skąd się to wszystko bierze i jak się odnaleźć. W geohashingu Ziemia podzielona jest przez wszystkie główne południki i równoleżniki na tzw. graticules (po polsku będę stosował słowo kwadranty), czyli obszary o szerokości i długości dokładnie 1 stopnia geograficznego. We wszystkich kwadrantach losowy punkt ląduje dokładnie w tym samym miejscu względem ich granic - algorytm bowiem oblicza jedynie przesunięcie w obrębie kwadrantu. Dla ciekawskich przedstawiam, jak to się odbywa:

  1. Weź bieżącą datę oraz najnowszą dostępną1 wartość otwarcia Dow Jones Industry Average oraz sklej je ze sobą, np.: 2017-12-17-24585.71
  2. Przepuść powyższy tekst przez kryptograficzną funkcję skrótu MD5: md5(2017-12-17-24585.71) = 0036F3FC9C3882CBD335137BD297E64C
  3. Rozdziel wynik na dwie równe części: 0036F3FC9C3882CB oraz D335137BD297E64C
  4. Dodaj 0. na początek, by zrobić z nich ułamki: 0.0036F3FC9C3882CB, 0.D335137BD297E64C
  5. Zamień uzyskane ułamki z systemu szesnastkowego na dziesiętny: 0.0008385173534595613 oraz 0.825028627138266

Teraz bierzemy nasze obecne położenie geograficzne, obcinamy część ułamkową, zostawiając same stopnie (np. 50° N, 19°E) i dodajemy do nich uzyskane wyżej przesunięcia: 50.0008385173534595613, 19.825028627138266. Tak oto właśnie powstały współrzędne celu mej pierwszej ekspedycji, który wypadł leżących na zachodzie Krakowa Lasach Tynieckich, w pobliżu ulicy Wielogórskiej.

Ekspedycja do punktu 2017-12-17, 50 19

Ponieważ cel leżał zaledwie kilkanaście kilometrów od centrum Krakowa, postanowiłem udać się tam spod Wawelu piechotą. Przed wyruszeniem pobawiłem się trochę narzędziem Shotgun, służącym do znajdowania tzw. retrohashów, czyli miejsc, w których punkty znajdowały się w przeszłości. Odkryłem, że wzdłuż trasy mojego przejścia znajdowało się ich aż sześć i postanowiłem dotrzeć także i do nich. Pierwszy z nich miałem w zasadzie w zasięgu wzroku - punkt z dnia 1981-01-25 leżał o kilka metrów od pomnika psa Dżoka na Bulwarze Czerwieńskim. Właśnie skończyła się dość ostra śnieżyca i dało się robić zdjęcia, aczkolwiek czułem się dość głupio, gdy fotografowałem lustrzanką odbiornik GPS :).

Ilustracja
Początek ekspedycji, Wzgórze Wawelskie.
Ilustracja
Pierwszy retrohash, 1981-01-25, zaledwie kilkaset metrów od Wawelu.

Pierwsze koty za płoty. Przekroczyłem Wisłę po Moście Grunwaldzkim i poszedłem przez tereny dawnej wsi Dębniki, na pograniczu Osiedla Podwawelskiego. W pewnym momencie skręciłem z głównej drogi w jedną ze starych ulic, gdzie przy starej kaplicy znajdował się kolejny historyczny punkt: 1998-02-25. Po przekroczeniu ul. Kapelanka, domy urywają się zaledwie po kilkuset metrach, by ustąpić miejsca skałom wapiennym i zagajnikom. Zaczyna się tutaj także granica parku krajobrazowego, dlatego w pogodne dni jest to cel spacerów wielu krakowian. Kraków ma tę ciekawą cechę, że nie trzeba zbytnio oddalać się od centrum, by znaleźć się w dziczy. Sam kiedyś osobiście spotkałem w zaroślach sarnę zaledwie 2 kilometry od Wawelu. Ja jednak nie szedłem do parku, lecz chwilę wcześniej skręciłem w ulicę Św. Jacka. Idąc wzdłuż nowych osiedli domków dotarłem do punktu 1980-11-23, a kilkaset metrów dalej do 1983-02-02. W pobliżu znajdował się jeszcze znacznie bardziej świeży retrohash z 2016 roku, lecz na jego miejscu stały bloki, a teren był ogrodzony.

Ilustracja
Widok na klasztor Salwatorianów z trzeciego odwiedzonego punktu retro, przy ul. Św. Jacka.

Skończyły się domy, a droga robiła się coraz węższa. Jednak niemal idealnie na wprost miałem najbardziej nielubianą przeze mnie dzielnicę Krakowa, Ruczaj, urbanistyczny koszmar zabudowany bez ładu i składu przez deweloperów, ostatecznie dobity przez miejską inwestycję znaną szerszej jako Autostrada Skawina. Ogromna, ogrodzona wysokimi ekranami droga ciągnie się przez cały Ruczaj, z doklejonym z boku na siłę tramwajem tylko po to, by zdobyć dofinansowanie z Unii Europejskiej, a wszystko pod hasłem zrównoważonego transportu. W zaułkach Ruczaju gubią się nawet jego mieszkańcy, ja się tam nie zapuszczam, jeśli nie muszę. I na szczęście tym razem nie musiałem. Po prawej stronie miałem bowiem nowy Kampus Uniwersytetu Jagiellońskiego i ciągnący się przez całą jego długość pieszy deptak. Później tylko krótka wycieczka przez łąki i tuż za Narodowym Centrum Promieniowania "Solaris" sfotografowałem kolejny punkcik: 1973-10-09.

Ilustracja
Panorama Ruczaju widziana z piątego punktu retro, w pobliżu Kampusu UJ.

Dalsza droga wiodła przez zagłębie biurowe i dawną wieś Skotniki. Przeszedłszy mostem nad autostradą, znalazłem się w Lesie Tynieckim. Są tam szlaki turystyczne, ale oprócz nich, mamy tam jeszcze dziesięć razy tyle ścieżek, dlatego lepiej nie zapuszczać się tam bez mapy. Była bardzo ładna pogoda i spotkałem kilka spacerujących grupek ludzi. Szybko jednak zszedłem ze szlaku. Zaliczyłem 1967-06-08, a kilkaset metrów dalej, tuż przed wyjściem z lasu znalazłem ostateczny cel, punkt z dnia dzisiejszego. Było to niczym niewyróżniające się zbocze wzgórza, porośnięte lasem, na prawo od ścieżki. Posiedziałem tam chwilę, próbując głównie uporać się z wariującym GPS-em, porobiłem zdjęcia dokumentujące dotarcie i poszedłem dalej, by dotrzeć do pętli autobusowej i wrócić do centrum.

Ilustracja
Lasy Tynieckie, to tam znajdował się mój cel.
Ilustracja
Przechodzimy nad autostradą A4. W oddali widoczny klasztor Kamedułów.
Ilustracja
Trochę krążenia i walki z GPS-em i w końcu jest: 2017-12-17, 50 19
Ilustracja
Szukany punkt znajdował się dosłownie o krok od wyjścia z lasu na ulicę Wielogórską.

Osiągnięcia

Już sam pomysł geohashingu jest komiczny, jednak tym, co doprowadziło mnie do łez, była lista możliwych do zdobycia osiągnięć. Oprócz całkowicie zwyczajnych, jak np. "dotarcie na miejsce transportem publicznym" czy "dopłynięcie do punktu łodzią" są też bardziej zakręcone. Oto niektóre z nich, które szczególnie przypadły mi do gustu:

  • Minesweeper achievement - za zaliczenie w ciągu jednego dnia punktu nie tylko w aktualnym kwadrancie, ale też wszystkich ośmiu dookoła niego,
  • Time-traveller achievement - za zaliczenie w ciągu jednego dnia dwóch różnych punktów o dokładnie tej samej godzinie. Osiągnięcie da się zrealizować w pobliżu granic stref czasowych - wystarczy, że w przeciągu godziny dotrzemy do punktu w sąsiednim kwadrancie, który ma czas przesunięty o jedną godzinę w tył.
  • Hash collision achievement - za znalezienie w danym punkcie skrytki geocache,
  • Hashcat achievement - za znalezienie na miejscu kota, który da się pogłaskać, wziąć na ręce i sfotografować.
  • Velociraptor achievement - za dotarcie do punktu, pomimo zostania zaatakowanym przez welociraptora (należy załączyć zdjęcie ran pasujących do układu pazurów).
  • Hobbit achievement - za dotarcie na miejsce w stylu hobbita, tj. boso, z przynajmniej dwoma postojami na posiłek i pierścieniem na palcu.
  • Bill Gates achievement - za taką manipulację indeksem Dow Jones, aby w danym dniu punkt znalazł się w określonym, ogłoszonym wcześniej przez Ciebie miejscu.

Świętym Graalem osiągnięć jest Couch potato achievement przyznawany wtedy, gdy punkt na dany dzień wyląduje dokładnie na Twoim domu. Jak dotąd nikomu z grających nie udało się go jeszcze uzyskać, aczkolwiek jeden był bardzo blisko: punkt znalazł się 11 metrów od granicy jego działki. Pośmiertnie natomiast można zdobyć Coffin potato achievement, jeśli punkt znajdzie się na czyimś grobie.

Oprócz zwykłych geohaszy, każdego dnia wyliczany jest również tzw. globalhash. Wartości przesunięć, które uzyskujemy normalnie, mnożymy przez 180 i 360 i tak powstaje dodatkowy, globalny punkt. Dotarcie do niego jest znacznie większym wyzwaniem, ponieważ równie dobrze może znaleźć się on na drugiej półkuli, albo na środku oceanu. Kiedy kilka lat temu wylądował on na jakimś polu w Wielkopolsce, ekipa z Wiednia podróżowała do niego przez całą noc ponad 800 kilometrów. Globalhash z dnia dzisiejszego znajduje się gdzieś na Antarktydzie.

Podsumowanie

Pomysł jeżdżenia do miejsc wyliczanych na podstawie notowań giełdy może wydawać się absurdalny, ale mi osobiście się podoba. Czasami łapię się na tym, że chętnie bym się gdzieś np. przejechał rowerem, ale nie mam pomysłu, dokąd i nawet patrzenie na mapę nie pomaga. Teraz będę mógł sprawdzić czy przypadkiem w okolicy nie wylądował jakiś geohash i po prostu spróbować się do niego dostać. Przez prawie dziesięć lat geohashing dostarcza ludziom na całym świecie sporo radości. Bywali pasjonaci, który wynajmowali helikopter, aby dolecieć do jakiegoś wyjątkowo niedostępnego punktu, albo piloci komercyjnych odrzutowców, którzy próbowali udokumentować przelot nad haszem znajdującym się na trasie lotu. Jeden z graczy był ratownikiem medycznym i udało mi się przez geohash przejechać karetką na sygnale, a później wrócić razem z poszkodowanym.

Pewnym problemem technicznym dla osób niebędących informatykami może być strona projektu: wiki.xkcd.com/geohashing. Zbudowana jest ona na tym samym oprogramowaniu, co Wikipedia i aby udokumentować tam swoją przygodę, trzeba poświęcić trochę czasu na zapoznanie się z techniczną stroną tworzenia artykułów, podpinania osiągnięć itd. Ma to swoje wady i zalety. Z jednej strony, bawią się w to ludzie, którym się naprawdę chce i którzy raczej będą szanować takie rzeczy, jak niewchodzenie na tereny prywatne. Z drugiej, trudno jest zbudować w okolicy jakąś sensowną społeczność grających, z którymi można by się np. wspólnie umawiać na ekspedycje.


  1. Już kilka dni po publikacji Randall doprecyzował wybór wartości, tworząc tzw. regułę 30W. Na wschód od południka 30°W bierzemy wartość indeksu z dnia poprzedniego. Chodzi o korektę wpływu stref czasowych - dla Europy, Azji, Afryki i Australii, otwarcie giełdy następowało w środku lub nawet pod koniec dnia, co często czyniło dotarcie do punktów trudnym lub wręcz niemożliwym. Obecnie toczy się debata nad wprowadzeniem reguły 30W globalnie. 

Tomasz Jędrzejewski

Programista Javy, lider techniczny. W wolnych chwilach podróżuje, realizując od kilku lat projekty długodystansowych wypraw pieszych.

Autor zdjęcia nagłówkowego: Paul Simpson, CC-BY-2.0

Komentarze (0)

Skomentuj

Od 3 do 40 znaków.

Wymagany, nie będzie publikowany.

Odpowiedz na pytanie.

Edycja Podgląd

Od 10 do 8000 znaków.

Wszystkie komentarze są moderowane i muszą być zatwierdzone przed publikacją.