Mateusz Ilba, milba@agh.edu.pl, ver.1 QGIS podstawy 1. Uruchomienie programu Program QGIS jest jednym z najpopularniejszych programów GIS Open Source. Po otwarciu aplikacji desktop widzimy podzielony interfejs składający się z kilka części. U góry w postaci listy znajduje się tradycyjne menu, niżej po lewej znajdują się okna funkcyjne, z których najważniejszym jest okno Warstwy, największą część aplikacji zajmuje prezentacja mapy. U dołu ekranu dodatkowo wyświetlają się współrzędne kursora oraz informacje o układzie współrzędnych. Program QGIS posiada możliwość wyświetlania różnego typu danych. Najważniejszym obsługiwanym typem danych są warstwy tematyczne obiektów w postaci plików wektorowych. Dodatkowo możemy wyświetlać dane rastrowe oraz dane z serwisów internetowych poprzez WMS/WFS bądź dane znajdujące się w bazach danych. 2. Dodawanie danych do programu Dane wektorowe Nauczymy się teraz dodawać obiekty wektorowe. W systemach informacji przestrzennej rozróżniamy trzy rodzaje takich obiektów punkt, linia oraz poligon. Aby wczytać dane wektorowe przechodzimy do [menu] > [Warstwa] > [Dodaj warstwę wektorową]. W rozpatrywanym przykładzie wczytamy trzy warstwy w postaci wyżej wymienionych punktów linii i poligonów.
Zaznaczamy opcję [Plik] oraz klikamy przycisk przeglądaj w celu znalezienia lokalizacji danych. Program obsługuje dużą liczbę najpopularniejszych formatów wymiany danych wektorowych, dlatego aby ułatwić wyszukiwanie plików wybierzemy zamiast przeszukiwania [Wszystkie pliki] z rozwijalnej listy [Esri shapefile]. Wybieramy trzy warstwy udostępnione przez prowadzącego (budynki, budynki_pkt oraz drogi). Układy współrzędnych Program QGIS obsługuje geodezyjne układy współrzędnych. Do najpopularniejszych używanych w Polsce możemy zaliczyć układy 2000, 1965, 1992 jak i układ geograficzny WGS84. Wczytane dane są w różnych układach współrzędnych. Możemy to sprawdzić klikając na daną warstwę prawym klawiszem myszy [PKM] > [Właściwości] > zakładka po lewej stronie [Ogólne] > zakładka [Układ współrzędnych]. Warstwy są w układach współrzędnych: budynki > układ 2000 strefa 6 budynki_pkt > układ WGS84 drogi > układ 1992 Aby warstwy prawidłowo się wyświetlały musimy zrobić reprojekcję wszystkich warstw do jednego układu współrzędnych. Odbywa się to automatycznie, program sam wykonuje całą transformację. W tym celu wybieramy ikonę globusa u dołu po lewej stronie ekranu Po kliknięciu otworzy się nam okno w którym zaznaczamy opcję [reprojekcja w locie]. Wykonamy reprojekcję na układ 2000/6, w tym celu aby łatwo znaleźć definicję tego układu wystarczy że wpiszemy jego unikalny kod EPSG > 2177. Powinien nam się wyświetlić układ ETRS89/Poland CS2000 zone 6. Zaznaczamy ten układ i klikamy [Zastosuj] > [Ok] (rysunek na następnej stronie). Dane powinny zostać wyświetlone w jednym miejscu na mapie. Aby szybko znaleźć daną warstwę na mapie możemy kliknąć [PKM] na warstwie > [Powiększ do warstwy]. Aby wyświetlić cały zasięg danych ze wszystkich warstw klikamy na pasku narzędzi służącym do zarządzania widokiem na ikonkę [Cały Zasięg]. Inne ikony z lupą służą do powiększania - pomniejszania widoku, powiększania do zaznaczonych obiektów, powiększania do zaznaczonej warstwy, cofania widoku oraz jego odświeżenia.
3. Zarządzanie widokiem warstw Podczas wczytania danych program sam ustalił symbolizację poszczególnych warstw. Aby zmienić symbolizację musimy przejść w właściwości warstwy [PKM] > [właściwości] bądź dwukrotnie kliknąć [LKM] na danej warstwie. Przechodzimy do zakładki [Styl]. W tym miejscu możemy modyfikować wszystkie opcje wyświetlania warstwy, nadawać jej przezroczystość, kolor oraz różne symbole. Standardowo program ma zdefiniowanych kilka różnych symboli dla każdego typu danych (punkt, linia, poligon) ale nic nie stoi na przeszkodzie żeby zdefiniować swoje style bądź wczytać symbol utworzony wcześniej jako osobny rysunek CAD. Każda warstwa ma określoną pozycję w oknie warstw. Pozycja ta określa jakie inne warstwy będą przesłaniać widok warstwy (wszystkie warstwy powyżej), bądź jakie dane będą przesłaniane przez warstwę (wszystkie warstwy poniżej). Dlatego należy trzymać się zasady że na samym dole w liście
warstw powinny znaleźć się dane powierzchniowe oraz rastrowe. Każdą z warstw można dowolnie przesuwać na liście warstw przeciągając je [LKM]. 4. Tabela atrybutów Tabela atrybutów jest ważną częścią danych zawartych w warstwach. Posiada ona wszelkie dane opisowe dotyczące obiektów posiadające geometrię opisaną współrzędnymi i wyświetlaną na mapie. Każdy jeden wiersz odpowiada najczęściej jednemu obiektowi na mapie. Obiekty mogą być wieloczęściowe. Tabela jest ściśle połączona relacyjnie z obiektami geometrycznymi. To oznacza że nie może zdarzyć się sytuacja, w której dany obiekt nie posiadał by swojego wiersza w tabeli atrybutów. Wiersze w tabeli możemy zaznaczać, dodatkowo po zaznaczeniu takiego wiersza możemy zauważyć że na mapie została również zaznaczona geometria obiektu. Możemy to sobie wyobrazić w taki sposób, że w każdym wierszu znajduje się niewidzialna kolumna posiadająca zapis geometryczny obiektu (ta kolumna często jest widoczna w bazach danych obiektów przestrzennych). Prostym zaznaczeniem jest kliknięcie [LKM] myszką w pierwszą kolumnę z numerem porządkowym. Do zaznaczenia możemy dodawać kolejne obiekty w wciśniętym klawiszem [CTRL]. Zaznaczenie obiektów ma bardzo ważną rolę w systemach informacji przestrzennej. Dzięki zaznaczaniu jesteśmy w stanie wyeksportować interesujące nas obiekty spełniające pewne kryteria do osobnej warstwy i tym samym je wyróżnić. Proste zaznaczanie myszką jest efektywne przy bardzo małej liczbie obiektów. Jeśli ta liczba jest duża (a zdarza się że nasza warstwa może liczyć tysiące obiektów) szukanie interesującego nas obiektu wertując całą tabelę jest bezcelowe. W takim wypadku korzystamy z narzędzia [Wybierz obiekty używając wyrażenia] (czwarta ikona na liście ikon tabeli atrybutów).
Otwiera nam się okno narzędzia do wyszukiwania interesujących nas obiektów. Narzędzie jest podzielone na trzy okna: okno z listą funkcji, pomocą dla wybranej funkcji oraz z polem do wpisywania wyrażenia. Każde wyszukiwanie odbywa się za pomocą wyrażenia zapisanego za pomocą języka SQL. Jest on uproszczony, to znaczy nie musimy wpisywać całej formuły Select gdyż wyszukanie i zaznaczenie odbywa się na wybranej już tabeli, wystarczy wpisanie interesującego nas warunku. W oknie lista funkcji mamy dwie najważniejsze najczęściej używane zakładki: operatory oraz pola i wartości. W tej drugiej znajdują się kolumny które są w naszej tabeli atrybutów, w pierwszej operatory logiczne oraz matematyczne. Po zaznaczeniu danej zakładki zawsze możemy przeczytać do czego służy w pomocy po prawej stronie. Skonstruujemy teraz dwa proste wyrażenia do wyszukiwania i zaznaczania obiektów w tabeli atrybutów (oraz automatycznie na mapie). Typowe wyrażenie składa się z określenia kolumny szukania oraz warunku jaki ma spełniać wartość w tej kolumnie (polu). Przykładowo znajdziemy obiekt który w kolumnie NR domu posiada wartość 7. Rozwijamy listę [Pola i wartości] > dwuklik na pole [NR domu]. Wartość z nazwą kolumny zostanie automatycznie wpisana do wyrażenia. Następnie wybieramy operator = i wpisujemy 7. Jeśli program nie informuje nas na czerwono o błędzie formuły klikamy [Wybierz]. 2 obiekty zostały zaznaczone w tabeli atrybutów/mapie. Oczywiście całe wyrażenie może być wpisane ręcznie z klawiatury, należy tylko pamiętać że nazwy kolumn w tabeli wpisujemy w podwójnym cudzysłowie, szukane teksty w pojedynczym. Oprócz prostej funkcji wyszukiwania po jednej kolumnie możemy ograniczyć wyniki wpisując drugi warunek łącząc go operatorem. Do najpopularniejszych i najczęściej używanych zaliczamy: AND (i) OR (lub) LIKE (takie jak) Operator LIKE służy do szukania obiektu po części znanej wartości. Łączy się z nim funkcja % która zastępuje nam nieznane części ciągu znaków. Na przykład możemy wyszukać ulicę znając jej pierwszą część nazwy lub kilka znaków. Użyjemy złożonego zapytania: "NR domu" = 7 AND "Ulica" LIKE 'Ludwika%'
Po takim zaznaczeniu moglibyśmy wyeksportować zaznaczone obiekty do osobnej warstwy.
5. Zaznaczanie obiektów na mapie Zauważyliśmy że zaznaczając obiekty w tabeli atrybutów zaznaczają się obiekty na mapie. Można postąpić odwrotnie, tzn zaznaczać obiekty na mapie. Najprostszym zaznaczeniem jest jego kliknięcia [LKM] narzędziem Wybierz. Możemy zaznaczać pojedyncze obiekty bądź rysując obwiednie i zaznaczyć całe grupy obiektów. Oczywiście zaznaczanie jest również w pełni zautomatyzowane zależnie od tego jaki rezultat chcemy osiągnąć. Funkcyjne zaznaczanie na mapie nosi nazwę selekcji według położenia obiektów, uczestniczą w niej najczęściej minimum 2 warstwy wzajemnie się zaznaczające. Jest realizowane poprzez narzędzia które zostaną omówione w dalszej części konspektu. 6. Dane rastrowe Innym rodzajem danych jakie możemy wczytać do aplikacji QGIS są dane rastrowe. Różnią się od danych wektorowych tym że są to po prostu obrazy bez tabeli atrybutów. Jedyną wartością jaką możemy użyć w analizach jest wartość wpisana w rastrze. Oprócz tego często wartościowe są rysunki zawarte na obrazie, które możemy poddać digitalizacji na dane wektorowe. Wczytywanie Raster możemy od razu wczytać, jeśli mamy pewność że posiada on zdefiniowane położenie. Gdy posiadamy sam raster najczęściej wczytywanie musimy poprzedzić jego skalibrowaniem do odpowiedniego układu współrzędnych. Kalibracja rastra W programie QGIS służy do tego funkcja [Raster] > [Georeferencer]. Jeśli go nie widzimy musimy go włączyć (zaznaczyć czarny krzyżyk) w [Wtyczki] > [Zarządzaj wtyczkami] > zakładka [Zainstalowane] > [Georeferencer GDAL]. Po otwarciu narzędzia wczytujemy raster [plik] > [Otwórz raster]. Wczytujemy obraz tiff z nazwą raster z katalogu projektu. Raster pojawi się w oknie georeferencera. Teraz musimy dodać punkty dostosowania które posiadają znane współrzędne w wybranym układzie. Takimi punktami mogą być punkty osnowy, siatka krzyży mapy bądź inne obiekty o znanych współrzędnych. W naszym przypadku z uwagi na to że posiadamy układ dróg w formie pliku wektorowego będą to przecięcia i załamania sieci drogowej. Dodatkowo określanie punktów może odbywać się na dwa sposoby. Poprzez wpisanie znanych współrzędnych klikniętego punktu na rastrze, bądź pobranie współrzędnych z mapy (z którego my skorzystamy). I tu ważna uwaga, należy zawsze sprawdzić w jakim układzie wyświetlają nam się dane, gdyż wprowadzenie błędnego układu dla skalibrowanego rastra spowoduje błędną kalibrację. Po wczytaniu rastra mamy aktywne narzędzie [Dodaj punkt]. Klikamy w przecięcie dróg na rastrze, a następnie w to samo przecięcie dróg wektorowych na mapie. Należy klikać przy sporym powiększeniu! W naszej kalibracji użyjemy 5 punktów dostosowania rozmieszczonych tak jak na kolejnym rysunku. Po kliknięciu na rastrze pojawi się okno [Wpisz współrzędne mapy], my pobieramy współrzędne z mapy dlatego zaznaczamy opcję [dociągaj do map podkładowych] i wybieramy [Z obszaru mapy]. Klikamy na tym samym przecięciu dróg przy odpowiednim powiększeniu.
Po dodaniu wszystkich 5 punktów uruchamiamy transformacje [Plik] > [Wykonaj]. Pojawi się okienko w którym klikamy [ok]. Opcje ustawiamy jak na poniższym obrazie.
Klikamy [Ok]. Tabela z naszymi punktami uzupełnia się o niedokładności naszej transformacji. Do naszych celów błąd średni transformacji wyświetlany u dołu po prawej stronie okna georeferencera powinien być mniejszy od wartości 1. Możemy zamknąć naszego georeferencera, nie zapisujemy punktów kontrolnych. Dodatkowo raster zostanie dodany do naszej mapy. Przesuwamy go na sam dół na liście warstw. Raster zawiera drogi oraz budynki. Dodatkowo budynki posiadają kolorowe wypełnienia zależne od kategorii odporności. 7. Wektoryzacja danych Widzimy w tym momencie że nasz raster zawiera znacznie więcej budynków niż posiadamy w wersji wektorowej na warstwie budynki. Brakujące budynki będziemy wektoryzować. Aby tego dokonać musimy zawsze określić na jakiej warstwie będziemy rysować nowe obiekty. W naszym przypadku będzie to istniejąca warstwa [budynki], zaznaczamy ją i przechodzimy w tryb edycji warstwy [Warstwa] > [Tryb edycji]. Punkty załamań istniejących budynków zostaną zaprezentowane czerwonymi krzyżami. Aby rozpocząć dodawanie nowego budynku wybieramy [Edycja] > [dodaj obiekt]. Kursor myszki zmieni się na celownik. W tym momencie każde kliknięcie [LKM] spowoduje dodanie punktu do nowego obiektu. Powiększamy mapę rolką myszki do jednego z nienarysowanych budynków i zaczynamy rysować jego obwiednię. Przewidywany kształt końcowy jest wyświetlany na czerwono. Jeśli mamy narysowane wszystkie punkty obwiedni budynku możemy zakończyć rysowanie klikając [PKM] Pojawi nam się okno Atrybuty obiektu, w których możemy w tym momencie uzupełnić wszelkie dane o obiekcie zgodnie z tabelą atrybutów. Należy w polu [Kategoria] wpisać odpowiednią kategorię (0-4) do każdego budynku posiłkując się legendą z mapy rastrowej. Jeśli nastąpi pomyłka w rysowaniu możemy zaznaczyć narysowany obiekt i go usunąć, bądź przejść do edycji wierzchołków obiektu > [Edycja] > [Edycja wierzchołków]. Po wybraniu obiektu punkty wierzchołkowe zostaną oznaczone czerwonymi kwadratami, można je w tej chwili przesuwać [LKM]. Po narysowaniu brakujących budynków zapisujemy edycję warstwy budynki [Warstwa] > [Zapisz edycję] i wychodzimy z trybu edycji [Warstwa] > [Tryb edycji] Należy narysować wszystkie brakujące budynki!!! Na koniec zapisujemy nasz plik projektu z ustawieniami stylów i warstw [Projekt] > [Zapisz] zapisujemy go w katalogu temat1 pod dowolną nazwą.