Przestrzenne bazy danych Wstęp do przestrzennych baz danych
Zakres wykładów Definicja i cechy przestrzennych baz danych Typy przestrzenne Funkcje przestrzenne Modelowanie danych Metody rozwiązywania problemów przestrzennych Zastosowanie przestrzennych baz danych w aplikacjach sieciowych i w skryptach Python i R
Literatura Corti P., Kraft T.J., Mather S.V., Park B., 2014. PostGIS Cookbook. Packt Publishing Obe R., Hsu L., 2012. PostgreSQL: Up and Running. O'Reilly Obe R., Hsu L., 2015. PostGIS in Action 2nd, Manning Publications Marquez A. 2015. PostGIS Essentials, Packt Publishing Tutoriale: http://postgis.refractions.net/documentation/ http://www.bostongis.com http://workshops.boundlessgeo.com/postgis-intro/
Podstawowe funkcje SIG 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 Open Geospatial Consortium (OGC): 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-tekstowych 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
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 Obiekty topologiczne
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łasne 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 w poprzednim polu SRTTEXT reprezentacja WKT układu odniesienia PROJ4TEXT definicja układu współrzędnych zgodna z biblioteką Proj4