Podstawowe operacje w GIS GRASS i praca z wektorami
Plan prezentacji import/eksport danych do GIS GRASS zarządzanie warstwami: kopiowanie, zmiana nazwy, kasowanie podstawowe informacje o warstwie wektorowej wyświetlanie warstw praca z tabelą atrybutów: zapytania SQL wybór obiektów spełniających kryteria tworzenie nowych danych w tabeli atrybutów
Zmiana na GRASS6.4
Import danych wektorowych do GIS GRASS
Import danych wektorowych Brak jednego standardu wymiany danych wektorowych GIS Dane wektorowe złożona struktura, zwykle kilka plików (np. ESRI Shape) GRASS korzysta z biblioteki OGR do wymiany danych wektorowych z innymi systemami (podobnie jak np. ArcGIS od 9.2) OGR rozwijany w ramach OSGeo v.in.ogr pozwala na import formatów: Shape, Arc/Info Coverage, MapInfo, DGN, SDTS i innych
Zadanie Import danych w formacie Shape nazwa warstwy: odra dane w: /data/pub/shape polecenie: v.in.ogr dsn=katalog layer=warstwa output=wynik
v.in.ogr z GUI
gdzie pliki? nazwa warstwy wynikowej
Raport importu jakie obiekty geometryczne zostały zaimportowane
Zarządzanie danymi lista warstw w mapsecie, kopiowanie, zmiana nazwy i usuwanie warstw
Lista warstw polecenie g.list vect/rast/region wyświetla nazwy wszystkich warstw w dostępnych mapsetach zadanie: zrobić listę warstw wektorowych, sprawdzić, czy zaimportowana została warstwa odra
Lista warstw danego typu w dostępnych mapsetach Wybór typu warstw do wylistowania
Zmiana nazwy warstwy g.rename rast/vect/region=stara,nowa polecenie zmienia nazwę warstwy i wszystkich powiązanych z nią informacji (np. tabeli atrybutów dla wektorów)
Polecenie g.rename pozwala zmienić nazwę warstwy w mapsecie, do którego mamy pełne prawa dostępu
zmiana nazwy Zamień nazwę zaimportowanej wcześniej warstwy wektorowej odra na inną. sprawdź wynik wyświetlając listę warstw nazwa warstwy, której nazwę chcemy zmienić (odra), po przecinku nowa nazwa warstwy (odra2) podsumowanie: nazwa warstwy odra zmieniona na odra2
Usuwanie warstw Warstwy w bazie danych (mapsecie) to struktury złożone wiele plików w różnych katalogach mapsetu polecenie usuwające całe warstwy: g.remove rast/vect/region=nazwa
Usuń warstwę z Odrą Usuwanie warstw
Import rastrów Import danych rastrowych poprzez bibliotekę GDAL ponad 40 obsługiwanych formatów (m.in. GeoTIFF, ArcGRID, ERDAS, JPEG) polecenie: r.in.gdal input=nazwa1 output=nazwa2
1. Co chcemy zaimportować i skąd 1. Co chcemy zaimportować i skąd 2. Pod jaką nazwą zapamiętać warstwę w bazie GRASS
Podsumowanie Import danych zewnętrznych realizowany poprzez biblioteki: OGR dla wektorów GDAL dla rastrów W bazie danych jedna warstwa=wiele plików na dysku. Do zarządzania taką informacją trzeba używać odpowiednich narzędzi: g.list zawartość mapsetów g.copy kopiowanie g.rename zmiana nazwy g.remove usuwanie warstw
Dane wektorowe podstawowe informacje o geometrii
Typy geometryczne w GRASS 2D: punkty, linie i poligony area boundary centroid werteksy (vertices) węzły (nodes)
Typy geometryczne w GRASS 3D: face 3D area kernel 3D centroid volume
Typy geometryczne na warstwie v.info NAZWA polecenie wyświetla podstawowe informacje o typach geometrycznych, jakie znajdują się na wskazanej warstwie wektorowej (jakie i ile) zadanie: wyświetl informację o geometrii obiektów na warstwie woj2002
Nazwa warstwy, o którą chcemy zapytać
Typy geometryczne Zasięg przestrzenny
Wyświetlanie warstwy wektorowej Wyświetlane zwykłe, przy domyślnych ustawieniach Wyświetlanie wg typów geometrycznych: Pełne poligony (jw.) Tylko obrysy (boundary) Tylko area Obrysy + centroidy
Podwójne kliknięcie na warstwie otwiera okno opcji Wybór typów geometrycznych, jakie chcemy wyświetlić
Podsumowanie Wektory złożona geometria v.info -Informacja o typach geometrycznych na danej warstwie Opcje wyświetlania możliwość wybrania Opcje wyświetlania możliwość wybrania określonych typów geometrycznych do wyświetlania
Dane wektorowe i tabela atrybutów
Dane wektorowe Geometria punkty, linie i wieloboki Baza danych atrybuty opisowe, opcjonalna Komunikacja między geometrią a bazą danych: CAT category number, klucz bazy danych: CAT identyfikator przypisany obiektom geometrycznym CAT id w tabeli atrybutów
Geometria ~ tabela atrybutów CAT=1 CAT=3 Kolumny w tabeli Atrybuty przypisane do obiektów CAT nazwa ludność 1 Nazwa1 5 2 Nazwa2 4 3 Nazwa3 7 4 Nazwa4 1
Pytanie o atrybuty przez GUI Najprostszy sposób na zapytanie o atrybuty przypisane do danego obiektu geometrycznego (Identify w ArcGIS) Zadanie: Wyświetlić warstwę woj2002 Zapytać o atrybuty W jakiej kolumnie znajduje się informacja o nazwie województwa?
Podstawowe narzędzie pytania o atrybuty warstwy Kolumny w tabeli Atrybuty przypisane do obiektu
Szczegółowe informacje o tabeli Polecenia: v.info c NAZWA Pozwala uzyskać informacje o: Nazwach kolumn w tabeli Typie przechowywanych danych
Szczegółowe informacje o tabeli Typy danych: Liczbowe: INTEGER całkowite DOUBLE PRECISION zmiennoprzecinkowe Tekstowe CHARACTER (lub VARCHAR)
Nazwy kolumn tabeli atrybutów i typ przechowywanych danych
Zapytania SQL
Zapytania SQL Structured Query Language Pozwalają wybrać obiekty wektorowe, których atrybuty spełniające określone w zapytaniu kryteria Domyślnie bazy danych w GRASS są zorganizowane w oparciu o DBF obsługa tylko wybranych zapytań SQL Inne bazy danych do wykorzystania: SQLite, PostgreSQL, MySQL, unixodbc
Ogólna składnia Zawsze określamy: O którą kolumnę pytamy (albo kolumny) Jakiej wielkości atrybutu we wskazanej kolumnie szukamy Warunki logiczne w zapytaniach SQL: Równy = Różny <> Większy i mniejszy > i < Jeśli pytamy o atrybut tekstowy, to musimy jego wartość podać w apostrofach kolejność warunków jest modyfikowana nawiasami wielkość liter ma znaczenie
Dostęp do zapytań SQL Możliwy w kontekście różnych narzędzi, zależy od tego co chcemy zrobić, np: wyświetlania warstw zakładka Query importu warstw wektorowych Table Manager
ZADANIE: z warstwy woj2002 wyświetl województwo dolnośląskie Pole zapytań SQL: WOJEWODZTW= Dolnoslaskie
WOJEWODZTWA Wszystkie obiekty Obiekty wybrane zapytaniem SQL
Zadanie Z warstwy powiaty2002 wyświetl powiaty z województwa dolnośląskiego
Zadania 1. Z warstwy miasta2002 wyświetl miejscowości położone w województwe dolnośląskim 2. Z warstwy woj2002 wyświetl wszystkie województwa oprócz dolnośląskiego 3. Z warstwy miasta2002 wyświetl miejscowości, których liczba ludności przekracza 250 tys.
SQL zdania logiczne Pojedyncze warunki mogą być łączone w zdania logiczne za pomocą łączników logicznych Łączniki logiczne: AND zdanie spełnione, jeśli wszystkie jego części są spełnione jednocześnie OR zdanie spełnione, jeśli przynajmniej jedna z jego części jest spełniona (prawdziwa)
SQL zdania logiczne Przykład: X>5 AND X<10 PRAWDA Przykład: PRAWDA 5 10 X>5 OR X<10 PRAWDA PRAWDA 5 10
Zadanie Z warstwy woj2002 wyświetl województwa dolnośląskie i mazowieckie. Jaki łącznik logiczny? Dlaczego taki?
Kontrola wyników Najczęstszą przyczyną błędów są literówki w nazwach kolumn/atrybutów. Po zadaniu zapytania SQL, wynik trzeba KONIECZNIE poddać kontroli, pytając o atrybuty wynikowych obiektów. Szczególna ostrożność, jeśli wynikiem zapytania jest pusta warstwa (żaden obiekt nie spełnia warunków).
Zadania 1. Z woj2002 wyświetl wszystkie województwa oprócz dolnośląskiego i mazowieckiego 2. Z miasta2002 wyświetl miejscowości z liczbą ludności poniżej 100tys i powyżej 400tys 3. Z miasta2002 wybrać miejscowości z liczbą ludności w przedziale od 100 do 400tys.
Zadania pytania do dwóch różnych kolumn tabeli 1. Z miasta2002 wybrać miejscowości z liczbą ludności <200tys. i położone w województwie dolnośląskim 1. Z miasta2002 wybrać miejscowości z woj. dolnośląskiego z liczbą mieszkańców większą niż 50tys i mniejszą niż 200tys. 1. Z miasta 2002 wybrać miejscowości z dolnośląskiego z liczbą mieszkańców mniejszą niż 50tys i większą niż 200tys
SQL i tworzenie nowej warstwy
SQL i tworzenie nowej warstwy Wynik zapytania SQL może być: Wyświetlony na monitorze graficznym Zapamiętany jako nowa warstwa wektorowa w bieżącym mapsecie za pomocą: narzędzia v.extract Table Manager
Zadanie Wybierz powiaty z województwa dolnośląskiego Wybór zapamiętaj jako nową warstwę o nazwie pow_ds Procedura: Procedura: Najpierw zadaj pytanie i wyświetl rezultat Jeśli zapytanie wyświetla te obiekty, których szukaliśmy (działa poprawnie): Wybierz narzędzie pozwalające na zapis wybranych obiektów jako nowa warstwę Wyczyść drzewo warstw, dodaj nową warstwę i wyświetl
v.extract Będziemy chcieli wybrać powiaty z województwa dolnośląskiego i zapamiętać je jako nową warstwę pow_ds
v.extract Podsumowanie co zostało zapisane w warstwie pow_ds Zapytanie SQL co chcemy zapisać w wynikowej warstwie pow_ds
v.extract -wynik Pełna treść warstwy pow_ds tylko powiaty województwa dolnośląskiego
SQL i tworzenie nowej warstwy Dobry zwyczaj: Zbuduj zapytanie, wyświetl i sprawdź, czy działa poprawnie. Jeśli wyświetla te obiekty których szukasz, to też poprawnie je wybierze za pomocą innych narzędzi (np. v.extract). Dopiero teraz skorzystaj z innych narzędzi wektorowych i wpisz (lub skopiuj) swoje zapytanie System domyślnie blokuje nadpisywanie istniejących danych, dlatego: Jeśli zapytanie jest błędne (logicznie), utworzona zostanie pusta warstwa (0 obiektów spełniających warunki) Po wprowadzeniu korekty do zapytania, stara warstwa nie zostanie nadpisana, dalej będzie pusta Można włączyć opcję nadpisywania istniejących warstw (overwrite) ale ostrożnie, żeby nie stracić ważnych informacji
Table manager
Table Manager Nowe narzędzie (GRASS 6.3) Dostępne tylko poprzez wxgui Funkcjonalnie łączy kilka narzędzi GIS GRASS dostępnych z linii poleceń Przykłady zastosowań: przeglądanie tabeli atrybutów wykonywanie zapytań SQL (kwerendy) modyfikacja tabeli (np. dodawanie i usuwanie kolumn) zapisywanie wybranych obiektów jako nowych warstw
Pełny podgląd tabeli atrybutów Table Manager
Table manager Opcje pozwalaja na: Wybór obiektów za pomoca zapytań sql Wyświetlanie wybranych obiektów Zapisanie wybranych obiektów jako nową warstwę
Zarządzanie tabelą Zakładka Manage tables: Informacja o kolumnach i typie przechowywanych danych (podobnie jak v.info) Dodawanie kolumn Zmiana nazw kolumn Modyfikacja tabeli atrybutów wymaga pełnych praw dostępu do warstwy
Table Manager jako alternatywa dla v.extract
Zapis wybranych obiektów Kolejne kroki realizowane po kliknięciu prawym przyciskiem myszy: Select all wybór wszystkich wierszy tabeli, wyselekcjonowanych wcześniej zapytaniem SQL Extract zapisanie obiektów jako nową warstwę wektorową Możliwe jest zapisanie wyłącznie kilku obiektów, spośród wybranych zapytaniem SQL
Praca z tabelą atrybutów Tworzenie nowych kolumn i dodawanie informacji
Praca z tabelą atrybutów GRASS pozwala: Dodać nową kolumnę do istniejącej tabeli (v.db.addcol lub Table Manager) Wypełnić taką kolumnę informacją: Obliczoną z zastosowaniem któregoś z narzędzi v. np. v.to.db Obliczoną w oparciu o już istniejące dane w tabeli (db.execute)
Dodawanie kolumny do tabeli Konieczne, jeśli chcemy umieścić nowe dane w tabeli - musimy stworzyć dla nich odpowiednie miejsce Kolumny mogą przechowywać dane: Liczbowe: DOUBLE PRECISION zmiennoprzecinkowe INTEGER liczby całkowite Tekstowe VARCHAR Kolumny można dodać tylko do warstw w mapsecie, do którego mamy pełne prawa dostępu!
Zadanie Cel obliczenie powierzchni powiatów w województwie dolnośląskim Procedura: Wybrać powiaty na osobną warstwę - już zrobiliśmy: pow_ds Do warstwy dodać kolumnę, w której docelowo będzie informacja o powierzchni powiatów. Obliczyć powierzchnię i zapamiętać wynik we wcześniej dodanej kolumnie
Dodawanie kolumny do tabeli
Dodawanie kolumny do tabeli
Dotychczasowy wynik Dodana została kolumna, w której mogą być przechowywane dane liczbowe, zmiennoprzecinkowe Teraz: Zastosować narzędzie, które policzy powierzchnie (v.to.db) Wskazać, że wynik działania ma trafić do utworzonej wcześniej kolumny
v.to.db Narzędzie pozwala obliczyć różne charakterystyki geometryczne obiektów wektorowych: Powierzchnię Długość Obwód Do obliczeń można użyć różnych jednostek Wyniki zapamiętywane są we wskazanej kolumnie tabeli atrybutów (musi być wcześniej utworzona)
Obliczanie powierzchni
Obliczanie powierzchni
Weryfikacja
Zadanie Oblicz gęstość zaludnienia w powiatach województwa dolnośląskiego. Wykorzystaj: Informację o liczbie ludności (LUDN_1999) Obliczoną wcześniej informację o powierzchni Obliczoną wcześniej informację o powierzchni powiatów
Procedura wykonania 1. Utworzenie kolumny która będzie przechowywać informację o gęstości zaludnienia 2. Wykonanie operacji arytmetycznej na dwóch 2. Wykonanie operacji arytmetycznej na dwóch istniejących kolumnach, zapamiętanie wyniku w trzeciej (1.)
db.execute Polecenie pozwala m.in. wykonać obliczenia na istniejących kolumnach w tabeli Działa z poziomu linii komend: echo UPDATE warstwa SET kolumna=wartość db.execute W przypadku zadania: 1.chcemy zmodyfikować warstwę pow_ds 2.zmienić kolumnę gestość 3.wartość obliczyć na podstawie kolumn LUDN_1999 i powierzchn
db.execute -wynik
Wizualizacja kartogram Zadanie: na podstawie obliczonej gęstości utworzyć kartogram (mapę tematyczną)
Skąd dziury?
Ręczny podziałklas