Adam Inglot
Adiunkt w Katedrze Geodezji
Wydział Inżynierii Lądowej i Środowiska, Politechnika Gdańska
adam.inglot@pg.edu.pl
2022-08-24, aktualizacja 2024-10-25
© ainglot.pl, 2022. Udostępnianie i wykorzystanie zgodnie z licencją Creative Commons Attribution 4.0 International license (CC BY 4.0).Selekcja jest operacją jednoargumentową, określoną przez warunek dotyczący wartości kolumn danej relacji. Wynikiem jej jest relacja zawierające te wszystkie encje (wiersze) wyjściowej relacji, których atrybuty spełniają dany warunek [1]. Podstawą funkcjonowania bazy danych w GIS jest relacyjny model danych. Relacyjna baza danych to taka baza danych, w której dane są uporządkowane i zorganizowane w postaci relacji [2]. Natomiast relacja to zbiór egzemplarzy encji mających te same atrybuty wraz z wartościami tych atrybutów; relacja może być zapisana jako tablica, której wiersze odpowiadają egzemplarzom encji, a kolumny atrybutom [2].
W systemach informacji geograficznej relacje dotyczą nie tylko atrybutów bazy danych lecz również obiektów przestrzennych, mówimy wtedy o relacjach przestrzennych. Relacje przestrzenne – relacje dotyczące wzajemnego położenia przynajmniej dwóch obiektów w przestrzeni geograficznej. Relacje przestrzenne dzielimy na metryczne i topologiczne. Jako pierwsi relacje topologiczne zaproponowali Egenhofer i Herring jako rozszerzony o wymiar model dziewięciu przecięć topologinczych DE-9IM [3].
Pierwsze zadanie jakie wykonamy aby zapoznać się z narzędziami selekcji to jedno z podstawowych zapytań do bazy danych. Sprawdzimy, ile w Gdańsku jest budynków jednorodzinnych których powierzchnia jest większa lub równa 100 ㎡? Jak wykonać to zadanie? Po pierwsze musimy dowiedzieć się w jaki sposób przechowywana jest informujący o funkcji budynku. Jak zaglądniemy do rozporządzenia BDOT10k [4] zo znajdziemy atrybut określony jako funkcja ogólna budynku
:
Wybierzmy obiekty których atrybut jest równy budynkiMieszkalneJednorodzinne
. Do wybranych budynków jednorodzinnych musimy dołożyć kolejny warunek minimalnej powierzchni. Zrealizujemy to poprzez zapytanie do bazy o powierzchnię obliczoną na podstawie geometrii obiektów.
GDA
lub uruchomić nowy.Jeżeli wybierzemy już istniejący projekt, można otworzyć nowe okno mapy. To pozwoli na prace bez zawartości w oknie Contents
a jednocześnie mamy dostęp do danych które były używane w projekcie.
Insert
a następnie wybierz New Map
.GDA selekcja
, 2LPM na Map1
i w General
wprowadź nazwę.PL.PZGiK.336.2261__OT_BUBD_A
do projektu.Contents
wskaż warstwę budynków a następnie przejdź w menu głównym do Select By Attributes
.FUNOGBUD
wybierz obiekty reprezentujące budynki jednorodzinne. Następnie zatwierdź przez OK
.Wybranych jest 23 728 - sprawdź w tabeli atrybutowej (wynik może różnić się w zależności od aktualizacji danych).
Na wybranych obiektach wykonamy kolejną selekcje wykorzystując pole area
w którym przechowywana jest powierzchnia obiektów.
Selection Type
na Select subset from the current selection
oraz wprowadź zapytanie Where area is greater than or equal to 100
.Wynikiem jest 11 172 budynków spełniających podane warunki. Do otrzymanego rezultatu można wykorzystać jedno zapytanie do bazy danych łącząc spójnikiem and
.
Clear
w menu głównym - Map
.Select By Attributes
i wprowadź warunki zapytania połączone przez spójnik and
.Wykonajmy teraz kolejne zadanie. Sprawdź ile jest w Gdańsku nieruchomości gruntowych na których położone są budynki typu mieszkalnego i jednocześnie co najmniej jeden garaż. Budynki które zaliczamy do budynków mieszkalnych to obiekty o atrybutach: "budynkiMieszkalneJednorodzinne", "budynkiODwochMieszkaniach", "budynkiOTrzechIWiecejMieszkaniach" lub "budynkiZbiorowegoZamieszkania". Przyjmij że budynek znajduje się na danej działce gdy jego centroida zawiera się w niej.
Dane działek ewidencyjnych można pobrać za pomocą linka: działki ewidencyjne Gdańsk.
Select By Attributes
i wybierz budynki mieszkalne (posiłkuj się tabelą klas).Wynik to 33 589 wybranych budynków. Wynik może różnić się w zależności od aktualizacji danych. Po wykonaniu selekcji, dla czytelności prowadzenia analiz wykonamy konwersje obiektów poligonowych do centroidy obiektu, zgodnie z opisem zadania. Czym jest centroida?
Centroida - punkt wewnątrz wielokąta reprezentującego pewien obiekt; punktowi temu przyporządkowuje się pewne informacje o obiekcie, a jego położenie wewnątrz wielokąta może być określone, np. jako środek ciężkości, lub wybrane przez użytkownika [2].
Geoprocessing
- przejdź do menu głównego i wybierz Analysis/Tools
.Geoprocessing
wyszukaj narzędzia Feature To Point
oraz uruchom klikając LPM na nazwę Feature To Point
.Inside
. Uruchom poprzez Run
, nowa warstwa doda się automatycznie do projektu.Wyszukiwanie budynków które mają przypisaną wartość atrybutu garaż
musi się odbyć w oparciu o atrybut FUNSZCZ
- funkcja szczegółowa. Jednak wyszukiwanie w obrębie tego atrybutu jest bardziej skomplikowane. Na czym polega komplikacja? Jak wyświetlimy atrybut w formie etykiet to dostrzeżemy, że do obiektu może być dopisana więcej niż jedna funkcja.
Jeżeli w zapytaniu do bazy danych podamy FUNSZCZ = 'garaz'
to wyszukamy jedynie te budynki których funkcja szczegółowa to garaż, żadnej inne funkcji nie pełnią. Wpisując to zapytanie dostaniemy 1 371. W przypadku zapytania rozszerzonego, które zaraz wykonamy wynik będzie powiększony o kilka obiektów - 1 375.
We wcześniejszych zapytaniach używaliśmy znak równości =
, czyli obiekty spełniające warunek musiały mieć dokładnie takie wyrażenie do którego przyrównujemy np. 'garaż', czy wczesniej 'budynkiMieszkalneJednorodzinne'. Tym razem chcemy wyszukać te obiekty które zawierają w wartości atrybutu 'garaż' i użyjemy do tego metody LIKE
. Metoda ta wymaga zastosowania dodatkowych operatorów: %
i\lub _
, znak %
oznacza że liczba znaków przed lub po (w zależności od ustawienie przed, po szukanej frazy) szukanej frazie nie ma znaczenia, znak _
zastępuje pojedynczy znak w ciągu wyrazów. W naszym zapytaniu wykorzystamy znak %
przed i po wyrażeniu 'garaż'. Ostatnia uwaga o jakiej należy wspomnieć, atrybut FUNSZCZ
nie przechowują polskich znaków, czyli będziemy wykorzystywać wyrażenie garaz
.
Select By Attributes
- menu główne Map
i wybierz narzędzie.FUNSZCZ LIKE '%garaz%'.
.Po wykonaniu selekcji wygeneruj na podstawie wybranych obiektów centroidy garaży. Wykonaj analogicznie jak w przypadku budynków jednorodzinnych.
Geoprocessing
wyszukaj narzędzia Feature To Point
oraz uruchom klikając LPM na nazwę Feature To Point
.Inside
. Uruchom poprzez Run
, nowa warstwa doda się automatycznie do projektu.Contents
wskaż tę warstwę. Następnie w menu głównym wybierz Select By Location.Select By Location
wprowadź warstwę centroid budynków mieszkalnych jako Selecting Features
. Zatwierdź poprzez \textit{Apply}.Wynik jaki otrzymaliśmy po pierwszym kroku selekcji to 28 579 działek ewidencyjnych spełniających warunek posiadania centroidę budynku mieszkalnego. Wynik może różnić się w zależności od aktualizacji danych. Następnie rozszerzymy warunek o zawieranie centroidy garażu w obrębie wybranych działek.
Select By Location
zamień warstwę centroid budynków mieszkalnych na warstwę centroid garaży, oraz zmień w oknie Selection type
na Select subset from current selection
i zatwierdź OK
.Quantum GIS oferuje podobne metody selekcji danych przestrzennych i nieprzestrzennych. Narzędzia selekcji poprzez lokalizację, czyli narzędzia zbudowane w oparciu o macierz Egenhofera (model dziewięciu przecięć topologinczych DE-9IM) nieco różnią się logiką zapytania przestrzennego. Różnice pomiędzy standardami OGC, narzędziami ArcGIS i QGIS zostały szczegółowo omówione podczas wykładu - "SIP - Relacje w bazie danych przestrzennych".
DzialkiEwidencyjne
i PL.PZGiK.336.2261__OT_OIPR_P
.Podobnie jak wykonywaliśmy selekcję atrybutową w ArcGIS, również tu selekcja obiektów oparta jest na zapytaniach SQL. Wykonajmy zadanie które odpowie nam ile działek ma w swoich granicach przynajmniej jedno drzewo. Posłużymy się warstwą obiekt przyrodniczy
- OT_OIPR
w której znajdują się obiekty z wartością atrybutu RODZAJ = drzewo lub grupa drzew
.
Zaznacz obiekty wyrażeniem.
. .Zaznacz wyrażeniem
, ułóż zapytanie do bazy: RODZAJ = 'drzewo lub grupa drzew'
.W wyniku działania narzędzia wybrane zostało 24~563 obiektów. Następnym krokiem będzie wybór działek w obrębie których znajduje się co najmniej 1 drzewo. Użyjemy selekcji poprzez lokalizację w taki sposób żeby wybrać działki z tych już zaznaczonych - Tylko zaznaczone obiekty
.
Wektor/ Narzędzia badawcze/ Zaznaczenie przez lokalizację.
i skorzystaj z przecięcia przestrzennego - Wybierz obiekty z
- DzialkiEwidencyjne
- przecinają się
- w relacji do obiektów warstwy
- 'OIPR01'.Używane skróty:
[1] wyklady.org Modele danych - bazy danych,
[2] Polskie Towarzystwo Informacji Przestrzennej. Internetowy leksykon geomatyczny, 2006.
[3] Max J Egenhofer, John Herring. Categorizing binary topological relations between regions, lines, and points in geographic databases. 9(94-1):76, 1990.
[4] Rozporządzenie Ministra Rozwoju, Pracy i Technologii z dnia 27 lipca 2021 r., w sprawie bazy danych obiektów topograficznych oraz bazy danych obiektów ogólnogeograficznych, a także standardowych opracowań kartograficznych.
Autor: Adam Inglot, mail: adam.inglot@pg.edu.pl