QGIS 1.4.0 vs ArcGIS 9.3 – analiza wektorowa

arcgis-vs-qgis

W książce „GIS w badaniach przyrodniczych”, o której pisałem w poprzednim wpisie, zainteresował mnie szczególnie rozdział czwarty pt: „Podstawowe funkcje analizy wektorowej„. Autor przedstawił i dokładnie opisał osiem głównych analiz wektorowych, które według autora wykonuje się w badaniach przyrodniczych. Wszystkie analizy wykonane są na podstawie oprogramowania ArcGIS. Postanowiłem zadać sobie pytanie, czy możliwe jest wykonanie tych samych zadań w QGIS. Aby to sprawdzić powtórzyłem czynności, o których pisał Jacek Urbański w QGIS. Wyniki i komentarz poniżej.

Porównanie podzieliłem na analizy zgodnie z podziałem przyjętym przez autora.

  1. Wizualizacja (symbolizacja i klasyfikacja)
  2. Selekcja atrybutowa
  3. Operacje w tablicy atrybutowej (obliczanie, sumaryzacja, łączenie tablic, wprowadzanie wyników pomiaru)
  4. Selekcja na podstawie relacji przestrzennych
  5. Pozyskanie danych atrybutowych na podstawie danych przestrzennych
  6. Buforowanie
  7. Nakładanie

1. Wizualizacja (symbolizacja i klasyfikacja)

Wstępna analiza danych przestrzennych. Szukanie prawidłowości w rozmieszczeniu danych. Wyznaczanie danych wyraźnie różniących się od pozostałych. Identyfikacja prawdopodobnych związków i relacji pomiędzy danymi. Ocena poprawności próbkowania (Urbański, 2008)

W praktyce sprowadza się to do umożliwienia funkcjonalnego, poprawnego i optymalnego wyświetlania warstw tematycznych w „widoku mapy” programu i ich nadawania im stylów – odpowiednich do rodzaju warstwy: punktów, linii i poligonów. Dzięki temu możemy wizualnie rozpoznać zależności, o których mowa w cytacie.

Zagadnienie jest zbyt obszerne, aby wszystkie funkcjonalności analizować je opisowo, więc posłużę się listami:

QGIS potrafi:

  • Dostosowywanie możliwości wyświetlania w zależności od typu danych (punkt, linia, poligon)
  • Zestaw predefiniowanych symboli
  • Możliwość doboru stylu w zależności od atrybutów (symbol pojedynczy, wartość unikalna, symbol stopniowy)
  • Przezroczystość (W wersji 1.4.0 tylko w „starych stylach”)
  • [Poligony] Możliwość edycji wypełnienia, koloru, grubości i stylu obrysu oraz desenia (z listy).
  • [linie] Możliwość edycji grubości i koloru linii.
  • [punkty] Możliwość wyboru symbolu z listy lub zaimportowanie własnego (SVG)
  • Możliwość zapisania stylu w osobnym pliku (.qml)
  • W przypadku „symboli stopniowych” i „wartości unikalnej” – możliwość zastosowania jednej z przygotowanych palet (niestety tylko 3 do wyboru)
  • Możliwość utworzenia kartodiagramu.

ArcGIS potrafi wszystko co wyżej i:

  • Znacznie większa ilość predefiniowanych symboli, styli wypełnienia, obrysu, deseni i palet
  • Styl elementu może zależeć aż od trzech pól w tabeli atrybutów

Z powyższego widać, iż ArcGIS nie ma wiele więcej funkcji, jednak posiada zdecydowanie większą bibliotekę dostępnych stylów. Objawia się to tym, iż prościej i szybciej można uzyskać mapę o oczekiwanym wyglądzie. Zdecydowaną wadą QGIS jest fakt, iż nie można wpływać na desenie poligonów, a oferowana ich paleta nie jest zadowalająca. W tym wypadku QGIS odstaje od ArcGIS.

2. Selekcja atrybutowa

Które obiekty spełniają wymagany zestaw warunków atrybutowych? Utworzenie oddzielnej warstwy, wykonanie obliczeń lub niektórych operacji analitycznych, tylko dla pewnego podzbioru danych zdefiniowanych za pomocą atrybutów.

W tym wypadku postanowiłem porównać Okna „zapytań SQL” obydwu programów.

sqlqarcgis-229x300

aqlqgis-300x259

Po bliższym przyjrzeniu widać, iż różnice są nieznaczne. ArcGIS oferuje kilka opcji więcej: wybrane za pomocą kreatora zapytań obiekty, można dodać do elementów już zaznaczonych, ograniczyć zapytania tylko do już wybranych (ograniczenie selekcji). Jednak podstawowa funkcjonalność, czyli pomoc w wygenerowaniu zapytania w języku SQL jest bardzo podobna. Tak czy inaczej bez podstawowej znajomości języka zapytań trudno będzie się użytkownikowi odnaleźć.

3. Operacje na tablicy atrybutowej (obliczenia sumaryzacja, łączenie tablic, wprowadzanie wyników pomiaru).

Obliczanie nowych wartości i atrybutów na podstawie atrybutów już istniejących. Wprowadzenie do pól atrybutowych wyników pomiarów kształtu pojedynczych obiektów: linii – długość, krętość (sinusoity), wymiar fraktalny (fractical dimension); poligonów – obwód, powierzchnia. Przeprowadzenie klasyfikacji obiektów, przez przypisanie identyfikatora klasy na podstawie złożonych schematów logicznych. Obliczanie z podzbiorów rekordów podstawowych statystyk i wykorzystanie ich w obliczeniach. Przypisywanie obiektom atrybutów z zewnętrznych zbiorów danych. (Urbański, 2008)

Również w przypadku tych analiz QGIS nie odstaje od ArcGIS. Jeżeli pracujemy na formacie natywnym dla QGIS, czyli bazie danych PostGIS, w oknie tabeli atrybutów, przy włączonej edycji, można łatwo dodać lub usunąć kolumnę bazy danych i ustalić typ danych. Za pomocą kalkulatora pól można w prosty sposób uzupełnić ją interesującymi wartościami (również długość, obwód i pole powierzchni). Następnie stosując intuicyjne procedury można wpisać do danej kolumny wyniki obliczeń (np. wynik pomiaru powierzchni w metrach podzielić przez 1 000 000 i wpisać go w postaci kilometrów kwadratowych.

Autor przedstawia możliwości ArcGIS na przykładzie obliczania gęstości zaludnienia i rangowania obiektów na podstawie obliczonej wartości. Posługuje się przy tym skryptami VBA (Dla QGIS językiem skryptowym jest Python, który też możne być użyty w ArcGIS. Nawet powinien, ponieważ od następnej wersji ArcGIS wsparcie dla VBA będzie wycofane). W jednym i drugim programie można to wykonać ręcznie używając kalkulatory pól.

4. Selekcja na podstawie relacji przestrzennych

Znajdowanie obiektów, które spełniają wymagane warunki atrybutowe oraz pozostają w określonych relacjach przestrzennych z obiektami innych warstw. Utworzenie oddzielnych warstw ze znalezionych w ten sposób obiektów (Urbański 2008).

Mówiąc prostszymi słowami chodzi o funkcje z rodziny „select by location”. W ArcGIS sprawa jest bardzo prosta: Funkcja „Select by location” rozwiązuje wszelkie podstawowe problemy. Jej interfejs wygląda następująco – w liście rozwijalnej mamy wszelkie relacje jakie mogą zachodzić pomiędzy obiektami. Wystarczy wybrać warstwy, które nas interesują i relację, jaka między nimi zachodzi.

selbyloc-229x300

Niestety – podstawowe możliwości QGIS pozostawiają w tym przypadku sporo do życzenia, jednak nie znaczy to, że nic nie można z tym zrobić. W pakiecie fTools znajduje się funkcja „Wybór przez lokalizację”, którą możemy wybrać obiekty przecinające się (Intersection). Na tym koniec. Jeżeli jednak używamy warstwy PostGIS możemy skorzystać z jej relacji przestrzennych i tak na przykład za pomocą „touches()” wybieramy poligony, które „dotykają” wybraną warstwę… Z tym funkcjami, których pełną listę można znaleźć w manualu PostGIS.

QGIS dorównuje ArcGIS.

wpl-300x173

Dalej autor opisuje skrypty VBA i funkcje do obliczania pola powierzchni, obwodu i długości obiektów. W QGIS można wykonać to w podobny sposób.

5. Pozyskiwanie danych atrybutowych na podstawie relacji przestrzennych.

Przypisywanie obiektom danej warstwy wektorowej nowych atrybutów pochodzących od obiektów innych warstw, które pozostają z obiektami danej warstwy w pewnej relacji przestrzennej. Dodanie do warstwy punktów atrybutów z różnych warstw wektorowych i rastrowych (z miejsc odpowiadających tym punktom). (Urbański 2008)

Innymi słowy – modelowanie regresywne. W tym rozdziale autor opisał metody przypisywania atrybutów warstw wektorowych i rastrowych do innych warstw wektorowych na podstawie relacji (np. LWM dla przypisania wartości rastra do linii), jednak nie wspomniał jak tego dokonać w ArcGIS.

W QGIS służy do tego wtyczka „Point Sampling Tool” napisana przez Borysa Jurgiela. Dzięki niej możemy w prosty sposób przypisać wartości z wszelkich warstw do punktów. Tylko do punktów (jednak to jest najczęściej używane)

6. Buforowanie

Wyznaczanie stref na podstawie odległości do obiektów danego typu. (Urbański 2008)

Innymi słowy klasyka GIS. Zarówno w ArcGIS jak i QGIS wygląda to podobnie. W QGIS należy wybrać z fTools narzędzie „Bufor(y)”. Można utworzyć bufory o stałej wielkości, lub o wielkości wpisanej do atrybutów obiektu. Dla wszytkich obiektów, lub tylko dla tych wybranych.

ArcGIS ma funkcję buforów wielokrotnych, czyli dodania za jednym razem kilku buforów… Jest to wygodne, ale ten sam efekt można uzyskać wykonując w QGIS bufor kilkukrotnie zmieniając parametry.

7. Nakładanie

Stworzenie warstw dla danego projektu, obejmujących wyłącznie rejon badań (z warstw obejmujących większe obszary). Utworzenie warstwy obiektów, które maja taką samą lokalicację, jak obiekty innej warstwy, i przypisanie im atrybutów tych obiektów.(…) Testowanie połączeń segmentów linii w sieciach i tworzenie warstw z punktów węzłowych. Utworzenie i znalezienie nowych obiektów, spełniających dowolna kombinację warunków z wielu warstw. (…) (Urbański 2008)

Innymi słowy kolejne klasyki GIS: clip, overlay, union i intersect… Dostępne w pakiecie fTools jako narzędzia geoprocesingu.

8. Generalizacja

Ingerencja danych do jednej skali, przetworzenie warstw na dane o dokładności odpowiadającej określonej skali. Zmniejszenie liczby punktów i odcinków w danej warstwie, przy jak najmniejszej stracie informacji. Wykonanie nawej warstwy poligonów w wyniku połączenia obiektów o tej samej klasie. (Urbański (2008)

W ArcGIS – generalization i dissolve w QGIS – uprość geometrię i agreguj. Wyniki działania podobne, jednak ArcGIS posiada trochę więcej możliwości i parametrów.

Podsumowanie

Okazuje się, że QGIS w każdym aspekcie dościga ArcGIS. Oczywiście przewaga ArcGIS jest ogromna, jednak przejawia się głównie w wygodzie użytkowania i mnogości parametrów funkcji. Można powiedzieć, iż spośród wspomnianych analiz nie ma funkcji, której QGIS by nie wykonał. Przeważnie z mniejszą ilością opcji, ale „da się”.

Z czystym sumieniem mogę stwierdzić, że QGIS i reszta oprogramowania open source – do podstawowych zastosowań – nadaje się doskonale. Za inne funkcje (wygodne geobazy, wyszukane analizy, 100% okienkowości itp.) trzeba słono płacić firmie z Redlands… zapewne do czasu.