Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ MODEL WEKTOROWY – ANALIZY PRZESTRZENNE.

Podobne prezentacje


Prezentacja na temat: "1 GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ MODEL WEKTOROWY – ANALIZY PRZESTRZENNE."— Zapis prezentacji:

1 1 GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ MODEL WEKTOROWY – ANALIZY PRZESTRZENNE

2 2 PLAN PREZENTACJI 1.FORMAT PLIKÓW SHAPE 2.FORMATY DANYCH WEKTOROWYCH 3.ANALIZY PRZESTRZENNE 4.OPERACJE NA OBIEKTACH WEKTOROYWCH 5.BUFOROWANIE DANYCH WEKTOROWYCH 6.TRIANGULACJA DELAUNAY 7.NUMERYCZNY MODEL TERENU 8.GENERALIZACJA NMT

3 3 FORMAT PLIKÓW SHAPE (.SHP) Plik główny (.shp) zawiera główne źródło opisu danych przestrzennych. Plik shape składa się z pojedynczego nagłówka o stałej długości, po którym zapisane zostają rekordy o zmiennej długości. Pojedynczy rekord składa się z nagłówka rekordu oraz jego zawartości.

4 4 PLIKI ZASADNICZE.shp opisuje geometrię obiektów danych.shx plik indeksu; indeks położenia obiektów w pliku shape, umożliwia szybkie odszukanie obiektów.dbf plik z zapisaną tabelą atrybutów obiektów, kolumny opisują atrybuty, format pliku dBase III PLIKI OPCJONALNE.prj zapis odwzorowania, ukłąd współrzędnych oraz informacja o zastosowanym odwzorowaniu, plik tekstowy z formacie (well-known).sbn and.sbx przestrzenny indeks obiektów fbn and.fbx przestrzenny indeks obiektów dla plików przeznaczonych jedynie do odczytu.ain and.aih indeks atrybutów pół aktywnych w tabeli lub tabeli atrybutów warstw.ixs indeks geokodowania dla plików shape z zapisem-odczytem.mxs indeks geokodowania dla plików shape z zapisem-odczytem (format ODB).atx indeks atrybutów dla pliku.dbf file w formacie shapefile.columnname.atx (od ArcGIS).shp.xml metadane w formacie XML

5 5 FORMAT NAGŁÓWKA PLIKU SHAPE

6 6 REKORDY PLIKU SHAPE Rekordy mają zmienną długość. Każdy rekord poprzedzony jest 8-bajtowym nagłówkiem rekordu. REKORD NAGŁÓWEK REKORDU

7 7

8 8 FORMAT DANYCH PLIKU ODWZOROWANIA DLA PLIKÓW SHAPE (.PRJ) Informacja opisująca zastosowane odwzorowanie dla danych zapisanych w formacie shape jest niezbędna dla prawidlowego ich odczytu i dalszego ich wykorzystania. Plik.prj nie jest plikiem wymaganym, jednak bardzo często stosowanym, gdyż najczęściej nie jest możliwe wywnioskowanie jedynie z samych danych, jakie odwzorowanie kartograficzne zostało zastosowane. Plik.prj najczęściej zawiera następujące iinformacje: Geographic coordinate system Datum (geodesy) Spheroid Prime meridian Map projection Units used Parametry odwzorowania kartograficznego: Latitude of origin Scale factor Central meridian False northing False easting Standard parallels

9 9 COMPD_CS["OSGB36 / British National Grid + ODN", PROJCS["OSGB 1936 / British National Grid", GEOGCS["OSGB 1936", DATUM["OSGB_1936", SPHEROID["Airy 1830", , ,AUTHORITY["EPSG","7001"]], TOWGS84[375,-111,431,0,0,0,0], AUTHORITY[["EPSG","6277"]], PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]], UNIT["DMSH", ,AUTHORITY["EPSG","9108"]], AXIS["Lat",NORTH], AXIS["Long",EAST], AUTHORITY[["EPSG","4277"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",49], PARAMETER["central_meridian",-2], PARAMETER["scale_factor", ], PARAMETER["false_easting",400000], PARAMETER["false_northing", ], UNIT["metre",1,AUTHORITY["EPSG","9001"]], AXIS["E",EAST], AXIS["N",NORTH], AUTHORITY[["EPSG","27700"]], VERT_CS["Newlyn", VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]], UNIT["metre",1,AUTHORITY["EPSG","9001"]], AXIS["Up",UP], AUTHORITY[["EPSG","5701"]], AUTHORITY[["EPSG","7405"]]

10 10 PROJCS ["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001", GEOGCS["GCS_North_American_1983", DATUM["D_North_American_1983", SPHEROID["GRS_1980", , ] ], PRIMEM["Greenwich",0.0], UNIT["Degree", ] ], PROJECTION["Lambert_Conformal_Conic"], PARAMETER["False_Easting", ], PARAMETER["False_Northing", ], PARAMETER["Central_Meridian",-71.5], PARAMETER["Standard_Parallel_1", ], PARAMETER["Standard_Parallel_2", ], PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0] ]

11 11 FORMATY WEKTOROWE Geography Markup Language (GML) - XML standard otwarty (by OpenGIS) wymiany danych GIS DXF – punkty z określoną wysokościa w formacieAutoCAD DXF format Shapefile - ESRI's otwarty, hybrydowy format: pliki SHP, SHX i DBF Simple Features - Open Geospatial Consortium specyfikacja danych wektorowych MapInfo TAB format - MapInfo's vector data format using TAB, DAT, ID and MAP files National Transfer Format (NTF) - National Transfer Format (stosowany głównie w Wielkiej Brytanii) TIGER - Topologically Integrated Geographic Encoding and Referencing Cartesian coordinate system (XYZ) – prosty zbiór punktów Vector Product Format - National Imagery and Mapping Agency (NIMA) format danych wektorowych dużych baz geograficznych.

12 12 FORMATY WEKTOROWE GeoMedia - Intergraph's Microsoft Access format danych wektorowych ISFC - Intergraph MicroStation oparty na rozwiązaniu CAD dołączający elementy wektorowe do bazy Access Personal Geodatabase - ESRI zastrzeżony zintegrowany format przechowywania danych wektorowych z wykorzystaniem formatu baz Microsoft Access MD Plikowa Geodatabase - ESRI's format geobazy,zapisywany w plikach Coverage – zamknięty ESRI, hybrydowy format danych wektorowych

13 13 DIGITAL LINE GRAPHS Wektorowa reprezentacja cyfrowa danych kartograficznych z map USDS i pokrewnych źródeł. W zależności od skali, dostępne są następujące kategorie (rodzaje obiektów): -Public Land Survey System (PLSS), granice, transport, hydrografia, hipsografia, markery, poszycie roślinne Trzy podstawowe rodzaje danych DLG: -Duża skala (7.5 minuty): 1:20000-, 1:24000, i 1: Skala średnia (1: ) - Mała skala ( ) -Żródło: Full topological data structure (nodes, lines, areas + adjacency information) Layers: 9 feature classes, street & address information, elevations Projection: UTM (large & medium scale), Albers Conical Equal Area (small scale)

14 14 BAZY DANYCH IMPLEMENTUJĄCE ROZSZERZENIA PostGIS Implementacja OGC Simple Features for SQL, specyfikacja w PostgreSQL do przechowywania danych przestrzennych (punkty, linie, poligony) w relacyjnych bazach danych SQL w oparciu o system zarządzania (RDBMS). Implementacja w postaci zbioru funkcji i typów danych przetwarzających dane przestrzenne (spatially enable) przez system obiektowo-relacyjny bazy PostgreSQL. Projekt open source rozwijany przez Refractions Research (Victoria, BC) Technologia analogiczna do ArcSDE (vector data component) oraz and Oracle Spatial

15 15 FUNKCJONALNOŚĆ SYSTEMU PostGIS Geobaza obsługująca przechowywanie danych wektorowych zgodnie ze specyfikacją OGC (simple features) Przechowywanie danych 4D Wsparcie dla Spatial Reference System Zapytania przestrzenne (Spatial query capabilities) Relacje przestrzenne : odległość, nakładanie się, przecięcia, znajduje się wewnątrz (within), zawieranie się (containment) Funkcje geometryczne: area. length, centroid, point-on-surface, boundary, buffer, convex hull, intersection, difference, union, editors, creators Dostęp: tekstowy, binarny, SRID, wymiar

16 16 INTERFEJS DLA BAZY PostGIS Programy obsługujące sterowniki ODBC, JDBC (i.e. MS Access, Excel, OpenOffice) Międzyplatformowe, specyficzne dla PostgreSQL interfejs klienta (i.e. pgAdminIII, EMS PostgreSQL Manager) Aplikacje wielobazodanowe (Multi-database client applications) (i.e. Aqua Data Studio, Navicat) Klient aplikacji internetowych (i.e. phpPgAdmin, Webmin) Sterowniki skryptowe (i.e. PHP, Perl, Python) W ten sposób możliwy wieloraki dostępdo baz PostgreSQL, np.. dane z MS Access można analizować w R i jednocześnie przetwarzać w systemie GRASS za każdym razem wykorzystując bazę PostgreSQL.

17 17

18 18

19 19

20 20

21 21

22 22

23 23 SYSTEMATYKA ANALIZ DANYCH PRZESTRZENNYCH Edytowanie, sortowanie, modyfikacje Zapytania do bazy danych (GIS) Operacje matematyczne (algebra map) Analizy wykorzystujące operatory odległości (np. strefy buforowe) Analizy wykorzystujące operatory sąsiedztwa Analizy statystyczne Przetwarzanie obrazów Wspomaganie decyzji Analizy zmian Zapytania do baz danych

24 24 Sposoby realizacji nakładania warstw: suma (OR) przecięcie (AND) przycinanie (NOT) NAKŁADANIE WARSTW TEMATYCZNYCH JAKO METODA INTEGRACJI DANYCH

25 25 OPERACJA ZŁĄCZENIA PRZESTRZENNEGO. Pozwala odszukać w warstwie B: 1.obiekty najbliższe względem elementów warstwy A 2.obiekty znajdujące się wewnątrz elementów warstwy A 3.obiekty, które przecinają elementy warstwy A Przykłady: 1.warstwa A -punkty (szkoły); 2.warstwa B –linie (drogi) 3.nowa warstwa C punktowa: każdy punkt ma wszystkie atrybuty odpowiedniego punktu z warstwy A oraz linii, która znajduje się najbliżej, a także nowy atrybut -odległość od najbliższej linii Warstwa A -wieloboki (gminy); warstwa B –punkty (miasta) nowa warstwa C powierzchniowa: każdy wielobok odpowiadający gminie będzie miał dodatkowo podane podsumowanie atrybutów liczbowych punktów (do wyboru: średnia, suma, max, min itp.), które przypadają na jego obszar oraz atrybut podający liczbę tych punktów

26 26 PODSTAWOWE RELACJE PRZESTRZENNE PRZYLEGŁY - adjacent to POŁĄCZONY Z connected to W BEZPOŚREDNIM SĄSIEDZTWIE near to PRZECINA SIĘ Z intersects with WEWNĄTRZ within ZACHODZI NA - overlaps NIEKTRE RELACJE PRZECHOWYWANE SĄ W MODELU TOPOLOGICZNYM DANYCH: -adjacent to: POLIGON Z PRAWEJ I LEWEJ STRONY -connected to LISTA LINII POSIADAJĄCYCH TEN SAM WĘZEŁ W TABELI ATRYBUTÓW WĘZŁÓW

27 27 BUFOROWANIE DANYCH WEKTOROWYCH Wyznaczanie obszarów znajdujących się w określonej odległości od elementów danej warstwy: punktów, linii, wieloboków. Możliwe jest scalanie buforów tego samego typu. Dla punktów obszary koncentryczne: o określonym promieniu; o promieniu zależnym od wartości wybranego atrybutu; o kilku zakresach.

28 28 Dla wieloboków obszar buforowy może znajdować się na zewnątrz lub/i wewnątrz wieloboku BUFOROWANIE WIELOBOKÓW

29 29 PRZYKŁADOWE NAKLADKOWANIE WARSTW WEKTOROWYCH WRAZ DIAGRAMEM VORONOI

30 30 ALGORYTM OKREŚLANIA POŁOŻENIA PUNKTU WZGLĘDEM WIELOBOKU Podstawowa procedura geometryczna: punkt-w-wieloboku Algorytm Jordana: półprosta o początku w danym punkcie -należy wyznaczyć liczbę punktów przecięcia półprostej z obwodem wieloboku punkt leży wewnątrz - nieparzysta liczba przecięć punkt leży na zewnątrz -parzysta liczba przecięć lub 0 dodatkowy warunek potrzebny dla punktów leżących na obwodzie wieloboku

31 31 TESELACJA (MOZAIKOWANIE) PRZESTRZENI Rozkład przestrzeni na regularne elementy o strukturze hierarchicznej przestrzeń traktowana jak prostokąt na pierwszym etapie prostokąt dzielony na 4 równe prostokąty każdy element podziału, który ma część wspólną z obiektem poszukiwanym jest dalej dzielony w podobny sposób podział jest kontynuowany, póki nie zostanie osiągnięte kryterium zakończenia procesu (liczba lub rozmiar elementów mozaiki) indeksy oznaczające elementy mozaiki identyfikujące obiekt są przechowywane w tabeli

32 32 Triangulacja wielokątów. Triangulacja jest podziałem wielokąta na sumę trójkątów. Ułatwia ona wiele zadań, do których należą np. wypełnianie obszarów, określanie zasłaniania i oświetlania obiektów trójwymiarowych, wyznaczanie linii i ich przecięcia. Ważne jest by liczba trójkątów była jak najmniejsza. Zadanie triangulacji można sformułować następująco : podział wielokąta zwykłego na sumę nie nakładających się na siebie trójkątów, których wierzchołkami mogą być tylko wierzchołki danego wielokąta. Taki podział nie musi być jednoznaczny. W przypadku wielokątów wypukłych algorytm dzielenia wielokąta na trójkąty jest bardzo prosty: należy dowolny wierzchołek połączyć z pozostałymi wierzchołkami. Koszt takiej operacji jest rzędu n. TRIANGULACJA WIELOKĄTÓW

33 33 Wielokątem monotonicznym nazywamy taki wielokąt zwykły, dla którego istnieje odpowiednia numeracja wierzchołków, która dzieli brzeg wielokąta na dwa łańcuchy P1- >P2->...->Pk i Pk+1->...->Pn->P1 tak, że rzuty prostopadłe na pewną prostą l wierzchołków z obu łańcuchów są tak samo uporządkowane jak tworzące je wierzchołki. Definicje: Wierzchołki sąsiednie - są to wierzchołki, które są końcami tego samego boku wielokąta. Przekątna wielokąta – jest to odcinek łączący wierzchołki nie będące wierzchołkami sąsiednimi. WIELOKĄTY MONOTONICZNE

34 34 W przypadku, gdy mamy do czynienia z wielokątami niemonotonicznymi to należy dokonać podziału wielokąta na trapezy, wierzchołki psujące monotoniczność (nie są one końcami podstaw trapezów) należy połączyć z wierzchołkiem przez który przechodzi druga podstawa odpowiedniego trapezu. Przykład: (dla prostej badającej monotoniczność równoległej do osi x): WIELOKĄTY MONOTONICZNE

35 35 ALGORYTM DZIELENIA WIELOKĄTA MONOTONICZNEGO NA TRÓJKĄTY Dane są współrzędne wierzchołków. Sortujemy wierzchołki według malejących wartości y. Otrzymany ciąg oznaczamy Q1, Q2,...,Qn. Na stos układamy dwa pierwsze wierzchołki: Q1, Q2. dla j=3,...,n niech R1,R2,...,Ri (na początku i=2) będzie aktualną zawartością stosu. jeśli Qj sąsiaduje z R1, ale nie z Ri, to prowadzimy przekątne QjR2, QjR3,...,QjRi zamieniamy zawartość stosu na Ri, Qj, w przeciwnym razie, jeśli Qj sąsiaduje z Ri, ale nie z R1, to (*) jeśli i=1 lub wewnętrzny kąt wielokąta W w Ri jest >= 180o to dodajemy Qj na wierzchołek stosu, w przeciwnym razie prowadzimy przekątną QjRi-1, zdejmujemy Ri ze stosu, podstawiamy i=i- 1 i wracamy do (*), w przeciwnym razie (Qj sąsiaduje z R1 i Ri) prowadzimy przekątne QjR2, QjR3,...,QjRi-1. Koszt algorytmu jest rzędu n (pętla wykonuje się n razy).

36 36 WYZNACZANIE CZĘŚCI WYPUKŁEJ WIELOKĄTÓW WYPUKŁYCH Algorytm Shamosa i Hoeya. Dane są dwa wielokąty P={(xi,yi), i=1,...,n} i Q={xi,yi), i=1,...,m} Prowadzimy prostopadłe linie do osi x przechodzącej przez wierzchołki, Dla otrzymane pasków wyznaczamy części wspólne (są to trójkąty lub trapezy). Koszt metody: metoda jest rzędu O(n+m), dla małych n i m są to koszty niewiekie. Dla n i m bardzo dużych istnieją efektywniejsze algorytmy.

37 37 Triangulacja Delone (w powszechnym użyciu jest pisownia nazwiska Delaunay) to triangulacja T przestrzeni Rn+1 zdefiniowana następująco: T to podział Rn+1 na (n+1)-sympleksy, takie że: każde dwa sympleksy z T mają wspólną ścianę lub nie mają części wspólnej wcale każdy ograniczony zbiór w Rn+1 ma część wspólną jedynie ze skończenie wieloma sympleksami z T wnętrze kuli opisanej na dowolnym sympleksie z T nie zawiera wierzchołków żadnego sympleksu z T Triangulacja Delone jest grafem dualnym diagramu Woronoja. FORMALANA DEFINICJA TRIANGULACJI DELAUNAY

38 38 Triangulacja Delanuay'a zbioru punktów jest jednym z rodzajów triangulacji i charakteryzuje się tym, że żaden z punktów z tego zbioru nie trafia do wnętrza okręgu opisanego na trójkącie jakiegokolwiek innego trójkąta powstałego podczas triangulacji. Algorytm tworzenia triangulacji Delaunay'a dla zbioru n punktów : 1. Wybierz 3 punkty tworzące pierwszy trójkąt. 2. Wyznacz losowa permutacje pozostałych punktów. 3. Dla pozostałej liczby r punktów : - znajdź trójkąt Pi,Pj,Pk należący do triangulacji Delaunay'a nie zawierający Pr, - jeżeli Pr leży wewnątrz trójkąta, dokonaj podziału tego trójkąta na trzy trójkąty oraz przeprowadź legalizacje powstałych trójkątów zgodnie z warunkiem dla triangulacji Delaunay'a, - jeżeli Pr leży na krawędzi, to dokonaj podziału na dwa trójkąty i dokonaj odpowiedniej legalizacji. 4. Zwróć jako rozwiązanie triangulacje Delaunay'a.

39 39 ZASADA TRIANGULACJI Wykorzystuje się w tym celu następujące fakty: Triangulacja Delaunaya D T charakteryzuje się tym, że w żadnym z okręgów opisanych na trójkącie z D T nie zawierają się inne wierzchołki. Dla danych czterech wierzchołków wypukłego czworokąta istnieją dwa możliwe podziały na trójkąty: jeden z tych podziałów to triangulacja Delaunaya D T. Przejście pomiędzy dwoma triangulacjami uzyskuje się poprzez zmianę przekątnej w czworokącie. Triangulacja Delaunaya maksymalizuje wartość minimalnego kąta w trójkącie.

40 40 DIAGRAMY VORONOI - ZASTOSOWANIA Wyszukiwanie najbliższego sąsiedztwa:dla rozważanego punktu q znalezienie jego najbliższego sąsiedztwa,ze stałego zbioru punktów S jest po prostu kwestia określenia, która komórka diagramu Voronoi zbioru S zawiera q. Funkcja położenia: załóżmy, że koncern chce otworzyć kolejna stacje. Aby zminimalizować ingerencję w obszar istniejącej stacji, powinna być ona umiejscowiona najdalej jak się da od najbliższej istniejącej stacji. Umiejscowienie to jest zawsze na wierzchołku diagramu Voronoi i może być znalezione przez wyszukiwanie liniowo-czasowe poprzez wszystkie wierzchołki Voronoi. Największe puste koło: potrzebny jest nie zagospodarowany kawek ziemi na którym ma zostać wykonana zabudowa. Ten sam warunek użyty do lokalizacji stacji jest właściwy dla wszystkich niepożądanych lokalizacji nazwany tak, ponieważ jest możliwie jak najdalej od jakiegokolwiek istotnego położenia zainteresowań. Wierzchołek Voronoi określa środek największego pustego koła pomiędzy punktami. Planowanie ścieżek: jeżeli położenia S sa środkami przeszkód, których chcemy uniknac, to krawędzie diagramu Voronoi definiują możliwe kanały, które minimalizują odległości do tych przeszkód. W ten sposób w planowaniu ścieżek między położeniami będzie bezpiecznie przykleić ja do krawędzi diagramu Voronoi. Triangulacja własciwości: w triangulacji zbioru punktów często wymagamy ładnych, pokaźnych trójkatów, które wykluczają małe kąty i chude trójkąty. Triangulacja Delanuay maksymalizuje minimalny kat dla całej triangulacji i jest własnie tym czego potrzebujemy. W dalszym ciagu jest łatwo konstruowana jako dualizm diagramu Voronoi.

41 41 PRZYKŁADOWA TRIANGULACJA DELAUNEY

42 42 PRZYKŁADOWY DIAGRAM VORONOI

43 43

44 44 TWORZENIE SIATKI TRÓJKĄTÓW ALGORYTMEM DELAUNAY 1.Obieramy odległość graniczną R mniejszą niż średnia odległość między punktami 2.Przebiegamy wszystkie punkty rozproszone i wokół każdego z nich zataczamy okrąg o promieniu R 3.Łączymy punkty kandydujące z punktem centralnym odcinkami i prowadzimy symetralne tych odcinków 4.Budujemy wielobok Thiessena (najmniejszy z możliwych) 5.Z pośród punktów wyselekcjonowanych wstępnie bierze się tylko te, które utworzyły poligon Thiessena. Te punkty będą połączone w siatkę. 6.Punkty, które nie utworzyły poligonu Thiessena się odrzuca 7.Powyższa procedurę powtarza się dla wszystkich punktów rozproszonych

45 45 DIAGRAM VORONOI Obszar Voronoi stanowi zbiór wszystkich punktów płaszczyzny, dla których odległość do punktu centralnego jest mniejsza od odległości do pozos-tałych punktów. ograniczenia tego obszaru stanowiąodcinki symetralnych do boków triangulacji Delaunaya.

46 46 TWORZENIE DIAGRAMU VORONOI Wyznaczenie pierwszej półpłaszczyzny

47 47 TWORZENIE DIAGRAMU VORONOI Wyznaczenie drugiej półpłaszczyzny

48 48 TWORZENIE DIAGRAMU VORONOI Powtarzamy operacje dla każdego punktu Czas: O( n 2 log n )

49 49 TWORZENIE DIAGRAMU VORONOI Przecięcie półpłaszczyzn O( n 2 log n ) Algorytm Fortune Voronoi Algorytm zamiatania płaszczyzny (sweep line) Diagram Voronoi tworzony podczas przesuwania horyzontalnej linii przez zbiór punktów (sites) z góry do dołu Budowanie przyrostowe przechowuje podzbiór diagramu, który nie może zmienić się ze względu na punkty (sites) znajdujące się poniżej prostej zamiatającej

50 50

51 51

52 52

53 53 TWORZENIE DIAGRAMU VORONOI Niezmiennik algorytmu Zachowanie reprezentacji punktów q bliższych pewnemu punktowi p i ponad (above the sweep line) prostą zamiatającą niż do samej prostej (i tym samym do jakiegokolwiek punktu poniżej prostej). e v pipi Sweep Line q

54 54 TWORZENIE DIAGRAMU VORONOI Które punkty są bliższe punktowi ponad prostą niż do samej prostej? Sweep Line pipi q Zbiór parabolicznych łuków tworzy linię graniczną (a beach-line) ograniczającą położenia takich punktów Equidistance

55 55 TWORZENIE DIAGRAMU VORONOI Punkty graniczne tworzą krawędzie (Break points) Voronoi. Equidistance Sweep Line pipi q

56 56 TWORZENIE DIAGRAMU VORONOI Łuki rozszerzają się w miarę przesuwania prostej zamiatającej w dół płaszczyzny Sweep Line pipi q

57 57 W końcu środkowy łuk zanika. TWORZENIE DIAGRAMU VORONOI Sweep Line pipi q

58 58 Wykryto pusty okrąg (nie zawiera punktów - sites) i przechodzi przez przynajmniej 3 punkty. TWORZENIE DIAGRAMU VORONOI Sweep Line pipi q Voronoi vertex!

59 59 WŁAŚCIWOŚCI PROSTEJ GRANICZNEJ (Beach Line) Krawędzie Voronoi wykrywane zostają przez punkty graniczne w miarę przesuwania się prostej zamiatającej w dół płaszczyzny. Powstawanie nowego punktu(ów) granicznego (s) (z utworzonego nowego łuku lub połączenia dwu istniejących punktów granicznych) tworzy nową krawędź Wierzchołki Voronoi wykrywane są gdy dwa punkty graniczne łączą się.

60 60 STRUKTURY DANYCH Bieżący stan diagramu Voronoi Dwukierunkowa lista półkrawędzi, wierzchołków, komórek Bieżący stan prostej granicznej (bl) Monitoruje punkty graniczne bp (break points) Monitoruje łuki znajdujące się na prostej granicznej (bl) Bieżący stan prostej zamiatającej (sl -sweep line) Kolejka priorytetowa posortowana malejąco względem współrzędnej y

61 61 LISTA DWUKIERUNKOWA (D) Zadanie: prosta struktura danych zapewniająca przechodzenie segmentów Voronoi, komórek Voronoi i wierzchołków Voronoi e v Cell(p i )

62 62 LISTA DWUKIERUNKOWA (D) Dzieli segmenty na jednokierunkowe półkrawędzie Łańcuch skierowanych przeciwnie do ruchu wskazówek zegara półkrawędzi tworzy komórkę Voronoi Każda półkrawędź posiada odpowiednik w postaci jego odpowiednika w tym samym segmencie e v Cell(p i )

63 63 LISTA DWUKIERUNKOWA (D) Tablica komórek - Cell Table Cell(p i ) : pointer to any incident half-edge Tablica wierzchołków - Vertex Table v i : list of pointers to all incident half-edges Dwukierunkowa lista półkrawędzi posiada: Wskaźnik do wpisu w tablicy wierzchołków Wskażniki do wierzchołków początkowego i końcowego półkrawędzi Wskaźniki do poprzedzającej / następnej półkrawędzi w łąńcuchu CCW Wskaźnik do bliźniaczej półkrawędzi

64 64 ZRÓWNOWAŻONE DRZEWO BINARNE Balanced Binary Tree (T) Węzły wewnętrzne reprezentują punkty graniczne między dwoma łukami Zawiera ponadto wskaźnik do rekordu D krawędzi badanej Liście reprezentują łuki, każdy łuk z kolei jest reprezentowany przez punkt, który go wygenerował Zawiera ponadto wskaźnik do potencjalnego okręgu (potential circle event) pipi pjpj pkpk plpl pipi pjpj pkpk plpl l

65 65 Event Queue (Q) Zdarzenie reprezentuje interesujący punkt podczas przechodzenia w dół prostej zamiatającej Prosta zamiatająca zatrzymuje się w określonych punktach a nie wykonuje ciągły ruch Kolejka zdarzeń skłąda się z Site Events (podczas napotkania przez prostą zamiatającą nowego punktu) oraz Circle Events (podczas gdy prosta zamiatająca wykrywa dolny punkt pustego okręgu stycznego do 3 lub więcej punktów ). Zdarzenia kolejkowane są względem współrzędnych y

66 66 SITE EVENT Nowy łuk powstaje podczas napotkania nowego punktu l

67 67 SITE EVENT Nowy łuk powstaje podczas napotkania nowego punktu l

68 68 SITE EVENT Pierwotny łuk ponad nowym punktem zostaje podzielony na dwa nowe Liczba łuków na linii granicznej bl - O(n) l

69 69 CIRCLE EVENT Łuk zanika gdy pusty okrąg styczny jest do trzech lub więcej punktów i do prostej zamiatającej. Prosta zamiatająca pomaga określić czy okrąg jest rzeczywiście pusty. Circle Event! Sweep Line pipi q Voronoi vertex!

70 70 EVENT QUEUE Site Events Pobierane jako wejście Reprezentują współrzędne xy punktu Circle Events Obliczane podczas działania algorytmu (przecięcie symetralnych trzech punktów) Reprezentowane jako współrzędne xy najniższego punktu pustego okręgu stycznego do trzech punktów Zdarzenia przypuszczalnie istotne, nie muszą generować nowych krawędzi Event Queue posiada priorytet względem współrzędnej y

71 71 STRUKTURY DANYCH Bieżący diagram Voronoi Dwukierunkowa lista półkrawędzi, wierzcholków, komórek Bieżąca linia graniczna (bl) Zawiera punkty graniczne (break points) Wewnętrzne węzły binarnego drzewa reprezentowane przez odpowiedni rekord Zawiera łuki obecne na linii granicznej (bl) Liście drzewa binarnego; reprezentowane przez punkty generowane przez łuk Bieżący stan prostej zamiatającej Priorytet względem współrzędnych y posortowanych malejąco

72 72 ALGORYTM FORTUNE VORONOI 1. Inicjalizacja Event queue Q all site events Binary search tree T Doubly linked list D 2. While Q not, Remove event (e) from Q with largest y- coordinate HandleEvent(e, T, D)

73 73 OBSŁUGA SITE EVENTS 1. Odszukanie istniejącego łuku (o ile istnieje) ponad nowym punktem 2. Podział łuku poprzez zamianę węzłu liścia z poddrzewem reprezentującym nowy łuk i jego punkty graniczne (bp) 3. Dodanie nowej półkrawędzi do listy dwukierunkowej 4. Sprawdzenie czy zachodzi zdarzenie potential circle event(s), jeżeli tak to należy je dodać do kolejki zdarzeń

74 74 Odszukanie istniejącego łuku ponad nowym punktem pipi pjpj pkpk plpl Współrzędna x nowego punktu wykorzystana przy przeszukiwaniu binarnym Współrzędna x każdego punktu granicznego (bp) od korzenia do liścia obliczona zostaje podczas działania algorytmu pipi pjpj pkpk plpl l pmpm

75 75 PODZIAŁ ŁUKU pipi pjpj pkpk Odpowiadający liść zostaje zamieniony nowym poddrzewem pipi pjpj pkpk plpl l pmpm pmpm plpl plpl Różne łuki można zidentyfikować poprzez ten sam punkt!

76 76 DODANIE NOWEGO REKORDU KRAWĘDZI W DWUKIERUNKOWEJ LIŚCIE pipi pjpj pkpk pmpm plpl plpl pipi pjpj pkpk plpl l pmpm New Half Edge Record Endpoints Wskaźniki do rekordów półkawędzi l pmpm

77 77 SPRAWDZENIE MOŻLIWYCH ZDARZEŃ Potential Circle Events Skanowanie trójek kolejnych łuków i sprawdzenie czy punkty graniczne zbiegają się Trójki z nowymi łukami w środku nie posiadają punktów granicznych zbieżnych

78 78 SPRAWDZENIE MOŻLIWYCH ZDARZEŃ Potential Circle Events Skanowanie trójek kolejnych łuków i sprawdzenie czy punkty graniczne zbiegają się Trójki z nowymi łukami w środku nie posiadają punktów granicznych zbieżnych

79 79 SPRAWDZENIE MOŻLIWYCH ZDARZEŃ Potential Circle Events Skanowanie trójek kolejnych łuków i sprawdzenie czy punkty graniczne zbiegają się Trójki z nowymi łukami w środku nie posiadają punktów granicznych zbieżnych

80 80 ZBIEŻNE PUNKTY GRANICZNE NIE MUSZĄ ZAWSZE TWORZYĆ ZDARZENIA Pojawienie się nowego punktu przez zdarzeniem circle event tworzy niepusty okrąg l (Pierwotne zdarzenie circle event jest typu false alarm)

81 81 OBSŁUGA SITE EVENTS 1. Lokalizacja liścia reprezentującego istniejący łuk ponad istniejącym punktem Usunięcie potencjalnego potential circle event w event queue 2. Podział łuku poprzez zamianę węzła liścia z poddrzewem reprezentującym nowy łuk i punkty graniczne 3. Dodanie rekordu nowej krawędzi do listy dwukierunkowej 4. Sprawdzenie potencjalnych circle event(s), dodanie do kolejki, jezeli istnieją Zapisać odpowiedni węzeł T do wskaźnika do nowego circle event w kolejce the queue

82 82 OBSŁUGA SITE EVENTS 1. Dodanie wierzchołka do odpowiedniego wpisu krawędzi w liście dwukierunkowej 2. Usunięcie T węzła liścia znikającego łuku i stowarzyszonego zdarzenia circle event z kolejki 3. Utworzenie rekordu nowej krawędzi w liście dwukierunkowej 4. Sprawdzenie nowych trójek punktów utworzonych z poprzednich sąsiadujących łuków do potential circle events

83 83 CIRCLE EVENT pipi pjpj pkpk pipi pjpj pkpk plpl l pmpm pmpm plpl plpl

84 84 DADANIE WIERZCHOŁKA DO REKORDU KRAWĘDZI pipi pjpj pkpk pipi pjpj pkpk plpl l pmpm pmpm plpl plpl Half Edge Record Endpoints.add(x, y) Half Edge Record Endpoints.add(x, y) Link!

85 85 USUNIĘCIE ZNIKAJĄCEGO ŁUKU pipi pjpj pkpk pipi pjpj pkpk plpl l pmpm pmpm plpl

86 86 USUNIĘCIE ZNIKAJĄCEGO ŁUKU pipi pjpj pkpk pipi pjpj pkpk plpl l pmpm pmpm plpl

87 87 UTWORZENIE NOWEGO REKORDU KRAWĘDZI pipi pjpj pkpk pipi pjpj pkpk plpl l pmpm pmpm plpl New Half Edge Record Endpoints.add(x, y) Nowa krawędź z nowego punktu granicznego (break point)

88 88 SPRAWDZENIE NOWYCH TRÓJEK DLA potential circle events pipi pjpj pkpk pipi pjpj pkpk plpl l pmpm pmpm plpl Q y … new circle event

89 89 IMPLEMENTACJA Algorytm kończy działanie gdy Q =, ale prosta graniczna bl i punkty graniczne nadal podązają za krawędziami Voronoi Należy zakończyć te nieskończone krawędzie prostokątem ograniczającym

90 90 ZAKOŃCZENIE DZIAŁANIA ALGORYTMU pipi pjpj pkpk pipi pjpj pkpk plpl l pmpm pmpm plpl Q

91 91 ZAKOŃCZENIE DZIAŁANIA ALGORYTMU pipi pjpj pipi pjpj pkpk plpl l pmpm pmpm plpl Q

92 92 ZAKOŃCZENIE DZIAŁANIA ALGORYTMU pipi pjpj pipi pjpj pkpk plpl l pmpm pmpm plpl Q Zakończyć półproste prostokatem ograniczającym!

93 93 NUMERYCZNY MODEL TERENU – NMT – DIGITAL TERRAIN MODEL Pod pojęciem numerycznego modelu terenu należy rozumieć zbiór odpowiednio zebranych punktów (określonych współrzędnymi X,Y,Z) powierzchni terenu wraz z algorytmem interpolującym, pozwalającym na określenie kształtu tej powierzchni bądź wysokości pojedynczych punktów. Najczęściej NMT tworzony jest w postaci regularnej siatki kwadratów (GRID) lub w postaci nieregularnej siatki trójkątów (TIN) NMT (DTM-DigitalTerrainModel) aproksymuje w postaci dyskretnej sieć punktów pomiarowych o znanych współrzędnych przestrzennych X, Y, Z funkcję ciągłą, jakąjest powierzchnia topograficzna terenu. W przypadku generowania z NMT warstwic, oprócz punktów pomiarowych nanosi się: Linie szkieletowe, Linie nieciągłości terenu, Granice obszarów wydzielonych, Pikiety wysokościowe usytuowane na punktach charakterystycznych terenu

94 94

95 95 INTERPOLACJA W MODELU TIN

96 96 GRID IZOLINIE TIN

97 97 LITERATURA Allen Miu, Computational Geometry


Pobierz ppt "1 GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ MODEL WEKTOROWY – ANALIZY PRZESTRZENNE."

Podobne prezentacje


Reklamy Google