Rozwój narzędzi umożliwiających automatyzację pracy wynika z rosnących potrzeb w zakresie przetwarzania danych przestrzennych. W tym kontekście coraz większą rolę odgrywa Python – język programowania wykorzystywany w wielu dziedzinach – od tworzenia programów komputerowych po analizy danych. Jego popularność wynika przede wszystkim ze stosunkowo prostej składni, zbliżonej do języka naturalnego, która znacząco ułatwia zarówno naukę, jak i późniejsze rozumienie kodu.
Dzięki tym cechom Python znajduje coraz szersze zastosowanie także w systemach informacji przestrzennej (GIS). W odróżnieniu od wielu zamkniętych narzędzi jest on niezależny od konkretnego oprogramowania, co pozwala na tworzenie własnych rozwiązań dopasowanych do konkretnych potrzeb. To z kolei przekłada się na możliwość automatyzacji pracy oraz szybsze przetwarzanie dużych zbiorów danych przestrzennych.
Praca z danymi przestrzennymi w Pythonie nie byłaby jednak możliwa bez wykorzystania odpowiednich bibliotek. Są to zestawy gotowych narzędzi zawierających funkcje, które ułatwiają wykonywanie specjalistycznych zadań, takich jak analizy sieciowe, przetwarzanie chmur punktów czy operacje na geometrii obiektów. Dzięki nim nie trzeba tworzyć wszystkiego od podstaw – można korzystać z gotowych rozwiązań i skupić się na realizacji konkretnego zadania.
Ze względu na dużą liczbę dostępnych bibliotek, obejmujących zarówno analizy wektorowe, jak i rastrowe, przygotowaliśmy subiektywny przegląd najważniejszych z nich. Może on stanowić wskazówkę dla osób bardziej zaawansowanych, a jednocześnie przybliżać temat osobom, które dopiero rozpoczynają swoją przygodę z danymi przestrzennymi.
Warto jednak podkreślić na wstępie, że wykorzystanie bibliotek nie jest tak proste jak instalacja wtyczek do QGIS. Wymaga podstawowej znajomości języka Python oraz zapoznania się z procesem instalacji i indywidualnymi wymaganiami poszczególnych narzędzi. Wszystkie te informacje są ogólnodostępne w dokumentacji każdej z bibliotek.
GEOPRZESTRZENNE BIBLIOTEKI DO PYTHONA:
• GDAL
GDAL to jedna z największych bibliotek do pracy z danymi geoprzestrzennymi. Umożliwia obsługę zarówno danych rastrowych, jak i wektorowych. Ponadto często stanowi podstawę działania innych narzędzi.
W przypadku danych rastrowych umożliwia m.in. zmianę sposobu wyświetlania NMT, operacje na poszczególnych kanałach spektralnych, tworzenie histogramów, a nawet wyostrzanie zobrazowań (pansharpening).
Dla danych wektorowych GDAL umożliwia m.in. transformację układów współrzędnych, sprawdzanie poprawności geometrii oraz usuwanie błędów topologicznych (np. nakładających się obiektów lub luk w danych). Dodatkowo pozwala na filtrowanie danych, tworzenie siatek na podstawie punktów, wykonywanie operacji między warstwami, rasteryzację danych wektorowych, a także wykorzystanie zapytań SQL do pracy z danymi przestrzennymi.
Warto jednak podkreślić, że ze względu na złożoność i liczne zależności zaleca się instalację i pracę z GDAL w wirtualnym środowisku, aby uniknąć potencjalnych konfliktów wersji bibliotek.
• Rasterio
Jak wskazuje nazwa, biblioteka jest przeznaczona do pracy z danymi rastrowymi, takimi jak zobrazowania satelitarne, numeryczne modele terenu oraz z innymi danymi zapisanymi w formie siatki pikseli.
Biblioteka pozwala między innymi na:
• odczyt metadanych, układu współrzędnych, a także zasięgu przestrzennego pliku,
• wizualizację danych z wykorzystaniem pseudokolorowania lub kompozycji barwnych,
• wykonywanie obliczeń na różnych pasmach, a tym samym na obliczanie wskaźników spektralnych.
Rasterio: Wizualizacja Numerycznego Modelu Terenu (NMT)
• Fiona
Biblioteka stanowi uzupełnienie pozostałych wymienionych narzędzi i służy przede wszystkim do odczytu oraz zapisu danych wektorowych w popularnych formatach GIS, takich jak Shapefile czy GeoPackage.
Fiona umożliwia tworzenie nowych zbiorów danych, modyfikowanie istniejących plików oraz zapisywanie obiektów wraz z ich atrybutami. Operuje na danych w sposób zbliżony do formatu GeoJSON, co czyni ją intuicyjną w użyciu.
• GeoPandas
GeoPandas jest projektem tworzonym przez społeczność, w który zaangażowane jest szerokie grono osób z całego świata. Narzędzie rozszerza możliwości biblioteki Pandas o wykorzystanie różnych typów danych przestrzennych. Ponadto umożliwia integrację z innymi bibliotekami, takimi jak Shapely oraz Scikit-learn.
Powyższe właściwości pozwalają w prosty sposób wykonywać analizy przestrzenne, łączyć dane tabelaryczne z geometrią oraz tworzyć podstawowe wizualizacje. Narzędzie może realnie przyspieszyć pracę, ponieważ pozwala automatyzować wiele etapów przetwarzania danych – od wczytania, przez analizę, aż po wyświetlanie.
GeoPandas + Fiona: Tworzenie kartogramu
• Geopy
Geopy umożliwia obliczanie odległości między dwoma punktami geograficznymi. Dodatkowo pozwala na geokodowanie danych, czyli m.in. zamianę adresów na współrzędne geograficzne, co może być wykorzystywane np. w aplikacjach mapowych, takich jak Google Maps lub w bazach danych przestrzennych.
Geopy: Obliczanie odległości między punktami
• Shapely
Shapely służy do pracy z danymi geometrycznymi. Pozwala na tworzenie podstawowych obiektów przestrzennych – punktów, linii oraz poligonów, a także na wykonywanie operacji przestrzennych odpowiednich dla danego typu.
Do najczęściej wykorzystywanych funkcji należą m.in. tworzenie bufora, sprawdzanie relacji przestrzennych pomiędzy obiektami, takich jak zawieranie (contains) czy przecięcie (intersection), a także naprawa geometrii. Narzędzie umożliwia również wykonywanie triangulacji Delaunaya na podstawie zbioru punktów.
Shapely: Analiza relacji przestrzennych – wyznaczanie części wspólnej dwóch obiektów
• Folium
Folium umożliwia tworzenie interaktywnych map opartych o bibliotekę Leaflet.js, które można następnie udostępniać jako strony internetowe.
Biblioteka pozwala wykorzystywać różne podkłady mapowe (np. OpenStreetMap), dodawać znaczniki, warstwy oraz elementy interaktywne znane z map internetowych. Wśród wybranych funkcjonalności znajdują się także: dodanie podglądu mapowego, grupowanie danych oraz tworzenie kartogramów. Narzędzie jest szczególnie przydatne przy tworzeniu prostych aplikacji webowych i wizualizacji danych przestrzennych.
Folium: Mapa internetowa z markerami
• Open3D
Biblioteka służy do przetwarzania oraz wizualizacji danych 3D, w szczególności chmur punktów i siatek trójkątów (mesh). Oferuje szeroki zakres funkcji, takich jak:
• usuwanie szumu i punktów odstających (za pomocą funkcji statistical outlier removal oraz radius outlier removal),
• tworzenie wokseli na podstawie chmur punktów,
• wykrywanie modeli (np. płaszczyzn) w chmurze punktów,
• wyznaczanie wektorów normalnych dla punktów i powierzchni,
• przeszukiwanie danych z wykorzystaniem struktur, takich jak KDTree,
• orientacja wzajemna chmur metodą ICP,
• tworzenie, edycja oraz wizualizacja siatek trójkątów, w tym ich kolorowanie.
Open3D: Wykrycie kuli w chmurze punktów przy użyciu algorytmu RANSAC