Transcript Slide 1

GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ
MODEL WEKTOROWY – ANALIZY PRZESTRZENNE
1
PLAN PREZENTACJI
1.
2.
3.
4.
5.
6.
7.
8.
FORMAT PLIKÓW SHAPE
FORMATY DANYCH WEKTOROWYCH
ANALIZY PRZESTRZENNE
OPERACJE NA OBIEKTACH WEKTOROYWCH
BUFOROWANIE DANYCH WEKTOROWYCH
TRIANGULACJA DELAUNAY
NUMERYCZNY MODEL TERENU
GENERALIZACJA NMT
2
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.
3
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
4
FORMAT NAGŁÓWKA PLIKU SHAPE
5
REKORDY PLIKU SHAPE
Rekordy mają zmienną długość. Każdy rekord poprzedzony jest 8-bajtowym
nagłówkiem rekordu.
NAGŁÓWEK REKORDU
REKORD
6
7
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
8
COMPD_CS["OSGB36 / British National Grid + ODN",
PROJCS["OSGB 1936 / British National Grid",
GEOGCS["OSGB 1936",
DATUM["OSGB_1936",
SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],
TOWGS84[375,-111,431,0,0,0,0],
AUTHORITY[["EPSG","6277"]],
PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
UNIT["DMSH",0.0174532925199433,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",0.999601272],
PARAMETER["false_easting",400000],
PARAMETER["false_northing",-100000],
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"]]
9
PROJCS
["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001",
GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]
],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]
],
PROJECTION["Lambert_Conformal_Conic"],
PARAMETER["False_Easting",200000.0],
PARAMETER["False_Northing",750000.0],
PARAMETER["Central_Meridian",-71.5],
PARAMETER["Standard_Parallel_1",41.71666666666667],
PARAMETER["Standard_Parallel_2",42.68333333333333],
PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0]
]
10
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.
11
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
12
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:100.000)
- Mała skala (1.200.000)
-Żródło: http://edc.usgs.gov/productes/map/dla.html
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)
13
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)
http://postgis.refractions.net/
• Technologia analogiczna do ArcSDE (vector data component) oraz and Oracle Spatial
14
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
15
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.
16
17
18
19
20
21
22
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
23
NAKŁADANIE WARSTW TEMATYCZNYCH JAKO METODA
INTEGRACJI DANYCH
Sposoby realizacji nakładania warstw:
suma (OR)
przecięcie (AND)
przycinanie (NOT)
24
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
25
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
26
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.
27
BUFOROWANIE WIELOBOKÓW
Dla wieloboków obszar buforowy może znajdować się na zewnątrz lub/i wewnątrz
wieloboku
28
PRZYKŁADOWE NAKLADKOWANIE WARSTW WEKTOROWYCH
WRAZ DIAGRAMEM VORONOI
29
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
30
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
31
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.
32
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.
33
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):
34
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=i1 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).
35
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.
36
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.
37
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 .
38
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.
39
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.
40
PRZYKŁADOWA TRIANGULACJA DELAUNEY
41
PRZYKŁADOWY DIAGRAM VORONOI
42
43
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
44
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.
45
TWORZENIE DIAGRAMU VORONOI
Wyznaczenie pierwszej półpłaszczyzny
46
TWORZENIE DIAGRAMU VORONOI
Wyznaczenie drugiej półpłaszczyzny
47
TWORZENIE DIAGRAMU VORONOI
Powtarzamy operacje
dla każdego punktu
Czas:
O( n2 log n )
48
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

49
50
51
52
TWORZENIE DIAGRAMU VORONOI
Niezmiennik algorytmu
q
pi
Sweep Line
v
e
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).
53
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
54
TWORZENIE DIAGRAMU VORONOI
Punkty graniczne tworzą krawędzie (Break points) Voronoi.
q
pi
Sweep Line
Equidistance
55
TWORZENIE DIAGRAMU VORONOI
Łuki rozszerzają się w miarę przesuwania prostej zamiatającej w
dół płaszczyzny
q
pi
Sweep Line
56
TWORZENIE DIAGRAMU VORONOI
W końcu środkowy łuk zanika.
q
pi
Sweep Line
57
TWORZENIE DIAGRAMU VORONOI
Wykryto pusty okrąg (nie zawiera punktów - sites) i przechodzi
przez przynajmniej 3 punkty.
q
pi
Sweep Line
Voronoi vertex!
58
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ę.
59
STRUKTURY DANYCH

Bieżący stan diagramu Voronoi
 Dwukierunkowa
lista półkrawędzi, wierzchołków,
komórek

Bieżący stan prostej granicznej (bl)
 Monitoruje
 Monitoruje
punkty graniczne bp (break points)
ł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
60
LISTA DWUKIERUNKOWA (D)

Zadanie: prosta struktura danych zapewniająca przechodzenie
segmentów Voronoi, komórek Voronoi i wierzchołków Voronoi
Cell(pi)
v
e
61
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
Cell(pi)
v
e
62
LISTA DWUKIERUNKOWA (D)

Tablica komórek - Cell Table
 Cell(pi)

Tablica wierzchołków - Vertex Table
 vi :

: pointer to any incident half-edge
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
63
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)
< pj, pk>
pi
pi
< pi, pj>
< pk, pl>
pj
pl
pk
pj
pk
pl
l
64
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
65
SITE EVENT
Nowy łuk powstaje podczas napotkania nowego punktu
l
66
SITE EVENT
Nowy łuk powstaje podczas napotkania nowego punktu
l
67
SITE EVENT
Pierwotny łuk ponad nowym punktem zostaje
podzielony na dwa nowe
 Liczba łuków na linii granicznej bl - O(n)
l
68
CIRCLE EVENT
Łuk zanika gdy pusty okrąg styczny jest do trzech lub więcej punktów
i do prostej zamiatającej.
q
pi
Circle Event!
Sweep Line
Voronoi vertex!
Prosta zamiatająca pomaga określić czy okrąg
jest rzeczywiście pusty.
69
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
70
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
71
ALGORYTM FORTUNE VORONOI
Inicjalizacja
1.
•
•
•
2.
Event queue Q  all site events
Binary search tree T  
Doubly linked list D  
While Q not ,
•
Remove event (e) from Q with largest ycoordinate

HandleEvent(e, T, D)
72
OBSŁUGA SITE EVENTS
1.
2.
3.
4.
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ń
73
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>
pi
< pi, pj>
pj
pk
pl
< pk, pl>
pm l
pi
pj
pk
pl
74
PODZIAŁ ŁUKU
Odpowiadający liść zostaje zamieniony nowym poddrzewem
< pj, pk>
< pi, pj>
pi
pj
< pk, pl>
< pl, pm>
pk
pi
< pm, pl>
pl
pm
pl
pj
pk
pl
pm
Różne łuki można zidentyfikować
75
poprzez ten sam punkt!
l
DODANIE NOWEGO REKORDU KRAWĘDZI W DWUKIERUNKOWEJ
LIŚCIE
New Half Edge Record
Endpoints  
< pj, pk>
< pi, pj>
pi
pj
< pk, pl>
< pl, pm>
pk
pi
< pm, pl>
pl
pm
pl
Wskaźniki do rekordów
półkawędzi
pj
pl
pk
pm
l
76
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
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
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)80
OBSŁUGA SITE EVENTS
1.
2.
3.
4.
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
81
OBSŁUGA SITE EVENTS
1.
2.
3.
4.
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
82
CIRCLE EVENT
< pj, pk>
< pi, pj>
pi
pj
< pk, pl>
< pl, pm>
pk
pi
pk
pl
pj
< pm, pl>
pl
pm
pm
l
pl
83
DADANIE WIERZCHOŁKA DO REKORDU KRAWĘDZI
Link!
Half Edge Record
Endpoints.add(x, y)
< pj, pk>
< pi, pj>
pi
pj
< pk, pl>
< pl, pm>
pk
pi
Half Edge Record
Endpoints.add(x, y)
pk
pl
pj
< pm, pl>
pl
pm
pm
l
pl
84
USUNIĘCIE ZNIKAJĄCEGO ŁUKU
< pj, pk>
< pi, pj>
pi
pj
pi
pk
pk
pl
pj
< pm, pl>
pm
pm
l
pl
85
USUNIĘCIE ZNIKAJĄCEGO ŁUKU
< pj, pk>
< pi, pj>
pi
pj
< pk, pm>
< pm, pl>
pk
pi
pk
pl
pj
pm
pl
pm
l
86
UTWORZENIE NOWEGO REKORDU KRAWĘDZI
< pj, pk>
< pi, pj>
pi
pj
New Half Edge Record
Endpoints.add(x, y)
< pk, pm>
< pm, pl>
pk
pi
pk
pl
pj
pm
pl
pm
l
Nowa krawędź z nowego punktu
granicznego (break point) < pk, pm>
87
SPRAWDZENIE NOWYCH TRÓJEK DLA
potential circle events
< pj, pk>
< pi, pj>
pi
pj
< pk, pm>
< pm, pl>
pk
pi
pk
pl
pj
pm
Q
…
pl
y
new circle event
pm
l
88
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
89
ZAKOŃCZENIE DZIAŁANIA ALGORYTMU
< pj, pk>
< pi, pj>
pi
pj
< pk, pm>
< pm, pl>
pk
pi
pk
pl
pj
pm
Q
pl
pm

l
90
ZAKOŃCZENIE DZIAŁANIA ALGORYTMU
< pj, pm>
< pm, pl>
< pi, pj>
pi
pi
pj
pm
pl
pk
pl
pj
pm
Q

l
91
ZAKOŃCZENIE DZIAŁANIA ALGORYTMU
< pj, pm>
< pm, pl>
< pi, pj>
pi
pi
pj
pm
pl
Zakończyć półproste
prostokatem ograniczającym!
Q
pk
pl
pj
pm

l
92
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
93
94
INTERPOLACJA W MODELU TIN
95
GRID IZOLINIE TIN
96
LITERATURA
Allen Miu, 6.838 Computational Geometry
97