Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ

Podobne prezentacje


Prezentacja na temat: "GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ"— Zapis prezentacji:

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

7

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.

17

18

19

20

21

22

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

43

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

50

51

52

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

94

95 INTERPOLACJA W MODELU TIN

96 GRID IZOLINIE TIN

97 Allen Miu, 6.838 Computational Geometry
LITERATURA Allen Miu, Computational Geometry


Pobierz ppt "GIS – SYSTEMY INFORMACJI GEOGRAFICZNEJ"

Podobne prezentacje


Reklamy Google