Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ
MODEL WEKTOROWY – ANALIZY PRZESTRZENNE
2
PLAN PREZENTACJI FORMAT PLIKÓW SHAPE FORMATY DANYCH WEKTOROWYCH ANALIZY PRZESTRZENNE OPERACJE NA OBIEKTACH WEKTOROYWCH BUFOROWANIE DANYCH WEKTOROWYCH TRIANGULACJA DELAUNAY NUMERYCZNY MODEL TERENU GENERALIZACJA NMT
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
PLIKI ZASADNICZE PLIKI OPCJONALNE
.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
FORMAT NAGŁÓWKA PLIKU SHAPE
6
REKORDY PLIKU SHAPE Rekordy mają zmienną długość. Każdy rekord poprzedzony jest 8-bajtowym nagłówkiem rekordu. NAGŁÓWEK REKORDU REKORD
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
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"]], AXIS["Up",UP], AUTHORITY[["EPSG","5701"]], AUTHORITY[["EPSG","7405"]]
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
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
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
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:25000 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
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
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
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.
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
NAKŁADANIE WARSTW TEMATYCZNYCH JAKO METODA INTEGRACJI DANYCH
Sposoby realizacji nakładania warstw: suma (OR) przecięcie (AND) przycinanie (NOT)
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: warstwa A -punkty (szkoły); warstwa B –linie (drogi) 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
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
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
BUFOROWANIE WIELOBOKÓW
Dla wieloboków obszar buforowy może znajdować się na zewnątrz lub/i wewnątrz wieloboku
29
PRZYKŁADOWE NAKLADKOWANIE WARSTW WEKTOROWYCH WRAZ DIAGRAMEM VORONOI
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
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
TRIANGULACJA WIELOKĄTÓW
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.
33
WIELOKĄTY MONOTONICZNE
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.
34
WIELOKĄTY MONOTONICZNE
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):
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
WYZNACZANIE CZĘŚCI WYPUKŁEJ WIELOKĄTÓW WYPUKŁYCH
Algorytm Shamos’a i Hoey’a. 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
FORMALANA DEFINICJA TRIANGULACJI DELAUNAY
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.
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
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
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
PRZYKŁADOWA TRIANGULACJA DELAUNEY
42
PRZYKŁADOWY DIAGRAM VORONOI
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
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 Delaunay’a.
46
TWORZENIE DIAGRAMU VORONOI
Wyznaczenie pierwszej półpłaszczyzny
47
TWORZENIE DIAGRAMU VORONOI
Wyznaczenie drugiej półpłaszczyzny
48
TWORZENIE DIAGRAMU VORONOI
Powtarzamy operacje dla każdego punktu Czas: O( n2 log n )
49
TWORZENIE DIAGRAMU VORONOI
Przecięcie półpłaszczyzn O( n2 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
53
TWORZENIE DIAGRAMU VORONOI
Niezmiennik algorytmu e q pi Sweep Line v Zachowanie reprezentacji punktów q bliższych pewnemu punktowi pi ponad (above the sweep line) prostą zamiatającą niż do samej prostej (i tym samym do jakiegokolwiek punktu poniżej prostej).
54
TWORZENIE DIAGRAMU VORONOI
Które punkty są bliższe punktowi ponad prostą niż do samej prostej? q pi Equidistance Sweep Line Zbiór parabolicznych łuków tworzy linię graniczną (a beach-line) ograniczającą położenia takich punktów
55
TWORZENIE DIAGRAMU VORONOI
Punkty graniczne tworzą krawędzie (Break points) Voronoi. q pi Equidistance Sweep Line Break points do not trace out edges continuously in the actual algorithm. The sweep line stops at discrete event points as will be shown later.
56
TWORZENIE DIAGRAMU VORONOI
Łuki rozszerzają się w miarę przesuwania prostej zamiatającej w dół płaszczyzny q pi Sweep Line
57
TWORZENIE DIAGRAMU VORONOI
W końcu środkowy łuk zanika. q pi Sweep Line
58
TWORZENIE DIAGRAMU VORONOI
Wykryto pusty okrąg (nie zawiera punktów - sites) i przechodzi przez przynajmniej 3 punkty. q pi Voronoi vertex! Sweep Line
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
Bieżący stan diagramu Voronoi Bieżący stan prostej granicznej (bl)
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 Discrete sweep steps, rather than a continuous sweep
61
LISTA DWUKIERUNKOWA (D)
Zadanie: prosta struktura danych zapewniająca przechodzenie segmentów Voronoi, komórek Voronoi i wierzchołków Voronoi e Cell(pi) v
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(pi)
63
LISTA DWUKIERUNKOWA (D)
Tablica komórek - Cell Table Cell(pi) : pointer to any incident half-edge Tablica wierzchołków - Vertex Table vi : 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
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) pi pj pk pl < pj, pk> < pi, pj> < pk, pl> pj pi pl pk l
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
Nowy łuk powstaje podczas napotkania nowego punktu
SITE EVENT Nowy łuk powstaje podczas napotkania nowego punktu l
67
Nowy łuk powstaje podczas napotkania nowego punktu
SITE EVENT Nowy łuk powstaje podczas napotkania nowego punktu l
68
Pierwotny łuk ponad nowym punktem zostaje podzielony na dwa nowe
SITE EVENT Pierwotny łuk ponad nowym punktem zostaje podzielony na dwa nowe Liczba łuków na linii granicznej bl - O(n) l
69
Circle Event! Voronoi vertex! q pi Sweep Line
Łuk zanika gdy pusty okrąg styczny jest do trzech lub więcej punktów i do prostej zamiatającej. q pi Circle Event! Voronoi vertex! Sweep Line Prosta zamiatająca pomaga określić czy okrąg jest rzeczywiście pusty.
70
Event Queue posiada priorytet względem współrzędnej y
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
Bieżący diagram Voronoi Bieżąca linia graniczna (bl)
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
ALGORYTM FORTUNE VORONOI
Inicjalizacja Event queue Q all site events Binary search tree T Doubly linked list D While Q not , Remove event (e) from Q with largest y-coordinate HandleEvent(e, T, D)
73
OBSŁUGA SITE EVENTS Odszukanie istniejącego łuku (o ile istnieje) ponad nowym punktem Podział łuku poprzez zamianę węzłu liścia z poddrzewem reprezentującym nowy łuk i jego punkty graniczne (bp) Dodanie nowej półkrawędzi do listy dwukierunkowej Sprawdzenie czy zachodzi zdarzenie potential circle event(s), jeżeli tak to należy je dodać do kolejki zdarzeń
74
Odszukanie istniejącego łuku ponad nowym punktem
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 < pj, pk> pj pi pl pk < pi, pj> < pk, pl> pm l pi pj pk pl
75
PODZIAŁ ŁUKU Odpowiadający liść zostaje zamieniony nowym poddrzewem < pj, pk> < pi, pj> < pk, pl> < pl, pm> pj pi pj pk pi pl pk < pm, pl> pm l Różne łuki można zidentyfikować poprzez ten sam punkt! pl pm pl
76
DODANIE NOWEGO REKORDU KRAWĘDZI W DWUKIERUNKOWEJ LIŚCIE
New Half Edge Record Endpoints < pj, pk> Wskaźniki do rekordów półkawędzi < pi, pj> < pk, pl> < pl, pm> pj pi pj pk pi pl pk < pm, pl> pm pm l l pl pm pl
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
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
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
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
OBSŁUGA SITE EVENTS Lokalizacja liścia reprezentującego istniejący łuk ponad istniejącym punktem Usunięcie potencjalnego potential circle event w event queue Podział łuku poprzez zamianę węzła liścia z poddrzewem reprezentującym nowy łuk i punkty graniczne Dodanie rekordu nowej krawędzi do listy dwukierunkowej 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
OBSŁUGA SITE EVENTS Dodanie wierzchołka do odpowiedniego wpisu krawędzi w liście dwukierunkowej Usunięcie T węzła liścia znikającego łuku i stowarzyszonego zdarzenia circle event z kolejki Utworzenie rekordu nowej krawędzi w liście dwukierunkowej Sprawdzenie nowych trójek punktów utworzonych z poprzednich sąsiadujących łuków do potential circle events
83
CIRCLE EVENT < pj, pk> < pi, pj> < pk, pl> < pl, pm> pi pi pj pk pl pk pj < pm, pl> pm l pl pm pl
84
DADANIE WIERZCHOŁKA DO REKORDU KRAWĘDZI
Link! < pj, pk> Half Edge Record Endpoints.add(x, y) Half Edge Record Endpoints.add(x, y) < pi, pj> < pk, pl> < pl, pm> pi pi pj pk pl pk pj < pm, pl> pm l pl pm pl
85
USUNIĘCIE ZNIKAJĄCEGO ŁUKU
< pj, pk> < pi, pj> pi pi pj pk pl pk pj < pm, pl> pm l pm pl
86
USUNIĘCIE ZNIKAJĄCEGO ŁUKU
< pj, pk> < pi, pj> < pk, pm> < pm, pl> pi pi pj pk pl pk pj pm pm pl l
87
UTWORZENIE NOWEGO REKORDU KRAWĘDZI
< pj, pk> New Half Edge Record Endpoints.add(x, y) < pi, pj> < pk, pm> < pm, pl> pi pi pj pk pl pk pj pm pm pl l Nowa krawędź z nowego punktu granicznego (break point) < pk, pm>
88
SPRAWDZENIE NOWYCH TRÓJEK DLA potential circle events
< pj, pk> < pi, pj> < pk, pm> < pm, pl> pi pi pj pk pl pk pj pm pm pl l Q … y new circle event
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
ZAKOŃCZENIE DZIAŁANIA ALGORYTMU
< pj, pk> < pi, pj> < pk, pm> < pm, pl> pi pi pj pk pl pk pj pm pm pl Q l
91
ZAKOŃCZENIE DZIAŁANIA ALGORYTMU
< pj, pm> < pm, pl> < pi, pj> pi pi pj pl pk pm pl pj pm Q l
92
ZAKOŃCZENIE DZIAŁANIA ALGORYTMU
< pj, pm> < pm, pl> < pi, pj> pi pi pj pl pk pm pl pj pm Zakończyć półproste prostokatem ograniczającym! Q l
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
95
INTERPOLACJA W MODELU TIN
96
GRID IZOLINIE TIN
97
Allen Miu, 6.838 Computational Geometry
LITERATURA Allen Miu, Computational Geometry
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.