Wybierz region
pl
  • PL
  • EN
Wydrukuj

GIS w teorii i praktyce – część 1

Czym jest GIS? Za tym akronimem stoi Geographical Information Systems, czyli Systemy Informacji Geoprzestrzennej.

Jest to system, który umożliwia pozyskiwanie, przechowywanie, analizowanie i wizualizowanie danych o charakterze przestrzennym w celu wsparcia procesu decyzyjnego. Dane przestrzenne to takie informacje, które mają pewne odniesienie do położenia albo obszaru geograficznego. Za pomocą integracji wielu rodzajów danych, ich analizie przestrzennej oraz wizualizacji w 2D lub 3D można doszukać się relacji, wzorców i podjąć odpowiednie decyzje.

Wiele informacji i danych, którymi zajmujemy się na co dzień posiada swoje odniesienie do przestrzeni. GIS pozwala odpowiedzieć na przykładowo takie pytania:

  • Jakimi autobusami dojadę do pracy?
  • Gdzie jest najbliższa apteka?
  • Jaka jest najkrótsza droga do sali koncertowej?
  • Które miejsce w okolicy jest najlepszym punktem widokowym?

Ale także:

  • O ile zmieniła się pokrywa lodowa na biegunie w stosunku do 2019r.?
  • Jak efektywnie zarządzić flotą pojazdów w mieście?
  • Ile osób mieszka w obrębie 200 metrów od anten telefonii komórkowej?
  • Jak kształtuje się wzrost cen mieszkań w zależności od lokalizacji?

 

Rysunek 1 OpenStreetMap (OSM) to bardzo rozwinięte otwarte źródło danych na potrzeby aplikacji GIS

Oprogramowanie GIS można podzielić na kilka kategorii takich jak Web GIS, Desktop GIS oraz oprogramowanie specjalistyczne.

Rozwiązania typu Desktop GIS to przeważnie skomplikowane oprogramowanie wykorzystywane do tworzenia, edycji, wizualizowania, zarządzania i analizowania danymi przestrzennymi. Podobnie jak np. Adobe Photoshop czy Microsoft Excel, pozwalają na wykonanie podstawowych działań dość łatwo, ale opanowanie ich w stopniu zaawansowanym zabiera bardzo dużo czasu. Przeważnie takie narzędzia można wygodnie oskryptowywać bądź rozszerzać z wykorzystaniem np. języka Python.

Rysunek 2 QGIS to darmowe narzędzie typu Desktop GIS za pomocą którego można zweryfikować dane i udostępniane serwisy GIS, ale także przeprowadzić zaawansowane analizy geoprzestrzenne

Istnieje szeroka gama oprogramowania specjalistycznego pozwalającego na wykonywanie bardzo wyspecjalizowanych zadań takich jak klasyfikacja obrazu, czy praktyczne wykorzystanie chmur punktów LIDAR.

Rysunek 3 Publicznie dostępne dane LIDAR dla okolic Filadelfii pozwalają na dokonywanie obliczeń z dokładnością do centymetrów

W niniejszym artykule skupię się na rozwiązaniach typu Web GIS, ponieważ są najpopularniejszym rozwiązaniem pod kątem programistycznym. Z rozwiązaniami Web GIS praktycznie każdy ma do czynienia w życiu codziennym, są to chociażby ogólnodostępne serwisy z planami miast takie jak np. Google Maps czy wyszukiwarki połączeń komunikacji miejskiej takie jak np. JakDojade.pl. Użytkownik może z łatwością zmieniać podkłady mapowe, przybliżać, oddalać mapę, przeglądać szczegółowe informacje nt. obiektów i wiele innych. Co istotne mapy mogą być „żywe”, aktualizowane z interwałem sekundowym – na myśl przychodzą dynamiczne mapy komunikacji miejskiej z autobusami wyposażonymi w GPS czy mapy pogodowe.

Rysunek 4 Na co dzień korzystamy z rozwiązań WebGIS takich jak np. portal jakdojade.pl

W ramach tego artykułu umówimy architekturę rozwiązań Web GIS, a także najpopularniejsze oprogramowanie wykorzystywane do tego celu. W celu zbudowania infrastruktury GIS dla rozwiązania Web GIS, potrzebujemy bazy danych, serwera, oraz portalu mapowego. Istnieje wiele różnych rozwiązań open source jak i komercyjnych, których użycie ma swoje uzasadnienie.

Rysunek 5 Podstawowa architektura rozwiązania GIS

Wszystkie wiodące silniki baz danych posiadają odpowiednie rozszerzenia GIS-owe. Przykładowo, dla PostgreSQL jest to PostGIS, dla Oracle jest to Oracle Spatial, natomiast Microsoft SQL Server posiada wbudowane wsparcie dla GIS od wersji 2008 wzwyż. Szczególnie interesującym rozwiązaniem jest darmowy PostGIS, który dostarcza gotowe typy danych, jest zgodny ze standaryzacją OGC, dostarcza wielu wyrażeń pozwalających tworzyć skomplikowane zapytania geoprzestrzenne. Ponadto sam PostGIS może być dalej rozszerzany o takie biblioteki jak np. pgRouting pozwalający obliczać między innymi najkrótsze ścieżki czy rozwiązywać problem komiwojażera.

Mając już dane (o tym skąd pozyskać darmowe dane GIS, opowie kolejny wpis) możemy zastanowić się w jaki sposób będziemy je dostarczać do naszych aplikacji. Istnieje wiele różnych serwerów GIS, najpopularniejszym rozwiązaniem komercyjnym jest ESRI ArcGIS Server, zaś darmowym GeoServer. Oczywiście istnieje także wiele rozwiązań typu SaaS/PaaS jak chociażby ESRI ArcGIS Online.

Do przetestowania i zweryfikowania danych oraz serwisów świetnie nada się rozwiązanie Desktop GIS, takie jak np. darmowy QGIS za pomocą którego łatwo można połączyć się bezpośrednio z bazą danych lub opublikowanym serwisem GIS-owym.

Przechodząc do warstwy frontendowej, czyli tzw. Portalu mapowego, mamy do wyboru także wiele różnych frameworków, które znacząco różnią się między sobą. Do najpopularniejszych należą Leaflet (lekki, ale bez skomplikowanych funkcjonalności), OpenLayers (bardziej złożony, więcej możliwości), ESRI ArcGIS API for JavaScript (bardzo złożony, ze świetną dokumentacją, wieloma funkcjonalnościami, ale dostosowany do ekosystemu ESRI). Wszystkie wymienione frameworki frontendowe są niekomercyjne.

Rysunek 6 Przykład bogatych możliwości wizualizacyjnych ESRI ArcGIS API for JavaScript. Zrzuty przedstawiają analizę widoczności terenu z puntu umieszczonego na wysokości.

Jak widać, rozwiązań jest wiele i każde niesie za sobą pewne zalety, ale też wady. Do pierwszego projektu Web GIS-owego zaproponowałbym wykorzystanie komponentów niekomercyjnych, które pozwalają zbudować kompleksowe rozwiązanie, a nic nie kosztują. Dzięki wspieraniu ustandaryzowanych formatów OGC, można bezboleśnie łączyć różne komponenty budując architekturę GIS.

W kolejnym wpisie zaprezentuję podstawy GIS w praktyce z wykorzystaniem popularnych narzędzi.

 

 


Konrad Żaba

Projektuję i tworzę oprogramowanie dla organizacji międzynarodowych i sektora bezpieczeństwa. Specjalizuję się szczególnie w rozwiązaniach GIS-owych, które pozwalają gromadzić, analizować i wizualizować dane przestrzenne. Preferuję programowanie backendowe w .NET i SQL, ale gdy zajdzie potrzeba, zdarza mi się także popracować przy frontendzie.


Wydrukuj