ArcGIS: Ćwiczenie 2
Strona 1 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
Atrybuty, tabele, baza danych
1.
Wstęp
Mapa wektorowa = część geometryczna + część tabelaryczna (atrybutowa, opisowa, niegeometryczna)
W części tabelarycznej przechowywane są informacje o obiektach (atrybuty obiektów).
1.1.
Symbole w instrukcji (przypomnienie)
tak zaznaczane są zadania do wykonania
tak zaznaczane są kolejne etapy rozwiązania. Uważnie je czytaj i wykonuj!
!x
tak zaznaczane są zadania, których rozwiązanie będzie sprawdzane przez prowadzącego zajęcia
tak zaznaczane są podpowiedzi lub dygresje
[...]
tak oznaczane są odpowiedzi do zadań
1.2.
Dane wykorzystane w ćwiczeniu
Nazwa
Format danych
Zawartość
Pochodzenie
pkty_mo
shapefile
punkty monitoringu operacyjnego
KOKŚ PW
pkty_md
shapefile
punkty monitoringu diagnostycznego
KOKŚ PW
rzeki
shapefile
liniowe wody powierzchniowe w woj. mazowieckim
MPHP
jeziora
shapefile
poligonowe wody powierzchniowe w woj. mazowieckim
MPHP
scw
shapefile, poligon granice i nazwy scalonych jednolitych części wodnych
MŚ
granica_woj
shapefile, poligon granica województwa mazowieckiego
IMAGIS
MPHP
–
Mapa Podziału Hydrograficznego Polski
MŚ
–
Ministerstwo Środowiska
IMAGIS
–
prywatna firma działająca m.in. w dziedzinie GIS
Uwaga – dane wykorzystywane w ćwiczeniu są przeznaczone wyłącznie do użytku przez studentów
Wydziału Inżynierii Środowiska PW w celach edukacyjnych.
Źródłem danych hydrograficznych jest Mapa Podziału Hydrograficznego Polski wykonana przez Ośrodek
Zasobów Wodnych Instytutu Meteorologii i Gospodarki Wodnej na zamówienie Ministra Środowiska
i sfinansowana ze środków Narodowego Funduszu Ochrony Środowiska i Gospodarki Wodnej.
ArcGIS: Ćwiczenie 2
Strona 2 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
2.
Jak wyświetla się warstwy (przypomnienie)
!a
Otwórz ArcMap i dodaj warstwy: pkty_mo, pkty_md, rzeki, granica_woj, jeziora. Dobierz właściwe
symbole i kolory. Rzeki wyświetl w taki sposób, aby grubość linii symbolizującej rzekę rosła w miarę
malejącego rzędu rzeki (pole RZAD), (czyli, im „ważniejsza” rzeka, tym grubszą linią będzie rysowana).
Upewnij się też, że żadna warstwa nie zasłania całkowicie innej.
Zasięg wszystkich warstw jest ograniczony do województwa mazowieckiego.
3.
Testowanie połączenia obiektów z atrybutami
(przypomnienie)
Zaobserwuj, jak zaznaczane są obiekty przy zaznaczaniu rekordów tabeli atrybutów i na odwrót –
rekordy przy zaznaczaniu obiektów.
wyłącz wszystkie warstwy poza punktami monitoringu diagnostycznego i granicą województwa
Wszystkie warstwy naraz można wyłączyć wybierając Turn all Layers Off z menu kontekstowego dostępnego
dla mapy (Layers, Data Frame) widocznej w obszarze legendy
wywołaj tabelę atrybutów warstwy pkty_md i zauważ jak zaznaczają się obiekty w obszarze widoku
przy zaznaczaniu rekordów tabeli
użyj teraz odpowiedniego narzędzia ,aby zaznaczać punkty w obszarze widoku. Zauważ, jak
jednocześnie wybierane są rekordy w tabeli
W ArcMap domyślnie wybierane są obiekty wszystkich widocznych warstw. Jeśli jednak chcesz, aby np.
wybierane były tylko punkty pomiarowe, a nie poligon województwa, skorzystaj z opcji Set Selectable Layers... z
menu Select – tu możesz wybrać warstwy, których obiekty będą zaznaczane. Ustawień tych możesz dokonać
także z zakładki Selection z obszaru legendy (jest za zakładkami Display i Source).
przypomnij sobie z poprzednich zajęć, jak sterowało się wyglądem zaznaczanych obiektów (tak, aby
np. zaznaczony poligon wyświetlał się na żółto, a nie był wyróżniany niebieskim obrysem)
4.
Łączenie tabel w relacji jeden-do-jednego (1-1)
Dołącz do informacji o punktach monitoringu diagnostycznego informacje o scalonych częściach
wodnych, które są zamykane przez te punkty.
O co tu chodzi? Otóż zadaniem każdego punktu monitoringu diagnostycznego (MD) jest zbieranie
informacji o pojedynczej scalonej części wodnej (SCW). Z kolei SCW można zinterpretować jako obszar
obejmujący grupę podobnych (nie ma tu znaczenia w jakim dokładnie sensie) części wodnych (rzek, jezior,
sztucznych cieków). Geometrycznie, punkt MD musi być umieszczony na wylocie rzeki opuszczającej obszar
SCW – to za chwilę zobaczysz.
otwórz tabelę atrybutów warstwy pkty_md. Jest tam m.in. pole IDSCW – jest to pole zawierające
numery ID (identyfikacyjne) scalonych części wodnych
dodaj warstwę scw i otwórz jej tabelę. W którym polu znajdują się numery ID, do których jest
„nawiązanie” w warstwie pkty_md?
W każdej tabeli powinno znajdować się pole numeryczne, w którym jest zapisywany numer ID,
niepowtarzalny i unikalny dla każdego obiektu. W ArcMap niezależnie od stałych pól istniejących w tabeli
ArcGIS: Ćwiczenie 2
Strona 3 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
atrybutów dodawane jest chwilowe pole FID, w którym taki numer jest zapisywany. To pole oczywiście można
wykorzystywać w pracy z tabelą, tj. w zapytaniach i obliczeniach. Należy przy tym pamiętać, że numer FID nie
jest
na stałe przyporządkowywany do konkretnego rekordu, a jedynie roboczo przydzielany.
dodaj tabelę warstwy scw do tabeli warstwy punktów monitoringowych – w tym celu wywołaj z
menu kontekstowego warstwy pkty_md opcję Joins and Relates
→
Join...
i wypełnij
Kolejno deklarowane są:
•
IDSCW – pole, które zawiera wspólną numerację, w tabeli do której zostanie dołączona inna tabela
•
scw – tabela (czy też, tutaj – warstwa, której tabela atrybutów zostanie pobrana), która ma zostać dołączona
•
IDN_SCW – pole ze wspólną numeracją w tabeli, która ma zostać dołączona
wywołaj tabelę warstwy pkty_md i spójrz, jak tabela atrybutów warstwy scw „dokleiła” się do tabeli
punktów. Teraz badając punkty MD można też korzystać z przypisanych do nich atrybutów SCW.
Znajdź, przykładowo, nazwę SCW dla punktu MD o numerze 1000 [Mławka bez Przylepnicy]
Zauważ, że po połączeniu zmieniły się nazwy pól, przybierając postać NazwaTabeli.NazwaPola – ta chwilowa
zmiana ma na celu uniknięcie niejednoznaczności, które mogłyby się zdarzyć, gdyby w źródłowych tabelach
były pola o tych samych nazwach.
Zapisz na stałe wynik połączenia tabel.
w oknie tabeli pkty_md wciśnij klawisz Options, a następnie wywołaj opcję Export. Wybierz nazwę,
format i miejsce zapisu nowej tabeli. Jeśli ją otworzysz (niekoniecznie w ArcGIS), przekonasz się, że
są w niej obecne i oryginalne pola, i dodane
5.
Zakładanie relacji między tabelami
Połącz tabele atrybutów punktów MD i poligonów SCW tak, aby móc łatwo znaleźć scalone części
zamknięte przez zaznaczone punkty.
najpierw usuń poprzednie połączenie tabel – nie będzie już potrzebne: rozwiń Joins and Relates z
menu kontekstowego warstwy pkty_md i wybierz którąś z opcji następujących po Remove Join(s)
teraz zostanie nawiązane nowe połączenie innego typu – rozwiń ponownie Joins and Relates i wybierz
Relate
w następnym oknie zadeklaruj takie same opcje, jak przy połączeniu 1-1. Ten typ relacji wymaga
ponadto nadania nazwy (ostatnie pole okna Relate) – wpisz np. „Punkt MD dla SCW”
w tym i następnych punktach nowe połączenie zostanie wypróbowane – na początek otwórz tabele
atrybutów połączonych warstw, usuń wszelkie istniejące zaznaczenia, a następnie zaznacz np.
rekord z punktem MD o ID = 1000
na razie w tabeli scw nie jest zaznaczony żaden rekord (na dole okna tabeli znajduje się odpowiednia
informacja: Records (0 out of 257 Selected)), pomimo nawiązanego przed chwilą połączenia i
zaznaczenia rekordu w tabeli źródłowej
aby zobaczyć wyniki działania połączenia, wciśnij w oknie tabeli pkty_md klawisz Options (uwaga –
jeśli jest niewidoczny, powiększ okno tabeli) i wybierz opcję Related Tables
→
Punkt MD dla SCW: scw
czy teraz w tabeli scw jest zaznaczony jakiś rekord? [tak, jeden, dla SCW o nazwie Mławka bez
Przylepnicy
]
aby obejrzeć zaznaczone obiekty, kliknij prawym klawiszem w oknie widoku i wybierz opcję Zoom to
Selected Features
Połączenie tego typu służy przede wszystkim do realizacji typu „jeden do wielu” lub „wiele do wielu” gdy
pojedynczy rekord lub wiele rekordów źródłowej tabeli łączy się z wieloma rekordami tabeli docelowej.
ArcGIS: Ćwiczenie 2
Strona 4 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
Nazwy „źródłowa” i „docelowa” są tu używane wyłącznie umownie. W istocie połączenie tego typu jest
całkowicie symetryczne i dwukierunkowe (czyli np. można zaznaczyć SCW i znaleźć właściwe dla tej części
punkty MD).
!b
Wypróbuj połączenie dla innych punktów MD. Ustal wygląd warstw tak, aby: widać było kierunek
spływu rzek (legenda typu Single Symbol, symbol linii ze strzałką), widoczna była zaznaczona SCW i
zaznaczony punkt MD. Pokaż SCW odpowiadającą punktowi MD o ID = 1301.
6.
Zadawanie zapytań (query) do tabeli
Wybierz wszystkie rzeki pierwszego rzędu.
najpierw posprzątaj – zamknij wszystkie okna tabel, usuń zaznaczenia, wyłącz wszystkie warstwy
poza warstwą rzeki, zastosuj dla tej warstwy jak najprostszą legendę (by za chwilę było łatwo widać
efekty zaznaczenia)
wywołaj tabelę atrybutów warstwy rzeki i obejrzyj jej zawartość
z menu Selection wywołaj opcję Select by Attributes... i wypełnij okno tak, aby wynikiem zapytania
było zaznaczenie wszystkich rzek pierwszego rzędu.
Kolejno widoczne są:
rzeki
– warstwa, której tabela będzie analizowana
Create a new selection
– sposób interpretacji zapytania – tu: tworzone będzie nowe zaznaczenie (wszelkie
poprzednie zostaną anulowane)
Lista pól dostępnych dla tabeli atrybutów warstwy – tu dwuklikiem wybiera się pole, którego
będzie dotyczyć zapytanie
Lista operatorów używanych w zapytaniach – pożądany operator wybiera się jednym kliknięciem
Get Unique Values
– po wciśnięciu tego klawisza ukazuje się lista unikalnych wartości dostępnych
dla wybranego pola
ile rekordów zostało wybranych? [20]
Wybierz wszystkie rzeki o rzędzie 3 lub niższym. [497]
Wybierz wszystkie jeziora o powierzchni mniejszej niż 0.2 ha i o stosunku obwodu do powierzchni
przekraczającym 10% (czyli małe „rozciągnięte” oczka wodne). [174]
Wybierz te punkty monitoringu operacyjnego (MO), które monitorują jednolite części wodne (JCW)
zagrożone presjami punktowymi i obszarowymi.
Punkty monitoringu operacyjnego zamykają tzw. jednolite części wodne, które można sobie roboczo
wyobrażać jako jednostki mniejsze od scalonych części (w istocie scalone części wodne to grupy jednolitych
części).
Informacja o zagrożeniu jednolitej części zamykanej punktem MO zakodowana jest w polu Zagrozenie
według następującego klucza: znajdują się tu 4 liczby, oddzielone znakiem podkreślenia ( _ ).
Liczby te oznaczają:
1 – część niezagrożona;
2 – część potencjalnie zagrożona;
3 – część zagrożona.
Kolejność liczb ma następujące znaczenie:
liczba na pierwszym miejscu: presje punktowe;
liczba na drugim miejscu: presje obszarowe;
liczba na trzecim miejscu: presje związane z ujęciami wody;
liczba na czwartym miejscu: presje morfologiczne.
ArcGIS: Ćwiczenie 2
Strona 5 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
Przykładowo: kod 1_2_3_1 oznacza JCW, która jest niezagrożona ze względu na presje punktowe i
morfologiczne, jest potencjalnie zagrożona z uwagi na presje obszarowe i zagrożona z powodu presji
związanych z ujęciami wody.
zamknij wszystkie tabele, otwórz jedynie tabelę atrybutów warstwy pkty_mo i ją obejrzyj
zadanie polega na znalezieniu takich rekordów, dla których dwa pierwsze elementy kodu to trójki,
czyli wymagane jest, aby w polu Zagrozenie pierwszym i trzecim znakiem było „3”. Informacja o
zagrożeniu nie jest przechowywana w polu numerycznym, lecz tekstowym, konieczne więc będzie
skorzystanie z funkcji analizy takiego właśnie typu pola. W tym celu wywołaj okno wpisywania
zapytania i wprowadź w jego dolnej części warunek:
"ZAGROZENIE" LIKE '3_3%'
Do realizacji zapytań w ArcMap wykorzystywany jest standardowy język SQL – pod tym hasłem szukaj
szczegółowych wskazówek dotyczących zasad jego stosowania. W powyższym przykładzie LIKE oznacza
„podobny do”, a znak procenta (%) dowolny ciąg znaków lub brak znaku. Cały warunek można więc
przetłumaczyć następująco: „pokaż rekordy, dla których w polu Zagrozenie wpisano wyrażenie zaczynające się
od znaków 3_3”.Znak podkreślenia (_) oznacza w SQL dowolny pojedynczy znak (czyli druga część warunku
mogłaby także zostać sformułowana następująco
3_3____
– uwaga na znaki podkreślenia, które tu także
stanowią część tekstu zapisanego w komórce tabeli).
ile zostało znalezionych punktów? [52] Ile punktów zamyka jednolite części wodne zagrożone
presjami związanymi z ujęciami wody? [38]
!c
Ważne informacje o punktach MO zakodowane są również w polu KODJCW. Znajdź wszystkie
punkty, dla których ten kod kończy się ciągiem znaków ‘49’.
7.
Obliczenia w tabeli
Utwórz w tabeli atrybutów kopii warstwy pkty_mo pole, w którym przechowywana będzie informacja o
zagrożeniach obszarowych.
na początek użyj ArcCatalog, aby wykonać kopię warstwy pkty_mo. Kopię tę nazwij np. pkty_mokopia,
dodaj do widoku w ArcMap i otwórz jej tabelę atrybutów
w oknie tabeli pod klawiszem Options jest opcja Add Field.... Po jej wybraniu nadaj nazwę nowemu
polu (np. ZagrObsz), ustal jego typ (przechowywana będzie liczba całkowita, pozostaw więc
domyślny typ Short Integer) i ustal długość (Precision, niech będzie równa 1)
teraz trzeba wypełnić nowe pole. Działania w polu tabeli wykonuje się w oknie wywołanym po
kliknięciu prawym klawiszem na nagłówku pola i wybraniu pozycji Field Calculator... – wywołaj to
okno, przyjrzyj mu się, a następnie wypełnij w pokazany poniżej sposób
Została wykorzystana funkcja Visual Basic o nazwie mid, która tu pobrała z pola Zagrozenie (zauważ, że w
wyrażeniu nazwa pola została wpisana w kwadratowym nawiasie) jednoznakowej długości tekst, poczynając
od trzeciego znaku. Pełna listę funkcji VB, których można tu używać, dostępna jest w pomocy VB, dostępnej
także z poziomu ArcGIS (Tools
→
Macros
→
Visual Basic Editor | Help
)
ArcGIS: Ćwiczenie 2
Strona 6 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
sprawdź czy nowe pole zostało prawidłowo wypełnione, tj. przeanalizuj kilka losowo wybranych
rekordów
!d
Dodaj nowe pole z informacjami o zagrożeniach morfologicznych. Jaka jest średnia wartość liczb
zapisanych w tym polu (prawy klawisz na nagłówku nowego wypełnionego pola
→
Statistics...
(mean))?
Usuń dwa nowe pola.
dla każdego pola: prawy klawisz na nagłówku pola
→
Delete Field...
Zapisz w tabeli atrybutów warstwy pkty_mokopia informację o współrzędnych każdego punktu (z
dokładnością do 1 cm).
zadanie będzie polegało na dodaniu i wypełnieniu dwóch pól – jedno na współrzędną X, drugie Y.
Przede wszystkim należy określić, jakie to będą liczby (tj. jaka będzie ich długość i liczba miejsc
dziesiętnych). W tym celu spójrz w dolny prawy róg okna ArcMap – tam pokazywane są aktualne
współrzędne kursora. „Pomachaj” nim, aby zobaczyć w jakim zakresie współrzędne te się zmieniają
wywołaj tabelę atrybutów i dodaj w niej dwa pola o nazwach np. WspX i WspY i o parametrach:
o
typ: Float (krótka liczba rzeczywista)
o
Precision
(długość liczby, bez znaku dziesiętnego): 8
o
Scale
(liczba cyfr na prawo od znaku dziesiętnego): 2 – jednostką mapy są metry, więc taka
liczba cyfr zapewnia wymaganą dokładność 1 cm
kliknij prawym klawiszem na nagłówku pola WspX i skorzystaj z opcji Calculate Geometry...,
wybierając tam odpowiednią pozycję. Podobnie zrób dla pola WspY.
Zapamiętaj tę funkcję – jej zastosowanie nie ogranicza się do dodania informacji o współrzędnych, ale przy
jej pomocy można także uzyskać dane o powierzchni i obwodzie poligonu, długości linii oraz współrzędnych
środka obiektu.
8.
Tworzenie nowej tabeli
!e
Utwórz nową tabelę, która będzie zawierać dwa pola i 6 rekordów: w pierwszym będzie zapisany rząd
cieku (czyli kolejne liczby od 1 do 6, rząd 7. jest tu pominięty), w drugim nazwa najdłuższego odcinka
rzecznego danego rzędu. Wykorzystaj warstwę rzeki.
nową tabelę tworzy się w ArcCatalog. Wywołaj ten program i wybierz widoczną na poniższym
rysunku opcję menu (samo menu wywołuje się prawym klawiszem)
ArcGIS: Ćwiczenie 2
Strona 7 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
w pierwszym polu będzie zapisana liczba całkowita o długości 1, właściwości tego pola są więc
oczywiste. Drugie pole będzie tekstowe – ale jaka będzie jego długość? Aby to określić, wykonaj 6
razy zapytanie, wybierając kolejne rzędy, następnie wybieraj na dole okna opcję pokazywania
wyłącznie wybranych rekordów i układaj je w kolejności malejącej wg pola DLUG (prawy klawisz na
nagłówku pola...), aby na pierwszym miejscu stał najdłuższy odcinek danego rzędu. Przepisz te 6
nazw – za chwilę się przydadzą. Ile znaków liczy najkrótsza nazwa? [3] Ile najdłuższa? [9]. Utwórz
więc tabelę, na razie pustą i zamknij ArcCatalog
wróć do ArcMap, otwórz nową tabelę i dodaj w niej dwa pola. Nie zadeklaruj zbyt krótkiego pola
tekstowego, bo nie zmieścisz w nim nazw rzek
Zauważ, że w nowej tabeli znajdują się dwa pola – pierwsze to OID (object ID), czyli pole, w którym program
automatycznie wstawi dla każdego rekordu unikalny numer ID. Drugie pole (Field1) jest dodawane przez
ArcGIS ze względów „technicznych” – w skrócie, tabela zawierająca tylko pole OID jest przez program
uważana za błędną. Usuń pole Field po dodaniu własnych pól.
teraz dodasz 6 rekordów do tabeli. Będzie to nieco bardziej skomplikowane niż dodawanie pól.
Przede wszystkim dodaj do interfejsu nowy pasek zawierający narzędzie do edycji: View
→
Toolbars
→
Editor
w nowym pasku rozwiń pole Editor i wybierz pierwszą pozycję (patrz na rysunek poniżej, jest na nim
także pokazana tabela, na razie pusta) – nowe rekordy będą dodawane w tzw. sesji edycji
ArcGIS: Ćwiczenie 2
Strona 8 z 8
Katedra Ochrony i Kształtowania Środowiska, Politechnika Warszawska
wersja MMXIII/L
po wejściu w tryb edycji w tabeli pojawia się nowy rekord – wejdź kursorem w odpowiednie
komórki i wpisz rząd rzeki i odpowiadającą jej nazwę (dla pierwszego rekordu: 1 i Wisła)
nowy rekord dodaje się np. po wciśnięciu Enter w sytuacji, gdy kursor stoi w ostatnim rekordzie.
Wypełnij wszystkie 6 rekordów
po zakończeniu pracy wybierz opcję Stop Editing i potwierdź zapisanie zmian. Nowa tabela jest
gotowa (to jest zadanie na zaliczenie, pokaż ją więc prowadzącemu zajęcia)
Dodawanie rekordów (czy też w ogóle dokonywanie wszelkich edycji danych przestrzennych lub innych) w
trybie sesji pozwala na przyjęcie (lub odrzucenie) wszystkich zmian naraz, poprzez zakończenie sesji i
zapisanie zmian (lub zakończenie bez zapisywania).