Plan wykładu Spis treści 1 Dane przestrzenne 1 1.1 Zastosowanie danych przestrzennych..................... 1 1.2 Model danych przestrzennych......................... 2 1.3 Układy odniesień................................ 4 1.4 Źródła danych przestrzennych......................... 5 2 Bazy danych przestrzennych 6 2.1 Typy....................................... 7 2.2 Model zapytań................................. 7 2.3 Indeksowanie przestrzenne........................... 8 2.4 Związki przestrzenne.............................. 8 2.5 Obiekty trójwymiarowe............................. 10 2.6 Przykład..................................... 11 3 Źródła 13 1 Dane przestrzenne Dane przestrzenne Dane przestrzenne dane dotyczące obiektów przestrzennych powiązanych z powierzchnią Ziemi i połączonych ze sobą różnorodnymi związkami; obiekty te mają charakter naturalny lub antropogeniczny Mogą to być dane geoprzestrzenne, przestrzenne, dane o terenie, katastralne, itp.. 1.1 Zastosowanie danych przestrzennych Zastosowania GIS GIS - Geographic Information System CAD - Computer Aided Design CAM - Computer Aided Manufacturing GIS Systemy Informacji Geograficznych - komputerowy system wspomagania, tworzenia, przechowywania i analizowania map cyfrowych. Prezentacja w bazie danych składa się z części graficznej (obraz) i z części tabelarycznej (atrybuty poszczególnych elementów tego obrazu). Zastosowanie w: urzędach administracyjnych administracji budynków ratownictwie 1
CAD wojsku kartografii i geodezji ochronie środowiska leśnictwie i rolnictwie nieruchomościach marketingu handlu architekturze turystyce organizacjach międzynarodowych transporcie przemyśle CAD Komputerowe wspomaganie projektowania (ang. Computer Aided Design) - projektowanie wspomagane komputerowo, czyli zastosowanie sprzętu i oprogramowania komputerowego w projektowaniu technicznym. Metodologia CAD znajduje zastosowanie między innymi w inżynierii mechanicznej, elektrycznej, budowlanej. CAM CAM Komputerowe wspomaganie wytwarzania (ang. Computer Aided Manufacturing) - system komputerowy, który ma za zadanie integrację fazy projektowania i wytwarzania. 1.2 Model danych przestrzennych Model danych przestrzennych Model danych przestrzennych określa sposób reprezentacji obiektów świata rzeczywistego w aspekcie ich położenia przestrzennego, kształtu oraz istniejących między nimi relacji przestrzennych Hierarchia typów geometrycznych 2
Przykłady geometrii I Przykłady geometrii II 3
Warstwa przestrzenna Warstwa Warstwa jest zbiorem geometrii mających ten sam zbiór atrybutów. Przykładowo warstwą może być mapa krajów, województw, miast, sieci rzek, szlaków, kanałów, obszarów zalesionych, obszarów o danej gęstości zaludnienia, obszarów rolnych, sieci firmowych sklepów. 1.3 Układy odniesień Układy odniesień Układ współrzędnych przydziela współrzędne obiektom i ustanowia związki pomiędzy zbiorami takich współrzędnych. Jeśli współrzędne opisują kulę ziemską, to układ jest georeferencyjny (współrzędne nie związane z kulą ziemską - układ niegeoreferencyjny) i posiada domyślną jednostkę miary, taką jak metry, każdy wynik można przekonwertować na inne jednostki, takie jak mile. Układy odniesień: układ geograficzny, układ kartezjański, układ WGS-84, 4
układ lokalny. 1.4 Źródła danych przestrzennych Źródła danych przestrzennych zdjęcia satelitarne zdjęcia lotnicze zdjęcia naziemne odbiorniki GPS pomiary geodezyjne i stacje pomiarowe prace, obserwacje, pomiary i wywiady terenowe mapy i plany roczniki statystyczne, rejestry, inwentarze, dzienniki pomiarowe państwowe i instytutowe zasoby danych internetowe bazy danych Dokładność danych przestrzennych Dokładność w bazie danych to liczba błędów danych geometrycznych i opisowych. Zależy od techniki pozyskiwania danych, oraz od danego źródła. Można używać jednocześnie wielu warstw danych o różnych dokładnościach (osiąganie jednakowej dokładności jest nieekonomiczne). Precyzja danych przestrzennych Precyzja to poziom szczegółowości pomiarów lub atrybutów opisowych. Dane nieprecyzyjne zawierają zbyt mało szczegółów (na przykład zbyt mała liczba cyfr po przecinku lub krótkie atrybuty opisowe). Przyczyny Przyczyny błędnych i nieprecyzyjnych danych przestrzennych: błędy pomiarów terenu, błędy przy wprowadzaniu danych do komputera, nieaktualne dane źródłowe, niepełny dostęp do danych, zła skala map i planów, pośrednie związanie danych z tematem, konwersja lub format zapisu danych, próba obniżenia kosztów pozyskiwania i wprowadzania dużej liczby danych. 5
2 Bazy danych przestrzennych Bazy danych przestrzennych Bazy danych przestrzennych przechowują dane przestrzenne, zarówno ich geometrię, jak i atrybuty opisowe. Dzięki zoptymalizowanym zapytaniom i systemom transakcyjnym, umożliwiają szybki dostęp, z którego może korzystać jednocześnie wielu użytkowników. Ustalają optymalną strukturę danych, a także ułatwiają połączenia z dodatkowymi zbiorami atrybutów opisowych. Wykorzystują relacyjny model danych obiektowy model danych Rozszerzenia Oracle Oracle Locator (w każdej edycji) - udostępnia funkcje i mapowanie niezbędne do wielu aplikacji biznesowych włączanych lokalnie Oracle Spatial Data Option (w Oracle Database 11g Enterprise Edition) - pozwala na obsługę plików 3D i usług sieciowych w celu zarządzania wszystkimi danymi geoprzestrzennymi, w tym danymi wektorowymi i rastrowymi, topologią i modelami sieci Oracle Spatial Spatial składa się z następujących części: schemat (MDSYS) określający przechowywanie, składnię i znaczenie obsługiwanych typów danych geometrycznych; mechanizm przestrzennego indeksowania; operatory, funkcje i procedury do przeprowadzania zapytań na danych obszarach, przestrzennego łączenia zapytań i innych przestrzennych operacji analitycznych; funkcje i procedury dotyczące użyteczności i operacje dostrajania; topologiczny model danych do pracy z danymi związanymi z węzłami, krawędziami i powierzchniami w topologii; sieciowy model danych do reprezentowania charakterów lub obiektów, które są wymodelowane jako węzły i połączenia w sieci; GeoRaster - funkcji pozwalającej na przechowywanie, indeksowanie, analizę i doręczanie funkcji GeoRaster danych, czyli obrazów rastrowych, danych gridowych oraz powiązanych z nimi metadanych. Model obiektowo-relacyjny w Oracle Spatial Do przedstawienia geometrii Spatial wykorzystuje model obiektowo-relacyjny. Przechowuje całą geometrię poprzez dane wektorowe SDO GEOMETRY. Tabela może zawierać jedną lub więcej kolumn SDO GEOMETRY. Obiektowo-relacyjny model odpowiada określeniu SQL z typami geometrycznymi, czyli implementacji tabel w specyfikacji Open GIS ODBC/SQL dla cech geoprzestrzennych. 6
Korzyści Korzyści płynące z wykorzystania modelu obiektowo-relacyjnego obejmują: wsparcie dla wielu typów geometrii, w tym: łuki, okręgi, powiązane wielokąty i ciągi liniowe oraz zoptymalizowane prostokąty; łatwość użycia w tworzeniu i utrzymywaniu indeksów oraz w wykonywaniu przestrzennych zapytań; utrzymywanie indeksu przez bazę danych Oracle; modelowanie geometrii w pojedynczej kolumnie; optymalne wykonawstwo; wydajna manipulacja, przywracanie i powiązanie danych przestrzennych z innymi danymi przechowywanymi w bazie danych. 2.1 Typy Obsługiwane typy Spatial obsługuje następujace typy przestrzenne: punkty i klastry punktów, ciągi liniowe, n-punktowe wielokąty, łukowe ciągi liniowe, wielokąty łukowe, wielokąty złożone, złożone ciągi liniowe, okręgi, zoptymalizowane prostokąty, obiekty trójwymiarowe oraz czterowymiarowe 2.2 Model zapytań Model zapytań Spatial korzysta z dwuwarstwowego modelu zapytań do wyciagania informacji i tworzenia przestrzennych połączeń. Dopiero działanie dwóch połączonych operacji daje dokładny zestaw wyników: Filtr pierwotny zezwala na szybką selekcję rekordów kandydujących do przejścia przez filtr wtórny. Filtr wtórny stosuje dokładne obliczenia do geometrii, które pochodzą z filtra pierwotnego. 7
Tolerancja Tolerancja umożliwia bazie danych współpracę z poziomem precyzji. Polega ona na odzwierciedleniu odległości dwóch (być może) odrębnych punktów, wciąż rozpatrywanych jako ten sam punkt. Wartość tolerancji jest liczbą dodatnią i większą od zera, zależną od układu współrzędnych. Dla geodezyjnych danych (takich jak długość i szerokość geograficzna) wartość tolerancji jest liczbą wyrażoną w metrach. Dla danych geodezyjnych wartość ta nie powinna być mniejsza niż 0.05 (czyli 5 centymetrów). Dla niegeodezyjnych danych wartość tolerancji jest podana w jednostkach związanych z układem współrzędnych określonych danych. 2.3 Indeksowanie przestrzenne Indeksowanie przestrzenne Indeksowanie przestrzenne umożliwia szybsze wykonywanie zapytań w języku SQL, jest oparte na przestrzennych kryteriach takich jak przecięcia i domknięcia. Indeksowanie przestrzenne jest wymagane przy: wyszukiwaniu obiektów pochodzących z wnętrza przestrzeni indeksowanych danych, które oddziałują z danym punktem interesującego obszaru (okno zapytań), wyszukiwaniu par obiektów pochodzących z wnętrza dwóch przestrzeni indeksowanych danych, które oddziałują przestrzennie z każdymi innymi (połączenie przestrzenne). Najczęściej stosowaną metodą indeksowania przestrzennego jest R-drzewo. R-drzewo Indeksowanie R-drzewa przybliża każdą geometrię jako pojedynczy prostokąt minimalizujący ograniczenia geometrii (zwany minimalnie ograniczającym prostokątem, lub Minimum Bounding Rectangle w skrócie MBR). 2.4 Związki przestrzenne Związki przestrzenne By ustalić związki przestrzenne, Spatial posiada kilka metod filtra wtórnego: operator SDO RELATE określający kryteria topologiczne, 8
operator SDO WITHIN DISTANCE zawieranie się w danej odległości od obiektu, operator SDO NN ustalający najbliższych sąsiadów danego obiektu przestrzennego. SDO RELATE SDO RELATE model 9-elementowych przecięć dla sklasyfikowania binarnych związków topologicznych pomiędzy punktami, prostymi i wielokątami Każdy obiekt przestrzenny ma wnętrze, granicę oraz wierzch. Granica ciągu liniowego składa się z jego punktu końcowego. Jednakże, jeśli punkty końcowe nachodzą na siebie (czyli wtedy, gdy są tym samym punktem), to ciąg linii nie ma granicy. Granica wielokąta jest prostą, która kreśli jego obwód. Wnętrze składa się z punktów, które znajdują się w obiekcie, lecz nie na jego granicy. Wierzch składa się z tych punktów, które nie zawierają się w obiekcie. SDO RELATE SDO RELATE DISJOINT: granice i wnętrza nie przecinają się; TOUCH: granice przecinają się, lecz wnętrza już nie; OVERLAPBYDISJOINT: wnętrze pierwszego z obiektów przecina granicę i wnętrze drugiego obiektu, lecz obydwie granice już się nie krzyżują; ten związek zdarza się, na przykład wtedy, gdy prosta rozpoczyna się na wierzchu wielokąta i kończy w jego wnętrzu; OVERLAPBYINTERSECT: granice i wnętrza dwóch obiektów przecinają się; EQUAL: dwa obiekty mają te same granice i wnętrza; CONTAINTS: wnętrze i granica jednego z obiektów zawiera się całkowicie we wnętrzu drugiego obiektu; INSIDE: odwrotność CONTAINS; A INSIDE B implikuje B CONTAINS A; 9
COVERS: wnętrze jednego z obiektów zawiera się całkowicie we wnętrzu lub granicy drugiego obiektu i ich granice się przecinają; COVEREDBY: odwrotność COVERS; A COVEREDBY B implikuje B COVERS A; ON: wnętrze i granica obiektu znajduje się na granicy innego obiektu i drugi obiekt obejmuje ten pierwszy; ten związek zdarza się w przypadku, gdy prosta znajduje się na granicy wielokąta; ANTYINTERACT: obiekty są niezależne. SDO WITHIN DISTANCE 2.5 Obiekty trójwymiarowe Obiekty trójwymiarowe Elementy wykorzystywane przy opisie trójwymiarowej rzeczywistości: Punkt Prosta 10
Wielokąt Płaszczyzna Zbiór Chmura punktów Multi prosta Multi powierzchnia Bryła Multi bryła Związki przestrzenne SDO ANYINTERACT, SDO FILTER, SDO INSIDE (tylko dla geometrii brył), SDO NN, SDO WITHIN DISTANCE. 2.6 Przykład Definicja tabel CREATE TABLE jura_rez_park ( id_jury NUMBER PRIMARY KEY, nazwa VARCHAR2(20) NOT NULL, opis VARCHAR2(200), ksztalt SDO_GEOMETRY ); CREATE TABLE szlak ( id_jury NUMBER PRIMARY KEY, nazwa VARCHAR2(20) NOT NULL, opis VARCHAR2(80), ksztalt SDO_GEOMETRY ); CREATE TABLE obiekty ( id_jury NUMBER PRIMARY KEY, nazwa VARCHAR2(20) NOT NULL, miejscowosc VARCHAR2(40), kod_kocztowy NUMBER(5), ulica VARCHAR2(50), kategoria VARCHAR2(20), opis VARCHAR2(80), ksztalt SDO_GEOMETRY ); 11
Wstawienie danych INSERT INTO jura_rez_park VALUES( 1, JKC, Jura Krakowsko-Częstochowska - Wyżyna Krakowsko-Częstochowska o dużej liczbie wapiennych ostańców, dolin, wzgórz i jaskiń., MDSYS.SDO_GEOMETRY( 2003, 8307, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1), MDSYS.SDO_ORDINATE_ARRAY ( 18.574676, 51.265868, 18.999252, 51.164964, 19.290090, 50.829919, 19.430580, 50.731805, 19.622841, 50.692673, 19.643326, 50.593089, 19.860077, 50.513950, 19.919357, 50.304516, 19.921632, 50.121695, 19.950943, 50.086490, 19.450493, 50.081952, 19.469719, 50.169554, 19.566193, 50.317934, 19.518185, 50.456695, 19.419594, 50.496962, 19.317970, 50.583367, 19.367294, 50.646239, 19.118843, 50.827322, 18.731461, 50.992409, 18.574676, 51.265868 ) ) ); Wizualizacja 12
Co byśmy chcieli wiedzieć...... a o co relacyjnej bazy nie moglibyśmy zapytać :) Jaki dystans dzieli mnie od najbliższej restauracji? Czy bliżej mam do Źródła Elżbiety, czy do Źródła Zygmunta? Jakiej atrakcji mogę szukać w pobliżu miejsca, w którym stoję? Czy na Chełmowej Górze mogę zbierać grzyby? Czy Diabelskie Mosty znajdują się w Rezerwacie Parkowe? Czy zszedłem z trasy Szlaku Orlich Gniazd? Zapytanie SELECT o.nazwa, SDO_NN_DISTANCE(1) DYSTANS_W_KM FROM obiekty o WHERE kategoria LIKE RESTAURACJA AND SDO_NN (ksztalt, MDSYS.SDO_GEOMETRY( 2001, 8307, MDSYS.SDO_POINT_TYPE( 19.131008, 50.811680, NULL ), NULL, NULL ), SDO_NUM_RES = 2 unit = kilometer, 1 ) = TRUE ; 3 Źródła Źródła W wykładzie wykorzystano materiały: E. Dziubek, Zaawansowane zastosowanie danych przestrzennych z wykorzystaniem Oracle 11g dla informacji turystycznej, Częstochowa 2011 H. Klimczak Prawie wszystko o danych..., Uniwersytet Przyrodniczy, Wrocław 2010 J. Michalak Problemy standaryzacji w GIS, GIS w praktyce, CPI, Warszawa 2001 K. Stolze SQL/MM Spatial: The Standard to Manage Spatial Data in Relational Database Systems, BTW 2003 L. Litwin i G. Myrda Zarządzanie danymi przestrzennymi w GIS, SIP, SIT, LIS, Helion, Gliwice 2005 http://download.oracle.com/docs/cd/b28359_01/appdev.111/b28400/sdo_intro. htm 13