Przestrzenne bazy danych. Funkcje relacji przestrzennych

Podobne dokumenty
Przestrzenne bazy danych. Funkcje geometryczne

Przestrzenne bazy danych. Analizy przestrzenne

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych

Przestrzenne bazy danych PostGIS

Przestrzenne bazy danych. Wstęp do przestrzennych baz danych

Przestrzenne bazy danych. Typy obiektów przestrzennych

MULTILINESTRING MULTILINESTRING((11 5, 7 4, 3 9), (5 3, 2 7, 6 5)) MULTIPOLYGON MULTIPOLYGON(((0 0, 5 5, 10 0, 0 0)), ((3 2, 5 1, 7 2, 3 2)))

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

Zarządzanie danymi przestrzennymi. Analizy przestrzenne

Dane przestrzenne Ćwiczenia laboratoryjne (6)

Zastosowanie relacyjnych baz danych w Systemach Informacji Geograficznej

Zarządzanie danymi przestrzennymi. Rozwiązywanie problemów przestrzennych

4.2. ELIPSA. 1. W linii statusowej włączamy siatkę i skok, które ułatwią rysowanie:

3 Źródła 13. Mogą to być dane geoprzestrzenne, przestrzenne, dane o terenie, katastralne, itp..

4.2. ELIPSA. 1. W linii statusowej włączamy siatkę i skok, które ułatwią rysowanie:

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

Model relacyjny. Wykład II

Ćwiczenie 2. Opcja przestrzenna bazy danych

Styczeń Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład VIII. dr inż.

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Oracle Spatial Option

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Model relacyjny. Wykład II

GIS. Grzegorz Chilkiewicz

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

3. Standaryzacja modeli danych przestrzennych

Funkcjonalność systemów zarządzania bazami danych przestrzennych w kartografii internetowej (PosrtgreSQL/PostGIS) Krzysztof Kuśnierek

GIS STRUKTURY DANYCH RELACJE PRZESTRZENNE.

ZASTOSOWANIE NARZĘDZI GEOMATYCZNYCH NA PRZYKŁADZIE WYNIKÓW INWENTARYZACJI PRZYRODNICZEJ W LASACH PAŃSTWOWYCH W 2007 ROKU

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

4.3 WITRAś. 1. UŜywając polecenia Linia (_Line) narysować odcinek, podając jako punkt początkowy współrzędną 90,-300 i punkt końcowy 90,55.

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 3

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Charakterystyka przestrzennych typów danych. do tworzenia raportów. Using spatial data types in reports.

7. Analiza danych przestrzennych

1. Prymitywy graficzne

SQL (ang. Structured Query Language)

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

PLANIMETRIA CZYLI GEOMETRIA PŁASZCZYZNY CZ. 1

ALGEBRA z GEOMETRIA, ANALITYCZNA,

Bazy danych. dr inż. Arkadiusz Mirakowski

Baza danych dla potrzeb zgłębiania DMX

Trójwymiarowa grafika komputerowa rzutowanie

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

8. Analiza danych przestrzennych

Wykład 6. SQL praca z tabelami 3

Autor: Joanna Karwowska

CAM - zmiany w wersji 4.4.0

(Akty o charakterze nieustawodawczym) ROZPORZĄDZENIA

Struktura drzewa w MySQL. Michał Tyszczenko

Wykorzystanie mechanizmów obiektowych przykład przetwarzanie danych przestrzennych Krzysztof Jankiewicz.

3 Źródła 14. Mogą to być dane geoprzestrzenne, przestrzenne, dane o terenie, katastralne, itp..

Modelowanie wymiarów

Bazy danych Język SQL część 2 Wykład dla studentów matem

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

GEOMETRIA ELEMENTARNA

Odwrócimy macierz o wymiarach 4x4, znajdującą się po lewej stronie kreski:

Wielowymiarowe bazy danych

Grafika inżynierska geometria wykreślna. 2. Przynależność. Równoległość.

DAO. tworzenie tabeli

1. Zbadać liniową niezależność funkcji x, 1, x, x 2 w przestrzeni liniowej funkcji ciągłych na przedziale [ 1, ).

1 Wstęp do modelu relacyjnego

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Systemy GIS Tworzenie zapytań w bazach danych

1. Wstęp ELŻBIETA BIELECKA

Klasa III technikum Egzamin poprawkowy z matematyki sierpień I. CIĄGI LICZBOWE 1. Pojęcie ciągu liczbowego. b) a n =

Indeksowanie w bazach danych

Relacyjne bazy danych. Podstawy SQL

Bloki anonimowe w PL/SQL

Dziennik Urzędowy Unii Europejskiej L 274/9

Innowacyjne rozwiązania typu open source w aplikacjach typu gis-web. Dominik Tałanda

SQL :: Data Definition Language

Złaczenia tablic: FROM, WHERE, JOIN

Operacja Teta-złączenia. v1 v1 Θ v2

GEOMETRIA PRZESTRZENNA (STEREOMETRIA)

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Wyciągnięcie po linii prostej w ujęciu powierzchniowym w NX firmy Siemens Industry Software

Bazy danych 10. SQL Widoki

STOWARZYSZENIE NA RZECZ EDUKACJI MATEMATYCZNEJ KOMITET GŁÓWNY OLIMPIADY MATEMATYCZNEJ JUNIORÓW SZCZYRK 2017

REGUŁOWA OPTYMALIZACJA ZAPYTAŃ W BAZACH DANYCH PRZESTRZENNYCH

GIS i dane geograficzne w bazach relacyjnych

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

GIS i dane geograficzne w bazach relacyjnych

Projektowanie rozmieszczenia stanowisk roboczych

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Matlab Składnia + podstawy programowania

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

Układy równań i nierówności

Zbiór zadań z geometrii przestrzennej. Michał Kieza

RBD Relacyjne Bazy Danych

Transkrypt:

Przestrzenne bazy danych Funkcje relacji przestrzennych

Rodzaje relacji Analiza przecinania się Analiza różnic (ST_Difference, ST_SymDifference) Analiza najbliższego sąsiedztwa (ST_DWithin) Analiza obwiedni i porównawcza Analiza podobieństwa obiektów Macierze relacji (ST_Relate)

Relacja przestrzenna przecinanie się ST_Intersects, ST_Intersection, ST_Disjoin ST_Conatins(A,B), ST_Within(B,A) ST_Covers ST_Crosses ST_Touches

Przykrywanie ST_Covers ST_Covers różni się od funkcji ST_Contains tym że obiekt B może znajdować się na granicy obiektu A SELECT A.ex_name As a_name, B.ex_name As b_name, ST_Covers(A.the_geom, B.the_geom) As a_co_b, ST_Intersects(A.the_geom, B.the_geom) As a_in_b FROM example_set As A CROSS JOIN example_set As B WHERE NOT (ST_Covers(A.the_geom, B.the_geom) = ST_Contains(A.the_geom, B.the_geom));

Stykanie się obiektów ST_Touches SELECT A.ex_name As a_name, B.ex_name As b_name, ST_Touches(A.the_geom, B.the_geom) As a_tou_b, ST_Contains(A.the_geom, B.the_geom) As a_co_b FROM example_set As A CROSS JOIN example_set As B WHERE ST_Touches(A.the_geom, B.the_geom) ;

Analiza relacji przecinania się WITH example_set(ex_name,the_geom) AS( SELECT ex_name, the_geom FROM ( VALUES ('A 2d line', ST_GeomFromText('LINESTRING(3 5, 2.5 4.25, 1.6 5)') ), ('A point',st_geomfromtext( 'POINT(3 5 )')), ('A triangle',st_geomfromtext('polygon((3 5, 2.5 4.25, 1.9 4.9, 3 5))') ) ) AS foo(ex_name, the_geom) ) SELECT A.ex_name As a_name, B.ex_name As b_name, ST_Covers(A.the_geom, B.the_geom) As cover, ST_Contains(A.the_geom, B.the_geom) As contain, ST_Intersects(A.the_geom, B.the_geom) As inter, ST_Touches(A.the_geom, B.the_geom) As touch FROM example_set As A CROSS JOIN example_set As B;

Łączenie obiektów ST_Union SELECT ST_AsText(ST_Union( ST_GeomFromText( 'MULTIPOLYGON(((-77 56,-52 18,-88-27,-10-13,-11 38,-77 56)))'), ST_GeomFromText( 'MULTIPOLYGON(((-49 63,-32 24,-39-7,-66-19,-72-9,-74 31,-49 63)))')));

Przecinanie się ST_Intersection SELECT ST_AsText(ST_Intersection( ST_GeomFromText( 'MULTIPOLYGON(((-77 56,-52 18,-88-27,-10-13,-11 38,-77 56)))'), ST_GeomFromText( 'MULTIPOLYGON(((-49 63,-32 24,-39-7,-66-19,-72-9,-74 31,-49 63)))')));

Analiza Różnic Funkcja ST_Difference ST_Difference(A,B) = A Intersection(A,B) SELECT ST_Intersects(g1.geom1,g1.geom2) As they_intersect, GeometryType(ST_Difference(g1.geom1, g1.geom2)) As intersect_geom_type FROM (SELECT ST_GeomFromText('POLYGON((2 4.5,3 2.6,3 1.8,2 0,-1.5 2.2,0.056 3.222,-1.5 4.2,2 6.5,2 4.5))') As geom1, ST_GeomFromText('LINESTRING(-0.62 5.84,-0.8 0.59)') As geom2) AS g1;

Funkcja ST_Difference ST_Difference(obiektA, obiektb) SELECT ST_Intersects(g1.geom1,g1.geom2) As they_intersect, GeometryType(ST_Difference(g1.geom2, g1.geom1)) As intersect_geom_type FROM (SELECT ST_GeomFromText('POLYGON((2 4.5,3 2.6,3 1.8,2 0,-1.5 2.2,0.056 3.222,-1.5 4.2,2 6.5,2 4.5))') As geom1, ST_GeomFromText('LINESTRING(-0.62 5.84,-0.8 0.59)') As geom2) AS g1;

Funkcja ST_Difference (dwa poligony) SELECT ST_AsText(ST_Difference( ST_GeomFromText( 'MULTIPOLYGON(((-77 56,-52 18,-88-27,-10-13,-11 38,-77 56)))'), ST_GeomFromText( 'MULTIPOLYGON(((-49 63,-32 24,-39-7,-66-19,-72-9,-74 31,-49 63)))')))

Różnica symetryczna Funkcja ST_SymDifference ST_SymDifference(A,B) = Union(A,B) Intersection(A,B) SELECT ST_Intersects(g1.geom1,g1.geom2) As they_intersect, GeometryType(ST_SymDifference(g1.geom1, g1.geom2)) As intersect_geom_type FROM (SELECT ST_GeomFromText('POLYGON((2 4.5,3 2.6,3 1.8,2 0,-1.5 2.2,0.056 3.222,-1.5 4.2,2 6.5,2 4.5))') As geom1, ST_GeomFromText('LINESTRING(-0.62 5.84,-0.8 0.59)') As geom2) AS g1;

Różnica symetryczna Funkcja ST_SymDifference SELECT ST_AsText(ST_SymDifference( ST_GeomFromText( 'MULTIPOLYGON(((-77 56,-52 18,-88-27,-10-13,-11 38,-77 56)))'), ST_GeomFromText( 'MULTIPOLYGON(((-49 63,-32 24,-39-7,-66-19,-72-9,-74 31,-49 63)))')));

Najbliższe sąsiedztwo Relację najbliższego sąsiedztwa realizuje funkcja ST_DWithin Funkcja ST_DWithin zastępuje funkcję ST_Intersects wtedy gdy obiekty są blisko siebie ale nie przecinają się SELECT ST_DWithin( ST_GeomFromText('LINESTRING(1 2, 3 4)'), ST_Point(3.00001,4.000001), 0.0001 ) ;

Wyszukiwanie N najbliższych obiektów

Obwiednia (bounding box) Każdy obiekt geometryczny posiada swoją obwiednię w postaci prostokąta w całości przykrywającego obiekt Przestrzenne bazy danych wykorzystują obwiednię obiektów geometrycznych do porównywania obiektów SELECT ex_name, ST_Box2D(the_geom) As bbox2d, the_geom FROM ( VALUES ('A line', ST_GeomFromEWKT('LINESTRING (3 5, 3.4 4.5, 4 5)')), ('A multipoint',st_geomfromtext('multipoint (4.4 4.75, 5 5)')), ('A triangle', ST_GeomFromText('POLYGON ((2 5, 1.5 4.5, 2.5 4.5, 2 5))') ) ) AS foo(ex_name, the_geom);

Obwiednia i operatory geometrii Operator Co sprawdza BOX(A) operator BOX(B) index && &< &> Zwraca TRUE jeżeli obwiednie obiektów A i B przecinają się Zwraca TRUE jeżeli obwiednia obiektu A przykrywa lub jest na lewo obwiedni obiektu B Zwraca TRUE jeżeli obwiednia obiektu A przykrywa lub jest na prawo obwiedni obiektu B = Zwraca TRUE jeżeli obwiednia obiektu A jest taka sama jak obwiednia obiektu B @ Zwraca TRUE jeżeli obwiednia obiektu A jest zawarta w obwiedni obiektu B ~- Zwraca TRUE jeżeli obwiednia obiektu A jest zawiera obwiednię obiektu B >> Zwraca TRUE jeżeli obwiednia obiektu A jest dokładnie na prawo obwiedni obiektu B << Zwraca TRUE jeżeli obwiednia obiektu A jest dokładnie na lewo obwiedni obiektu B gist gist gist btree gist gist gist gist

Obwiednia i operatory geometrii SELECT ST_GeomFromText( 'MULTIPOLYGON(((-77 56,-52 18,-88-27,-10-13,-11 38,-77 56)))') && ST_GeomFromText( 'MULTIPOLYGON(((-49 63,-32 24,-39-7,-66-19,-72-9,-74 31,-49 63)))') As Compare;

Podobieństwo obiektów Podobieństwo przestrzenne (obiekty zajmują tą samą przestrzeń ale mogą różnić się kolejnością punktów) ST_Equals Podobieństwo geometryczne (ta sama przestrzeń ta sama kolejność punktów) ST_Ordering_Equals Podobieństwo obwiedni obiekty mają te same zawierające się w sobie obwiednie (=)

Podobieństwo geometryczne ST_OrderingEquals i przestrzenne ST_Equals

Podobieństwo geometryczne ST_OrderingEquals i przestrzenne ST_Equals Wszystkie obiekty są podobne do siebie geometrycznie Poligon samo-przecinający się jest podobny do siebie geometrycznie ale nie przestrzennie, pozostałe obiekty są do siebie podobne przestrzennie Do swojej wersji po odwróceniu kolejności punktów podobny geometrycznie jest jedynie punkt Żaden z obiektów nie jest podobny geometrycznie do swojej wersji wielopunktowej

Podobieństwo obwiedni Podobieństwo obwiedni (=) Podobieństwo geometrii ST_OrderingEquals Obiekty mają takie same obwiednie ale różnią się pod względem geometrii

Macierze przecinania się obiektów geometrycznych Macierz przecinania się jest oparta na standardzie DE-9IM (Dimensionally Extended 9 Intersection matrix) zgodnym z OpenGIS OGC/SQL-MM Macierz przecinania się to macierz 3x3 między polami wnętrze(interior), granica(boundary) i obszar zewnętrzny (Exterior) dla dwóch obiektów A i B Możliwe wartości w macierzy to: T przecinanie musi zaistnieć F przecinanie nie może zaistnieć * - nie ma znaczenia czy przecinanie zaistnieje 0 przecinanie musi zaistnieć w wymiarach dla punktu (dim=0) 1 - przecinanie musi zaistnieć w wymiarach dla linii (dim=1) 2- przecinanie musi zaistnieć w wymiarach dla poligonu (dim=2)

Podobieństwo przestrzenne Spatial equality ST_Equals Podobieństwo przestrzenne w macierzy przecinania się dla obiektów A i B występuje wtedy gdy obiekty geometryczne zbudowane z różnych punktów lub punktów w odwróconej kolejności zajmują tę samą przestrzeń (T*F**FFF*)

Testowanie ST_Equals

Testowanie ST_Equals Wszystkie obiekty z wyjątkiem poligonu samo-przecinającego się spełniają warunki macierzy podobieństwa (T*F**FFF*) w stosunku do swoich odwrotności

Macierz przecinania z ST_Relate Metody zastosowania ST_Relate Pobiera dwa obiekty geometryczne i zwraca macierz relacji np. ST_Relate(A.geom, B.geom) Pobiera dwa obiekty geometryczne i macierz relacji i zwraca prawdę lub fałsz, w zależności czy obiekty spełniają ograniczenia określone przez macierz np. ST_Relate(A.geom, B.geom, FF*FF****)

Macierz przecinania z ST_Relate

Macierz przecinania z ST_Relate

Macierz przecinania z ST_Relate Wnętrza trójkąta i linii nie przecinają się Wnętrze trójkąta nie przecina się z granicą linii (granice linii to punkty początkowy i końcowy) ale wnętrze linii przecina się z granicą trójkąta i wymiarem tego jest linia Tylko w przecięciu obszarów zewnętrznych linii i wewnętrznych i zewnętrznych trójkąta uzyskujemy przecięcie powierzchniowe (dim=2)

ST_Relate http://workshops.boundlessgeo.com/postgis-intro/de9im.html

ST_Relate 1 0 1 0 F 0 2 1 2