Geostrona Rotating Header Image

QGIS – zmiana jednostek mapy. (QGIS w metrach, skala w metrach)

W statystykach bloga obserwuje hasła, po wpisaniu których geostrona.pl pojawia się w wynikach wyszukiwania google oraz hasła, po wpisaniu których użytkowcy wchodzą na stronę. Jednym z popularniejszych są wariacje na temat zmiany jednostki ze stopni dziesiętnych (domyślnie) na metry (życiowo). Na geostronie nie było jak dotąd jasnego wyjaśnienia, a więc:

Mocno uproszczając: warstwy można wyświetlać w rożnych układach odniesienia. Mają one różne jednostki. W przypadku popularnego WGS84 są to stopnie dziesiętne, natomiast w przypadku układów takich jak UTM lub rodzimy 1992 są to metry. Domyślnymi dla QGIS jednostkami warstwy są stopnie dziesiętne, co powoduje pewne zakłopotanie, gdy:

  • Chcemy zmierzyć odległość linijką i odległość otrzymujemy w stopniach
  • Chcemy zorientować się w skali mapy, a zamiast rzeczywistej skali mamy niezrozumiały ciąg cyfr
  • Przygotowujemy wydruk w konkretnej skali, a skala w kompozytorze jest… zaskakująca
  • Za pomocą kalkulatora pól chcemy obliczyć powierzchnie poligonów, a wynik otrzymujemy w stopniach kwadratowych
  • itp.

Aby zmienić jednostkę mapy (layer unit) w QGIS 1.40 wchodzimy w ustawienia -> właściwości projektu -> zakładka “ogólne”. Tam w “deklarowanych jednostkach mapy” trzeba zmienić ze “stopnie dziesiętne” na “metry”. Ot wsjo!

GDAL – poradnik

Stosunkowo słabe wsparcie dla rastrów w QGIS spowodowało, że już jakiś czas temu zainteresowałem się biblioteką GDAL. Jej instalację i kilka innych informacji opisałem wcześniej na blogu.  Jest to narzędzie o bardzo szerokich możliwościach, o których po polsku najwięcej pisze m_k na blogu Terra Observer. Oprócz bycia samą biblioteką programistyczną GDAL posiada także utility programs, którymi wykonamy większość zadań z poziomu konsoli.

Aby pokazać część możliwości GDAL wykonam sekwencję czynności, które są przydatne, a ciężkie do wykonania w innym programie open source. Wszystko wykonuję na Ubuntu, GDAL 1.7.1, QGIS 1.4.0

  1. Georeferencja rastra
  2. Reprojekcja rastra
  3. Przycięcie rastra
  4. Połączenie kilku rastrów
  5. Optymalizacja wyświetlania

1. Georeferencja

Mapy rastrowe możemy pozyskać z różnych źródeł. Całe szczęście, jeżeli mają nadaną georeferencję – w takim razie można przejść do kolejnego punktu. Jeżeli jednak nie, to mamy kilka możliwości.

  • Mapa pobrana ze źródła internetowego z plikiem kalibracyjnym Oziexplorer w postaci pliku .map. Takie mapy można pobrać serwisu Pojehali, o którym pisałem. Wtedy używamy gdal_translate. Po wpisaniu poniższej komendy przekształcimy plik GIF do GEOTIF i nadamy georeferencję z pliku map.

gdal_translate -of "GTiff" mapa_zrodlowa.gif mapa_wynikowa.tif

  • Mapa skalibrowana w QGIS 1.4.0 ze starą wtyczką “Georeferencer” (instalowana domyślnie w pakietach). Po wykonaniu georeferencji tworzy się plik georeferencyjny .wld. W tym wypadku zasada działania jest podobna jak w przypadku pliku .map. Po wpisaniu powyższej komendy, jeżeli plik georeferencyjny ma tę samą nazwę, automatycznie zostanie połączony z mapą i wynikiem będzie GEOTIF.
  • Mapa skalibrowana nową wtyczką “Georeferencer” Więcej o niej tutaj. Ma zastąpić starą od następnej wersji QGIS. Tutaj nie musimy nic robić – wynikiem jej działania jest GEOTIF.

2. Reprojekcja rastra

Jeżeli nasz plik ma już nadaną georeferencję, ale nie potrzebujemy innej, używamy gdalwarp. Dla uproszczenia – poszczególne składowe komendy są pokolorowne

gdalwarp -t_srs "EPSG:4326" plik.tif plik_wgs84.tif

Gdalwarp może przybrać bardzo wiele parametrów, o których można poczytać na stronie gdalwarp. Program potrafi przeliczać pomiędzy wszystkimi kodami EPSG. Jeżeli używamy jakiegoś bardzo specyficznego układu można do własnoręcznie opisać w komendzie, np:
gdalwarp -t_srs '+proj=utm +zone=11 +datum=WGS84' raw_spot.tif utm11.tif

Istotną zaletą gdalwarp jest możliwość narzucenia programowi istniejącego układu odniesienia. Nie jest to często używana funkcja, niemniej przydaje się. Przykład:  Chciałem dokonać reprojekcji mapy topograficznej z błędnie zdefiniowanym układem odniesienia. QGIS i inne programy rozpoznawały ten układ jako jeden z układów “Pulkovo Gauss Kruger”, tymczasem był to układ specyficzny dla Kosowa – “kosfef”.

Wynikiem przekształceń były błędy, zawieszanie się programów lub zupełnie zniekształcone mapy wynikowe. Tymczasem w GDAL, flagą -s_srs można narzucić dowolny układ odniesienia pliku wejściowego. Po poprawnym zdefiniowaniu układu mapa przekształciła się znakomicie.

3. Przycięcie rastra

Rozwiązania tego problemu szukałem dłuższy czas. Problemem jest wycięcie treści mapy od całej reszty (ramki). Zdecydowana większość programów, wtyczek itp przycina rastry do kształtu prostokątnego, co nie jest zadowalające w przypadku “skręconej mapy w układzie 1992 lub 1942… W tym przypadku aby uzyskać dokładne “przycięcie” trzeba by się na trudzić, a uzyskanie bezszwowego połączenia w przypadku dwóch map przy ręcznym wycinaniu jest praktycznie niemożliwe… Na szczęście przychodzi nam z pomocą… gdalwarp i jego paramter -cutline. Jeżeli mamy siatkę linii pokrywających się z łączeniami ma topograficzych lub poligony pokrywające treści poszczególnych arkuszy map to pracy jest jeszcze mniej…

Zakładamy, że takiej siatki nie mamy:

  • Wczytujemy raster do QGIS
  • Rysujemy poligon z czterema “werteksami” (w rogach mapy) i nadajemy mu ten sam układ współrzędnych i zapisujemy jako Shapefile. (nie należy się przejmować, że część treści mapy nie zostanie przykryta przez poligon – QGIS rysuje zwykły prostokąt, ale GDAL sam odpowiednio “wygnie” linie, aby przyciąć idealnie raster.) Wygląda to tak jak poniżej:

  • przycinamy raster za pomocą GDAL używając stworzonego Shapefile:

gdalwarp -cutline clip2.shp drgash2.tif drgahs2_clip.tif

Powstały w ten sposób raster jest idealnie przycięty. Po otwarciu go w QGIS widać, iż miejsce, gdzie była wcześniej ramka jest wypełnione losowym kolorem, a jego wartość wynosi 0. We właściwościach warstwy możemy ustawić przezroczystość dla 0 100% i na ekranie mapy pojawi się tylko to, na czym nam zależy.

Aby dokładnie przyciąć dwa sąsiadujące ze sobą arkusze warto użyć edycji topologicznej poligonów i przyciągania się werteksów. Mamy wtedy pewność, że nic nie będzie na siebie zachodzić, ani nie powstanie żadna biała plama. W przypadku przycinania większej ilości rastrów można napisać skrypt, który przytnie kilka rastrów za pomocą jednej warstwy z kilkoma poligonami, ale nie wiem jak to zrobić.

Po takim przycięciu możemy wyświetlić obok siebie kilka rastrów bez nakładania się ramek. Co jednak, jeżeli chcemy, aby połączyć je wszystkie w jeden plik???

4. Połączenie kilku rastrów

W przypadku, kiedy musimy pracować z większą ilością rastrów – posiadanie ich w osobnych plikach staje się mało wygodne. Wczytywanie do projektu, zmiana przezroczystości (choć to można rozwiązać wtyczką multi QML) staje się udręką. Jeżeli mamy kilka arkuszy – możemy je połączyć w jeden arkusz programem gdal_merge.py, wtedy otrzymujemy jeden duży plik. Ograniczeniem tego rozwiązania jest fakt, iż pliki muszą być w tej samej kompozycji barwnej (np RGB), ponieważ program przypisze paletę kolorów pierwszego pliku do wszystkich innych. Większość 8-bitowych skanowanych map ma przypisaną własną paletę (konkretnej wartości odpowiada konkretny kolor). Trzeba wcześniej ujednolicić palety. Można tego dokonać na dwa sposoby:

“Zrównanie palet” poleceniem -init z parametrem 255

gdal_merge.py -init 255 -o out.tif in1.tif in2.tif

lub

przekonwertowanie do pliku 24-bitowego RGB za pomocą pct2rgb.py

Po takich operacjach możemy dokonać połączenia

gdal_merge.py -o out.tif in1.tif in2.tif

Wynikiem będzie wspomniany duży raster, który może jednak spowodować spowolnienie działania programu. Optymalizację wyświetlania rastrów opisał Tim Sutton na swoim blogu. Optymalizacja wyświetlania rastrów w QGIS.

5. Optymalizacja wyświetlania

Jeżeli już mamy duży plik, który spowalnia działanie systemu, możemy go “poćwiartować i wyświetlać jako virtualraster (jest to natywny dla QGIS sposób wyświetlania rastrów). Poćwiartowanie/kafelkowanie można wykonać dwojako: poprzez

  • gdal_translate z parametrem -srcwin (opinane na blogu Tima)
  • gdal2tiles.py

Następnie poprzez gdalbuildvrt tworzymy wirtualny raster, poprzez który możemy wczytywać kafelki do QGIS

Podsumowanie

To tylko krótki opis możliwości – nie zawsze poparty przykładami skryptu, jednak przy chęci do zgłębienia problemu każdy powinien sobie poradzić z swoją obróbką plików rastrowych:) Strona internetowa GDAL jest najlepszym źródłem informacji i zarazem pomocy technicznej.

Polecam też artykuł Tima i sprawę wsparcia dla plików ECW, którą od jakiegoś czasu próbuję ogarnąć – ułatwia to korzystanie ze dużych plików rastrowych w znaczny sposób.

Powodzenia!

Nowa praca – nowe problemy

Od kilku dni pracuję w UN HABITAT Kosovo. Z tego powodu przez kilka miesięcy pomieszkam w Kosowie. Trochę może na tym ucierpieć blog, ponieważ nie mam za bardzo czasu na poszukiwania i zabawy z nowymi programami, a za to będę dzielił się wrażeniami z pracy jako specjalista GIS w tak ciekawym miejscu!

Po pierwsze: bałagan.

- najnowsze mapy topograficzne mają ponad 30 lat (wojsko ma swoje, ale nie da…)

- Mało kto jest doświadczony w GIS.

- Dane są w kilku zupełnie egzotycznych układach odniesienia.

- Brak jakichkolwiek wytycznych co do zbierania danych…

- Brak zorganizowanych źródeł cyfrowych. Każdy robi to swojemu – dzięki czemu przeżywam dramat łącząc dane z różnych instytucji. Np ortofotomapa jest w EPSG 28467, który jest odpowiedni dla… Kaukazu a nie dla Bałkanów! Poszczególne fragmenty nie łączą się ze sobą…

- Oprogramowanie używane na miejscu (czyli nielegalny ArcView) nie radzi sobie z kilkoma układami, w jakich są dane… Jeśli w ogóle mają jakiś układ.

To tak na pocieszenie, dla wszystkich którzy narzekają na pracę w polskich warunkach…

GDAL – podstawy użytkowania

Programy obsługiwane z linii komend nie gryzą! Potrzeba zmusiła mnie do zaznajomienia się bliżej z programem, a raczej programami z biblioteki GDAL. Doszło do tego, że nie tylko się zaznajomiłem, ale nawet zaprzyjaźniłem:) W tym wpisie chciałbym zamieścić informacje o podstawach używania tego programu dla osób zupełnie nie zaznajomionych z programami typu command line…

Początki/Instalacja

To, że GDAL nie ma GUI (choć już prawie ma – ale o tym na końcu) wcale nie jest takie straszne. Najpierw instalacja:

  • Windows: Przeczytaj ten wpis
  • Linux (Ubuntu): Jestem początkujący w tej materii.  Jeżeli systemie jest już zainstalowany QGIS – GDAL na pewno już tez tam jest. Aby to sprawdzić wystarczy napisać w terminalu gdalinfo i nacisnąć enter. Jeżeli wywali błąd to go nie ma, jeżeli wylistuje komendy – na pewno jest:) Aby zainstalować można użyć instalatora pakietów synaptic lub: chwila googlania i jest: Wystarczy wpisywać po kolei komendy.

wget http://download.osgeo.org/gdal/gdal-1.7.7.tar.gz
tar -zvxf gdal-1.7.1.tar.gz
cd gdal-1.7.1
./configure
make
make install

Wprowadzenie

Kiedy GDAL jest poprawnie zainstalowany możemy go uruchomić w terminalu. Pod Windows musimy wejść w “cmd”, i przejść do katalogu, w którym zainstalowane są pliki GDAL.

W Linux terminal możemy otworzyć gdziekolwiek jesteśmy (co jest o wiele wygodniejsze) i wpisywać komendy. Linux sam sobie znajdzie o jaki program nam chodzi i dojdzie do tego gdzie go sobie zainstalował.

Teraz wchodzimy na stronę internetową, z której będziemy bardzo często korzystać. http://www.gdal.org/gdal_utilities.html. Znajduje się tam cała (niestety uboga) dokumentacja. Pod nazwą każdego programiku jest opisana jego składnia. Generalnie wygląda ona tak:

nazwa_programu -flagi, czyli parametry wymieniane od myślnika z nazwą nazwa pliku wejściowego nazwa pliku wyjściowego

Dla pierwszej próby możemy wykonać gdalinfo, czyli program, który powie nam wszystko o rastrze. Jeżeli jesteśmy użytkownikami Windows – będzemy musieli podać całą ścieżkę dostępu do pliku. Pod linxem otwieramy okienko z plikiem, prawy klik, “open in terminal” i już system wie, gdzie szukać pliku…

mdrozdz@mdrozdz:~/GIS/Dragash$ gdalinfo drgash3.tif

(część pomarańczowa to to co widzimy w oknie terminala – oczywiście u każdego będzie inaczej…) To polecenie mówi: “Wyświetl informacje o pliku drgsh3.tif znajdującym się w katalogu costam/GIS/Dragash/”. Oto wynik:

Driver: GTiff/GeoTIFF
Files: drgash3.tif
Size is 3521, 3164
Coordinate System is `'
GCP Projection =
PROJCS["unnamed",
GEOGCS["Pulkovo 1942",
DATUM["Pulkovo_1942",
SPHEROID["Krassowsky 1940",6378245,298.2999999999998,
AUTHORITY["EPSG","7024"]],
AUTHORITY["EPSG","6284"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4284"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",21],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
GCP[  0]: Id=1, Info=
(96,91) -> (458573.87063663,4651840.00512974,0)
GCP[  1]: Id=2, Info=
(1704,101) -> (468930.421363179,4651787.08874793,0)
GCP[  2]: Id=3, Info=
(3421,94) -> (479286.956331199,4651749.29175189,0)
GCP[  3]: Id=4, Info=
(95,1584) -> (458519.863297039,4642583.7678137,0)
GCP[  4]: Id=5, Info=
(1761,1586) -> (468889.91638401,4642530.86808639,0)
GCP[  5]: Id=6, Info=
(3422,1583) -> (479259.953262002,4642493.08298787,0)
GCP[  6]: Id=7, Info=
(92,3073) -> (458465.944160544,4633327.6642608,0)
GCP[  7]: Id=8, Info=
(1704,3063) -> (468849.477558276,4633274.78163536,0)
GCP[  8]: Id=9, Info=
(3424,3072) -> (479232.994295624,4633237.00875391,0)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0, 3164.0)
Upper Right ( 3521.0,    0.0)
Lower Right ( 3521.0, 3164.0)
Center      ( 1760.5, 1582.0)
Band 1 Block=3521x2 Type=Byte, ColorInterp=Palette

Teraz wiemy wszystko… Możemy odwiedzić stronę o gdalinfo – w poszukiwaniu parametrów, które mogą się nam przydać…

Pierwsza transformacja

Skoro już wiemy jak obsługiwać się programami GDAL – przekonwertujmy plik Drgash3. tif do innego układu współrzędnych. Użyjemy do tego gdalwarp. Jak widać parametrów do wyboru jest już więcej…

mdrozdz@mdrozdz:~/GIS/Dragash$ gdalwarp -t_srs "EPSG:4326" drgash3.tif drgash3_wgs84.tif

Czyli na nasze: “Przekonwertuj plik drgash3.tif na układ współrzędnych EPSG 4326 i zapisz pod nazwą drgash3_wgs84.tif”

Copying color table from drgash3.tif to new file.
Creating output file that is 3958P x 2638L.
Processing input file drgash3.tif.
0...10...20...30...40...50...60...70...80...90...100 - done.

Podczas wykonywania nowego pliku w terminalu wydrukuje się powyższy napis… a w katalogu pojawi się plik drgash3_wgs84.tif, który możemy sobie zobaczyć w QGIS. Działa.

Podsumowanie

Ten wpis miał za zadanie pokazać nieprzekonanym, że można i nie jest to trudne oraz pokazać krok po kroku jak wszystko wykonać… Uzbrojeni w tę wiedzę, dokumentację na stronie oraz google można dokonać znacznie więcej…

A teraz coś dla zwolenników okienek. Kilka tygodni temu do wersji 1.0.0 dorosła wtyczka do QGIS GdalTools, która pomaga ujarzmić GDAL. Wystarczy ją pobrać, aby na pasku menu pojawiła się zakładka RASTER. Dzięki niej można prościej nadawać parametry i konstruować komendy, jednak nie posiada ona wszystkich możliwości. W zdecydowanej większości przypadków wystarcza… A wygląda to tak:

Powodzenia w używaniu GDAL. W jeden i drugi sposób!

Cena ArcGIS

esriCzęsto pojawiają się  – zarówno od czytelników bloga, jak i w rozmowach na temat GIS – pytania o cenę oprogramowania ArcGIS. Polityka firmy ESRI (w tym ESRI Polska) przewiduje ustalanie oferty dla konkretnego użytkownika osobno. Stąd bez kontaktu z przedstawicielem firmy nie dowiemy się nawet przybliżonej ceny. Jest to sporym utrudnieniem dla osób mniej zaznajomionych z GIS, którzy chcą dowiedzieć się tylko mniej-więcej z wydatkiem jakiego rzędy trzeba się liczyć…

Dla właśnie takich użytkowników:

ArcGIS Desktop w zależności od wersji licencji (ilość funkcji). Cena na jedno stanowisko dla firmy komercyjnej.

ArcViev: ok 8000 zł

ArcEditor: ok 20 000 zł

ArcInfo: ok 50 000 zł

Dodatkowo trzeba się liczyć z kosztami tzw. Extensions (rozszerzenia), czyli dodatków funkcjonalnych z odpowiednio dobranymi zestawami dodatkowych funkcji. Np. Spatial Analyst, Network Analyst i inne. Tutaj jest lista rozszerzeń. Za każde z nich trzeba zapłacić ok 12 000 zł.

Oczywiście cena może się wahać w zależności od ilości kupionych licencji, umiejętności targowania się oraz rodzaju umowy, ale rząd wielkości pozostaje ten sam.

QGIS vs ArcGIS – analiza wektorowa

avsq

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

aqlqgis

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

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

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.