Przestrzenne bazy danych Definicja i cechy przestrzennej bazy danych Zakres wykładów Definicja i cechy przestrzennych baz danych Typy geometryczne Funkcje geometryczne Modelowanie danych Metody rozwiązywania problemów przestrzennych Zastosowanie przestrzennych baz danych w aplikacjach sieciowych Literatura Obe R., Hsu L., 2012. PostgreSQL: Up and Running. O'Reilly Obe R., Hsu L., 2011, 2015. PostGIS in Action , Manning Publications Marquez A. 2015. PostGIS Essentials, Packt Publishing Stones R., Mattew N. 2002. Bazy danych i PostgreSQL. Od podstaw, Helion Tutoriale: http://postgis.refractions.net/documentation/ http://www.bostongis.com http://workshops.boundlessgeo.com/postgis-intro/ Podstawowe funkcje systemów GIS Wprowadzanie danych Generalizacja danych Przechowywanie danych Zarządzanie danymi Analizy i prezentacje danych Przykładowe funkcje analiz przestrzennych Graficzna klasyfikacja danych – wizualizacja obiektów na podstawie atrybutów opisowych (np. różne grubości i barwy linii dróg w zależności od atrybutów) Buforowanie – Wyznaczanie strefy wokół obiektów za pomocą promienna podanego przez użytkownika Analizy sieciowe – Sieć połączonych obiektów może posłużyć do analiz i symulacji rozpływu określonego medium (np. szacowanie ruchu samochodowego, wyznaczanie najkrótszej i najszybszej drogi dojazdu) Przykładowe funkcje analiz przestrzennych Obliczanie powierzchni i długości Wizualizacja – Prezentacja danych GIS może przybierać postać interaktywnej mapy lub tabeli z atrybutami opisowymi, może też polegać na drukowaniu map, tabel, wykresów Geokodowanie – Funkcja pozwalająca na automatyczne umieszczanie na mapie dowolnych obiektów na podstawie ich adresów w specjalnej warstwie adresowej bez stosowania współrzędnych geograficznych Mapa cyfrowa Mapa cyfrowa przechowuje umiejscowienie i kształt geometryczny obiektów geograficznych wraz informacjami opisującymi te obiekty Cechy mapy cyfrowej Każdy element na mapie cyfrowej w systemie GIS posiada swój opis w bazie danych Obiekty są zapisane w odpowiednim układzie współrzędnych, wizualizowane z zastosowaniem odpowiedniej projekcji Dane w systemie GIS są przechowywane w maksymalnie elastyczny sposób, aby ich zarządzanie i analiza były jak najbardziej efektywne Elementy mapy cyfrowej • Warstwa – obejmuje obiekty posiadające pewną cechę wspólną (niektóre systemy GIS pozwalają na tworzenie warstw obiektów tylko jednego typu: warstwa punktowa, liniowa, obszarowa – Do każdej warstwy dołączona jest jedna tabela atrybutów z określonymi polami wspólnymi dla każdego obiektu – Atrybuty wyświetlania takie jak kolor, grubość linii, rodzaj wypełnienia ustalone są dla całej warstwy • Obiekt – Składnik warstwy, najmniejszy samodzielny element, jaki można wyróżnić na mapie – Reprezentacja graficzna obiektu jest łączona z informacją opisową przechowywaną w bazie danych i może to być liczba, text, zdjęcie, dźwięk, animacja – Każdy obiekt składa się z co najmniej jednego punktu o zadanych współrzędnych • Atrybuty opisowe – Podstawowa cecha systemów GIS to możliwość opisania każdego obiektu – Każdy obiekt może być opisany dowolną ilością informacji dowolnego typu – W celu wymiany informacji pomiędzy systemami GIS istnieją narzędzia do konwersji map: formaty shapefile, DGN, MIF. Modele danych przestrzennych Pliki lub zbiory plików często o hierarchicznej strukturze Bazy danych: – Relacyjne bazy danych • Zestaw kolumn i wierszy tworzących tabele, które mogą być ze sobą powiązane za pomocą wspólnego atrybutu (klucza). – Obiektowe bazy danych • Klasy obiektów, które posiadają atrybuty • Obiekty wyposażone w swoje zachowania czyli „metody” • Cechy i metody jednych obiektów mogą być dziedziczone przez inne obiekty – Obiektowo-relacyjna baza danych • przechowuje zmienne obiektowe w relacyjnej kolumnie tabeli tak jak podstawowe typy danych • pozwala tworzyć własne typy danych, nowe funkcje i operatory które funkcjonują jak typy podstawowe Przestrzenna baza danych Przestrzenna baza danych to baza danych, która pozwala definiować specjalne typy danych dla obiektów geometrycznych i przechowywać dane geometryczne w normalnej bazie danych dostarcza specjalne funkcje i indeksy pozwalające analizować dane przestrzenne w języku SQL jest narzędziem analitycznym Ewolucja aplikacji GIS Źródło: http://workshops.boundlessgeo.com/postgis-intro/introduction.html Modele przechowywania geodanych w bazach danych Pojedyncza baza przechowująca zarówno dane geometryczne, jak i opisowe; Dwie bazy danych: jedna na dane geometryczne, druga na dane opisowe; Jedna baza na dane geometryczne połączona z wieloma bazami przechowującymi dane opisowe Do przechowywania geodanych w bazach danych wykorzystywane są rozszerzenia przestrzenne stworzone przez producentów baz danych w celu rozszerzenia standardowej bazy danych o możliwość przechowywanie danych przestrzennych Oracle Spatial PostGIS/PostgreSQL SpatiaLite/SQLite Spatial SQL Server Zalety przestrzennej bazy danych Przechowywanie danych w plikach np. shapefile wymaga specjalnego oprogramowania GIS do odczytu i zapisu - SQL daje możliwość jednolitego dostępu do danych i ich analizy Przestrzenne bazy danych umożliwiają pracę równoległą na tych samych danych Skomplikowane analizy przestrzenne mogą być definiowane za pomocą pojedynczych zapytań SQL zastępujących skomplikowane moduły aplikacji GIS Geometryczne typy danych Przestrzenna baza danych taka jak PostGIS stosuje obiekty typu „Simple Features” zgodne z OpenGIS Consortium: POINT MULTIPOINT LINESTRING MULTILINESTRING POLYGON MULTIPOLYGON GEOMETRYCOLLECTION CURVE MULICURVE Źródło: http://workshops.boundlessgeo.com/postgis-intro/introduction.html Analiza przestrzenna • Zapytanie przestrzenne jest zapytaniem do bazy danych stosującym funkcje geometryczne aby odpowiedzieć na pytania dotyczące przestrzeni i obiektów w przestrzeni; • Rozszerzenia przestrzenne baz danych takie jak PostGIS dodają do standardowego języka SQL funkcje współpracujące z obiektami geometrycznymi jak ze zwykłymi danymi Indeksy PostgreSQL • Indeksy B-Tree – Używane dla danych liczbowo-tektowych • Indeksy R-Tree – Dzielą dane przestrzenne na siatki prostokątów, każdy z prostokątów jest dzielony na kolejne prostokąty • Indeksy GiST( Generalized Search Trees) – Stosowane w PostGIS – Dzielą dane na obiekty pozostające w relacjach z innymi obiektami Działanie indeksów przestrzennych Źródło: http://workshops.boundlessgeo.com/postgis-intro/introduction.html Prostokąt obwiedni obiektu (bounding box) najmniejszy możliwy prostokąt równoległy do osi układu współrzędnych zawierający wpisany obiekt Indeksy przestrzenne sprawdzają czy zachodzi relacja pomiędzy prostokątami obwiedni analizowanych obiektów Tworzenie obiektów geometrycznych w PostGIS (punkty) Tworzenie punktów: SELECT ST_Point(1, 2) As MyFirstPoint; Tworzenie punktu względem współrzędnych geograficznych ( obiekt zapisany w postaci biarnej): SELECT ST_SetSRID(ST_Point(-77.036548, 38.895108),4326); Tworzenie punktu względem współrzędnych geograficznych ( obiekt zapisany w postaci reprezentacji tekstowej WKT – Well Known Text) SELECT ST_GeomFromText('POINT(-77.036548 38.895108)', 4326); Wynik zapytania: st_geomfromtext 0101000020E6100000FD2E6CCD564253C0A93121E692724340 Tworzenie obiektów geometrycznych w PostGIS (linie i poligony) Utworzenie linii: SELECT ST_GeomFromText( 'LINESTRING(-14 21,0 0,35 26)') AS MyCheckMark; Utworzenie poligonu w kształcie trójkąta: SELECT ST_GeomFromText( 'POLYGON((0 1,1 -1,-1 -1,0 1))') As MyTriangle; Tworzenie danych przestrzennych w tabelach • • Utworzenie tabeli: – CREATE TABLE linie( ID integer, NAME varchar(25), geom geometry(LINESTRING) ); – CREATE TABLE poligony( ID int4, NAME varchar(25), geom geometry (POLYGON) ); Wstawienie danych geometrycznych: – INSERT INTO linie (ID, NAME, GEOM) VALUES (1, ‘opis’, GeomFromText(‘LINESTRING(2 3, 4 5, 6 5, 7 8)’)); – INSERT INTO poligon (ID, NAME, GEOM) VALUES (1, 'pole1', GeomFromText('POLYGON((52 218, 139 82, 262 207, 245 261, 207 267, 153 207, 125 235, 90 270, 55 244, 51 219, 52 218))')); Tworzenie danych przestrzennych Wizualizacja w QGIS Tworzenie danych przestrzennych Pobranie danych z pliku csv Utworzenie kolumny do przechowywania geometrii Utworzenie geometrii na podstawie współrzędnych Tworzenie danych przestrzennych c.d. Zapytania przestrzenne Typy obiektów przestrzennych Obiekty geometryczne Obiekty geograficzne Obiekty rastrowe Typ geometryczny i geograficzny GEOMETRY_COLUMNS – opis danych typu geometry pozwalającego przechowywać dane w postaci współrzędnych płaskich GEOGRAPHY_COLUMNS – opis danych typu geography pozwalającego przechowywać dane w postaci współrzędnych geograficznych i wykonywać obliczenia na sferze – wyniki otrzymamy w metrach SELECT ST_Distance('POINT(16.9 52.399)'::geography, 'POINT(-74.5 40.7)':: geography); --6650462.04710672 wynik w metrach SELECT ST_Distance('POINT(16.9 52.399)'::geometry, 'POINT(-74.5 40.7)':: geometry); -- 92.145681401789wynik w stopniach Widok GEOMETRY COLUMNS F_TABLE_CATALOG, F_TABLE_SCHEMA, F_TABLE_NAME – lokalizacja danych F_GEOMETRY_COLUMN – nazwa kolumny z geometrią w tabeli przestrzennej COORD_DIAMENSION – wymiary przestrzennych danych ( 2-D, 3-D, 4-D) SRID – układ odniesienia TYPE – typ danych (zgodne z OGC Simple Feature) Kolumna COORD_DIAMENSION COORD_DIAMENSION – wymiary układu współrzędnych (ilość osi układu współrzędnych) – 2 X-Y – 3 X-Y-Z, X-Y-M – 4 X-Y-Z-M Wymiary obiektów geometrycznych - każdy typ geometryczny posiada własn wymiary: point, multipoint (0D) linestring, multistring (1D) polygon, multipolygon (2D) bryły: sześciany, kule, obiekty amorficzne (3D) wspierany w PostGIS 2+ Kolumna SRID SRID (Spatial Reference Identifier) – dane pobrane z katalogu wszystkich układów odniesienia dostępnych w bazie danych SPATIAL_REF_SYS Domyślny SRID w PostGIS 2.0 to 0 – reprezentuje nieoznaczony układ odniesień (wersjach Postgis1.* to -1) Tabela SPATIAL_REF_SYS SRID – identyfikator układu odniesienia AUTH_NAME – nazwa standardu do opisu układu odniesienia np. EPSG (European Petroleum Survey Group) AUTH_SRID – identyfikator układu odniesienia wg standardu określonego poprzednim polu SRTTEXT – reprezentacja WKT układu odniesienia PROJ4TEXT – definicja układu współrzędnych zgodna z biblioteką Proj4