Notatka na marginesie

Mapbox GL2

Rok 2020 dla geoinformatyki jest czymś niesamowitym, od początku roku powstało dziesiątki aplikacji mapowych o tematyce covidowej, w sierpniu GUGIK uwolnił dane przestrzenne a w grudniu Mapbox zrobił update swojej biblioteki javascriptowej wzbogacając ją o możliwość wyświetlania ukształtowania terenu w 3D. Czy coś jeszcze nas zaskoczy? Może Google Maps stanie się darmowe? Leaflet zyska możliwość obracania mapy?

update:

nie wierzę, że to sie dzieje…

https://www.npmjs.com/package/leaflet-rotate-map
Informacja o stanie

Hackaton PFR dla miast

Wspólnie z chłopakami z pracy podjęliśmy decyzję o dołączeniu do eventu organizowanego przez PFR. Celem hackatonu był coś tam pomyśleć coś tam poprogramować rozwiązać problemy trapiące średnie miasta w dobie kryzysu covidowego. Konkurencja była silna, zgłosiło się kilkaset osób. Nasz temat i miasto wybraliśmy po burzliwej dyskusji. Jako drugi, zapasowy, najciekawszy i najtrudniejszy – Świdnik: Mobilność szyta na miarę – analiza ruchu miejskiego w celu pozyskania danych do rozwoju infrastruktury publicznej. Jako pierwszy, temat najbezpieczniejszy i w którym mamy doświadczenie – Chełm: Bezpieczna segregacja odpadów – uszczelnienie systemu gospodarki śmieciowej w celu zmniejszenia ryzyka związanego z odbiorem odpadów medycznych. Celem było zaprojektowanie i przedstawienie MVP aplikacji geoportalowej, która spełni wymagania hackatonu. Przyznam się, że praca przez ponad 48 godziny z drobnymi przerwami na sen, w stresie i nawarstwiających problemach technicznych (linux żondźi) moje umiejętności nieco klęknęły. Wyciągnąłem wnioski, czeka mnie jeszcze sporo pracy własnej ale okazało się, że… zakwalifikowaliśmy się do FINAŁU. Motywujące, rzeczywiście mogliśmy wygrać jednak na ten moment „efekt nieprzegrania” mnie satysfakcjonuje. Gratulacje dla zwycięskiego zespołu. Poniżej link, do naszej prezentacji, występujemy jako pierwsi. Niestety organizatorzy nie włączyli nagrywania i prezentacja jest ucięta na początku. Chętnie udostępnię pełna wersję „prezki”.

Update po podaniu oficjalnych wyników.

No drugie miejsce… cieszy i boli zarazem 😀

Zmiana czasu ty k@#$&!

Ze wszystkich stałych fragmentów gry zwanej jako „Krąg Życia” nie jestem w stanie zidentyfikować bardziej upierdliwej niż co-półroczna zmiana czasu. Generalnie trafiają do mnie wszystkie argumenty „za” liczę jednak, że za rok już nie będziemy tego robić. Kompletnie nie jestem w stanie wydać uczciwego osądu, który czas jest lepszy, czy to letni czy zimowy. Przez większość swojego życia szkolnego i zawodowego nie miałem problemu z wychodzeniem „kiedy jest jeszcze ciemno” i wracaniem „kiedy już jest ciemno”. Jakoś tak sobie wymyśliłem, że lubię wstawać w okolicach świtu i szybko wychodzić z domu, idę więc o zakład, że moja wydajność wzrosła by o parę punktów, gdybym nie musiał się przyzwyczajać przez parę miesięcy do nowego układu wskazówek zegara.

Izochrony w BikeCitizens

Natrafiłem na kolejną mutację aplikacji do wyznaczania izochron. Mimo, iż temat jest znany od lat przypominam, że izochrony to takie linie na mapie, które ukazują miejsca o jednakowej osiągalności czasowej. Metodę stosuję dość często w poszukiwaniach „idealnej lokalizacji do zamieszkania, która nie istnieje” ale o tym kiedy indziej. Narzędzi gisowych oraz webappek do generowanie tego typu map jest co-najmniej kilka pochylmy się natomiast nad map.bikecitizens.net gdyż zawiera ona niezły ficzer, który wyróżnia stronkę na tle konkurencji. Mianowicie:

Potężną animowaną wizualizację izochron dla rowerzysty. Wystarczy zerknąć na filmik poniżej.

Fajne. Wiem jak taki efekt uzyskać z poziomu frontendu. Klikanie w kolejne punkty i sprawdzanie gdzie jestem w stanie dostać się rowerem w zadanym czasie jest wielokrotnie bardziej satysfakcjonujące niż oglądanie tego filmiku. Jako niespełniony UX designer na tym etapie mógłbym dać 10/10 ale moje wrodzone malkontenctwo nie pozwala na to rozważmy zatem…

Przypadki brzegowe

Pierwszy kontakt z serwisem wywołał u mnie wrażenie jakieś mega-wydajności i szybkości. Dłuższa sesja z apką i okazało się, poprzez sprytne wymuszenie na użytkowniku podania „wybranej lokalizacji” graf na którym wykonuje się algorytm zostaje podzielony na obszary miasta i prowincje. Dzięki temu użytkownik nie czeka na wynik bardzo długo ale w okolicach granic prowincji możemy nadziać się na coś takiego:

Z Koluszek do Katarzynowa nie dojedziesz rowerem 🙁

Nie klasyfikowałbym tego zjawiska jako „bug” jest to raczej „dirty-hack”. Użytkownik mimo wszystko może przejść na wyższy poziom prowincji i uzyskać swoją mapę. Ot upierdliwość…

Drugą kwestią jest dobór kategorii dróg do obliczeń. BikeCitizen uznaje tylko ulice o najwyższym priorytecie z pominięciem części nieutwardzonych traktów i ścieżek. Szkoda, wydajnościowy zysk nie zaspokoi potrzeb „fanatyków dokładności i miłośników stuprocentowego pokrycia” zwłaszcza, że chyba o to chodzi w jeździe rowerem aby używać każdego możliwego skrótu i parku co nie? Problem ilustruje screenshot poniżej.

Znalazłem jeszcze kilka przykładów na zbyt silną generalizację sieci drogowej, co mogłoby nieco fałszować końcowy wynik ale przez brak zrzutów pomijam ten aspekt.

Reasumując apka jest naprawdę przyjemna i świetnie nadaje się do tworzenia szybkich i przeglądowych wizualizacji. Polecam i podziwiam twórców.

Alternatywy? Oczywiście istnieją. Najważniejsza to OpenRouteService. Pozwalają na wygenerowanie izochron, izodystant w formie poligonów na podstawie dużej ilości parametrów również przez interfejs API. Minusem jest jednak niedokładność.

Iso4App – chyba najbardziej dojrzałe API z mnogością możliwości. Najciekawszą opcją jest możliwość pokolorowania sieci drogowej wartościami z strefy dojazdu. Dużą wadą jest natomiast fakt, że dla części usług brakuje grafu dla Polski…. no szkoda wch..j…

Film

Mapy elastyczne?

Kolejna nerdowska rzecz, która jest fajna i której kompletnie nie rozumiem. Przyznam się szczerze, że nie do końca wiem jak podobny ficzer uzyskać w webowej aplikacji GIS ale też nie jestem w stanie znaleźć zastosowania dla tego efektu.

Produkcja jest opisana zdaniem: „Experience the third dimension of terrain how you have never before” …i tyle…

Sprawdź sam i napisz w komentarzu co o tym myślisz. Poniżej bezpośredni link do appki, gdzie można pobawić się parametrami:

http://eu.elasticterrain.xyz/map/

Informacja o stanie

OpenStreetMap w rozszerzonej rzeczywistości – AR

Podejść do rozszerzonej rzeczywistości miałem co najmniej kilka wszystkie zakończyły się technologicznym sukcesem i komercyjną porażką. Generalnie mocno sceptycznie podchodzę do tego typu rozwiązań z użyciem JavaScriptu ale po pierwszej iteracji jestem zafascynowany.

Pierwsza wersja działa bardzo stabilnie, obiekty elegancko wyświetlają się jako nakładka na obraz z kamery. Jestem po jednej próbie w terenie, podszedłem do kilku POIów, które to reprezentują sklepy i o dziwo obiekty na ekranie zwiększały swój rozmiar po przybliżeniu się. Grejtsakces.

Problemy?

GPS działa zadowalająco, poszczególne POI pokrywają się z azymutem w rzeczywistości. Ale… idę o zakład, że punkty są przesunięte o kilka-kilkanaście metrów.

Overpass API dla danych OSM.org. Trzeba się mocno zmóżdżyć, żeby się do nich dobrać. Pierwsza wersja wyświetla tylko część sklepów w okolicy. Niestety operatorzy/kartografowie OSMu w niespójny sposób mapują obiekty. Api zwraca część sklepów jako punkty, a część jako linie(!). No upierdliwe to ponieważ trzeba dobrze napisać query a potem poprawnie obsłużyć po stronie klienta.

Zachęcam do testów. Link będzie dostępny jeszcze przez jakiś czas.

https://geomonitor.pl/artest/

Update 1

Umożliwiłem interakcję. Wystarczy najechać kursorem na obiekt a wyświetlą się informacje na jego temat.

Numeryczny Model Terenu w Tatrach

Zacząłem testować numeryczny model terenu udostępniony przez GUGIK. No coś pięknego… Na poniższym obrazku chyba najbardziej spektakularne geograficznie miejsce w Tenkraju. Spodziewajcie się dramatycznego podniesienia poziomu doznań UX w moich przyszłych produkcjach.

Mały hint: Pojedyncze „oczko” modelu ma 1 metr, co i tak jest niezłym wynikiem. Warto więc nieco rozmyć warstwę aby uniknąć poniższego brzydala. Pobaw się z wartościami resamplingu w opcjach stylu warstwy.

Nie byłbym sobą gdybym nie na trafił na jakiś bug albo problem. Niestety brakuje jednego pliku z pokryciem nmt. No koszmar perfekcjonisty… cały projekt do wyrzucenia xD

what3words – update

Zachęcony miłą odpowiedzią od Pani z supportu what3words, po raz drugi podszedłem do „mapy kwadratów”.

Wtyczka jednak działa.

Nie napisano o tym w tutorialu do wtyczki ale w Ustawienia -> Opcje -> Processing -> Dostawcy algorytmów -> what3words Tools jest checkbox, którego „zaptaszenie” powoduje dodanie nowej opcji w panelu algorytmów: Add what3words field.

Jeszcze tylko jeden strzał do API:

https://api.what3words.com/v3/grid-section?bounding-box=52.23166363,%2021.00783523,52.23211480,%2021.00875762&format=geojson&key=< TUTAJ WKLEJ SWÓJ API KEY >

który to zwróci brzydkiego geojsona z siatką kwadratów, jeszcze tylko kilka kroków prowadzących do wyodrębniania wierzchołków do warstwy punktów i możemy skorzystać z wcześniej aktywowanego algorytmu. Po nadaniu odpowiedniego atrybutu i etykietowaniu dostajemy coś takiego:

No nadal nic szczególnego… ani przydatnego…

po co mi what3words?

Projekt w zasadzie znany od paru lat ale dzisiaj na Instagramie wyskoczyła mi ich reklama wtyczki do qgis więc wróciłem do tematu.

Czym to ma być?

Idea ta ma zastąpić układy współrzędnych i gps mnemonicznym systemem, który polega na pokryciu powierzchni tej planety siatką kwadratów i przyporządkowaniu im trzech słów jako identyfikator np.

///łuski.wzorowa.medal

Czym ten zapis jest lepszy od:

Łódź, Piotrkowska 147?

Można powiedzieć, że „no ale wiesz, w terenie czy gdzieś na wsi nie masz adresu przecież”. Tak ale mam giepsa ewentualnie analogowe mapy. Niestety system ten praktycznie na każdym poziomie wymaga dostępu do Internetu, bądź ingerencji w infrastrukturę żeby te trzy słowa zapisać. Na ogół jestem fanem nerdowskich i rewolucyjnych pomysłów ale w tym przypadku nie kupuję tego. Na ten moment w sytuacji survivalowej (powrót do domu po kilku głębszych) wolałbym polegać na charakterystycznych punktach terenu i umiejętności czytania współrzędnych. Miało być o wtyczce. No jest średnio. Wtyczki nie ma w oficjalnym repozytorium, trzeba więc ją pobrać ze strony developera. Pozwala ona na geokodowanie i degeokodowanie pojedynczych punktów i działa to zgodnie z oczekiwaniami. Niestety według mnie najważniejszej funkcjonalności, opisanej w dokumentacji czyli „masowego dopisywania adresu/3słów do wielu punktów” po prostu nie ma. Chciałem obejrzeć „te kwadraty” wraz z nazwami w surowej formie więc napisałem sobie skrypcik pythona, który ściąga dane przez api. No bardzo to proste i mnemoniczne…. takie dla ludzi….

wyszło coś takiego 🙁

Mimo wszystko fascynuje mnie jak duża organizacja stoi za tą ideą, jak dobrze opracowane mają swoje strony i apki i że sprzedają api za 45$ miesięcznie. Poszperałem troche w necie i w dyskusjach najciekawszym zastosowaniem wydało się naklejanie „3słów” na latarnie, żeby turysta w obcym sobie mieście mógł bezproblemowo wskazać taksówkarzowi przez telefon swoją pozycję. Od razu na myśl nasuwa się taki obrazek:

Oczywiście polecam potestować sobie to rozwiązanie na what3words.com. Jestem ciekaw innych pomysłów i zastosowań.

…znajduje się w Wietnamie xD

upgrade covidowej maseczki – DIY

Nie chce mi się poruszać tematu skuteczność maseczek samych w sobie ale dużo grałem w Fallouty i bardzo lubię tematy bushcraftowo-survivalowe. Twierdzę więc, że maseczki nosić wypada, choćby z powodu konieczności przygotowania ciała, duszy i umysłu na rzeczywiście ciężkie czasy.

Po tygodniach, problemów z dostępnością, maseczkę chyba każdy już zdobył i wie jak potrafią być wku#$&@*!e. Spędziłem wiele tygodni na badaniach, obserwacjach w terenie i eksperymentach, zidentyfikowałem następujące problemy:

  1. Zapominam wziąć ją z domu [i1]
  2. Są niewygodne
    1. obcierają uszy [i2] (wiem, że jest opcja na montaż „za głową”, ale też są irytujące po czasie)
    2. nie mają możliwości poluźnienia [i3]
  3. Czas [t1] od znalezienia jej w kieszeni jest zbyt długi
    1. zaplątują się w klucze
    2. podczas wyciągania ryzykujesz, że twój drogi ajfon wypadnie i stłuczesz szybkę
    3. nie wiadomo, w której kieszeni się znajduje
    4. schowana nie wietrzy się i nie pozbywa wirusów i bakterii
  4. Czas [t2] setupu na twarzy jest za długi, zbyt problematyczny i generuje niepotrzebne błędy (krzyżowe splątanie na uchu powoduje ból i dyskomfort)

Tym samy dochodzimy do wniosku, iż wzór na upierdliwość maseczki [um] to:

um = i1 * [( t1 + t2 ) * i1 * i2 * i3 ]

Nie przejmuj się znalazłem jeden prosty trik, aby minister Szumowski mnie znienawidził a Ty zakończył swe szarpanki z maseczkami.

Wskaźnik um mojego pomysłu opisuje równanie:

um = i1 * t2/2 – i3

a do rozwiązania problemu możemy dojść poprzez zastosowanie:

sznureczek + ściągacz

I tyle… Koniec z mówieniem, że nie mam, zapomniałem, koniec z szukaniem po kieszeniach, koniec z niewygodą, uciskiem i plątającymi się kluczami, nie będziesz już stał pod sklepem jak debil mocując się z gumkami. W zamian za nic masz customizowaną maseczkę z dwoma trybami montażu: klasycznym „za uszy” i dodatkowym „za czaszkę”. Ściągacz da potrzebną wygodę i elastyczność oraz opcję na ukrycie maseczki pod bluzą w krytycznych momentach kiedy natrafisz do środowiska nawiedzonych antyszczepionkowców i antykowidowców. Zachowasz wygodę i styl bo nie masz już potrzeby zakładania maseczki na łokieć jak to robią w krajach ciepłych albo na jedno ucho jak lekarze…

Nie spotkałem się z tym wcześniej więc udostępniam projekt na zasadach OpenSource. Liczę na liczne forki i pluginy.

Informacja o stanie

Stream pogodowy

Projekt z kategorii „pomiędzy szaleństwem, kreatywnością a głupotą”. Nie znalazłem nic podobnego na necie więc warto spróbować tego podejścia, żeby chociaż móc powiedzieć że byłem „pierwszym”, nawet jeżeli projekt upadnie z jakiegoś powodu.

O co chodzi?

Integracja różnego rodzaju danych przestrzennych zawsze wywoływała u mnie szybsze bicie serca, to pewnie skrzywienie zawodowe „gisowca” ale po prostu lubię patrzeć na kilka pozornie nie związanych ze sobą map. Dodając do koncepcji, aktualną koronawirusową modę na real-time-dashboardy wychodzi mi coś takiego.

Dlaczego nie zrobić kolejnej aplikacji?

Powodów jest kilka. Przede wszystkim to czas na wytworzenie takiego wrappera. Po drugie to też czas na „ogarnięcie danych od dostawców”, poza informacjami meteo, większość z nich jest stosunkowo trudno dostępna. Po trzecie. Nie będzie Ci się chciało w to klikać… apke raz zainstalujesz i zapomnisz… adres url dodasz do zakładek… i zapomnisz a na youtubie siedzisz cały czas więc jest szansa, że ten youtube ci przypomni o projekcie xD

Jak to działa?

  1. No pewne minimum kodu trzeba było napisać ale na prawdę mało. Tylko podstawowe funkcjonalności związane odświeżaniem, centrowaniem i zoom levelem.
  2. Resztę warstw streamingu ogarnia OBS Studio.
  3. Muszę jeszcze to przerzucić na jakiś mały tani serwerek żeby prądu dużo nie żarł.

Jak używać?

Domyślam się, że nie będziesz siedział przed komputerem i oglądał pogodę ale jeżeli przebywasz w swoim high-techowym biurze i masz wolny monitor zawieszony gdzieś na ścianie to obok jenkinsa, nieprzechodzących testów i generujących się raportów, widok kolorowych map w trybie pełnoekranowym będzie wyglądał bardzo profesjonalnie 😛

wciąż mnie to bawi

Pomimo lat spędzonych na pracy przy różnego mapach, świadomości istnienia zjawiska, obejrzenia wielu filmów pod tytułem „dlaczego mapy kłamią”, powtarzania „pilnujmy układów współrzędnych” wciąż WGS84/Pseudo-Merkator EPSG:3857 doprowadza mnie do wewnętrznego niepokoju…

Na bank widziałeś setki takich animacji ale zerknij i na tą…

Przez sam fakt używania na co dzień nawigacji google i kartogramów opartych o ich odwzorowanie umysł lubi spłatać kognitywnego figla i zapomnieć że stosunek PotęgaDanegoKraju/Powierzchnia mimo wszystko wypada na niekorzyść aktualnych mocarstw takich jak Rosja czy USA.

Ja to wiem, Ty to wiesz, Twój Stary to wie ale czy twój polityk wybrany w przyszłych bądź poprzednich wyborach ma świadomość, występowania tej zależności? Możesz go zapytać.

Było publikowane setki razy ale przy okazji tego wpisu jeszcze raz potestuj sobie zachowanie powierzchni danego państwa w przypadku zmiany szerokości geograficznej.

https://thetruesize.com/