Przestrzenne bazy danych Definicja i cechy przestrzennych baz danych
Zakres wykładów Wstęp do 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. PostGIS in Action, Manning Publications 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 Obiektowe bazy danych Zestaw kolumn i wierszy tworzących tabele, które mogą być ze sobą powiązane za pomocą wspólnego atrybutu (klucza). 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 Ź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
Struktura danych przestrzennych w PostGIS SPATIAL_REF_SYS tabela zawierająca definicje używanych systemów odniesień przestrzennych GEOMETRY_COLUMNS widok (od wersji 2.0) zawierający opis struktury danych dla określonej warstwy. Same dane przechowywane są w kolumnach typu geometrycznego
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 Utworzenie tabeli: CREATE TABLE TEST( ID int4, NAME varchar(25)); CREATE TABLE POLIGON( ID int4, NAME varchar(25)); Dodanie kolumny do przechowywania geometrii SELECT AddGeometryColumn( public, test, geom,0, LINESTRING, 2); SELECT AddGeometryColumn( public, poligon, geom,0, POLYGON, 2); Wstawienie danych geometrycznych: INSERT INTO test (ID, NAME, GEOM) VALUES (1, opis, GeomFromText( LINESTRING(2 3, 4 5, 6 5, 7 8),-1)); 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))',-1));
Funkcja AddGeometryColumn() AddGeometryColumn(<baza_danych>, <tabela>, <kolumna>, <układ współrzędnych>, <typ obiektu>, <wymiar>) <układ współrzędnych> identyfikator układu odniesienia SRID z tabeli SPATIAL_REF_SYS <typ obiektu> - np. LINESTRING, POLYGON <wymiar> obiekt 2- lub 3-wymiarowy
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
Zapytania przestrzenne