Guofeng Cao CyberInfrastructure and Geospatial Information Laboratory Department of Geography National Center for Supercomputing Applications (NCSA) University.

Slides:



Advertisements
Similar presentations
Comments We consider in this topic a large class of related problems that deal with proximity of points in the plane. We will: 1.Define some proximity.
Advertisements

Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Planar Orientations Chapter 4 ( ) in the book Written By: Tomer Heber.
Approximations of points and polygonal chains
2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
 Distance Problems: › Post Office Problem › Nearest Neighbors and Closest Pair › Largest Empty and Smallest Enclosing Circle  Sub graphs of Delaunay.
Brute-Force Triangulation
Computational Geometry II Brian Chen Rice University Computer Science.
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or.
Extended Gaussian Images
WFM 6202: Remote Sensing and GIS in Water Management © Dr. Akm Saiful IslamDr. Akm Saiful Islam WFM 6202: Remote Sensing and GIS in Water Management Akm.
The Divide-and-Conquer Strategy
Convex Hulls in Two Dimensions Definitions Basic algorithms Gift Wrapping (algorithm of Jarvis ) Graham scan Divide and conquer Convex Hull for line intersections.
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
Discrete Geometry Tutorial 2 1
Spatial Information Systems (SIS)
2. Voronoi Diagram 2.1 Definiton Given a finite set S of points in the plane , each point X of  defines a subset S X of S consisting of the points of.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
3. Delaunay triangulation
Graph Drawing Introduction 2005/2006. Graph Drawing: Introduction2 Contents Applications of graph drawing Planar graphs: some theory Different types of.
Graph & BFS.
3 -1 Chapter 3 The Greedy Method 3 -2 The greedy method Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each.
Representation and algorithms
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Randomized Planning for Short Inspection Paths Tim Danner Lydia E. Kavraki Department of Computer Science Rice University.
UNC Chapel Hill M. C. Lin Overview of Last Lecture About Final Course Project –presentation, demo, write-up More geometric data structures –Binary Space.
Computing the Delaunay Triangulation By Nacha Chavez Math 870 Computational Geometry; Ch.9; de Berg, van Kreveld, Overmars, Schwarzkopf By Nacha Chavez.
1 University of Denver Department of Mathematics Department of Computer Science.
Complex Model Construction Mortenson Chapter 11 Geometric Modeling
Area, buffer, description Area of a polygon, center of mass, buffer of a polygon / polygonal line, and descriptive statistics.
C o n f i d e n t i a l HOME NEXT Subject Name: Data Structure Using C Unit Title: Graphs.
Spatial data models (types)
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
Guofeng Cao CyberInfrastructure and Geospatial Information Laboratory Department of Geography National Center for Supercomputing Applications (NCSA) University.
Relative Location of a Point with Respect to a Straight Line (0,0) 5 5 (2, 2) (4, 5) (0, 5) (6, 3) -3x + 2y +2 = 0 s = A x t + B y t + C s < 0 s > 0.
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
UNC Chapel Hill M. C. Lin Point Location Reading: Chapter 6 of the Textbook Driving Applications –Knowing Where You Are in GIS Related Applications –Triangulation.
Chapter 2 Graph Algorithms.
 Trace the incremental algorithm for constructing convex data on the sample point data given below. Intermediate steps should be shown First, two steps.
Chapter 3 Digital Representation of Geographic Data.
5 -1 Chapter 5 The Divide-and-Conquer Strategy A simple example finding the maximum of a set S of n numbers.
Week Aug-17 – Aug-22 Introduction to Spatial Computing CSE 5ISC Some slides adapted from Worboys and Duckham (2004) GIS: A Computing Perspective, Second.
Week Aug-24 – Aug-29 Introduction to Spatial Computing CSE 5ISC Some slides adapted from Worboys and Duckham (2004) GIS: A Computing Perspective, Second.
Spatial Databases: Digital Terrain Model Spring, 2015 Ki-Joune Li.
TEL-AVIV UNIVERSITY RAYMOND AND BEVERLY SACKLER FACULTY OF EXACT SCIENCES SCHOOL OF MATHEMATICAL SCIENCES An Algorithm for the Computation of the Metric.
L8 - Delaunay triangulation L8 – Delaunay triangulation NGEN06(TEK230) – Algorithms in Geographical Information Systems.
1 11. Polygons Polygons 2D polygons ( 다각형 ) –Polygon sides are all straight lines lying in the same plane 3D polyhedra ( 다면체 )  chap. 12 –Polyhedra.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
Geometric Data and Representation Pattern Recognition 2015/2016 Marc van Kreveld.
1/57 CS148: Introduction to Computer Graphics and Imaging Geometric Modeling CS148 Lecture 6.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Triangles "Philosophy is written in this grand book--I mean the universe--which stands continually open to our gaze, but it cannot be understood unless.
CMPS 3130/6130 Computational Geometry Spring 2017
Introduction to Spatial Computing CSE 555
Physical Structure of GDB
Grids Geometry Computational Geometry
Grids Geometry Computational Geometry
Principles of GIS Geocomputation – Part II Shaowen Wang
Grids Geometry Computational Geometry
Graphs Chapter 11 Objectives Upon completion you will be able to:
Spatial Databases: Digital Terrain Model
Spatial Databases: Digital Terrain Model
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Algorithms and Data Structures Lecture XIV
Presentation transcript:

Guofeng Cao CyberInfrastructure and Geospatial Information Laboratory Department of Geography National Center for Supercomputing Applications (NCSA) University of Illinois at Urbana-Champaign Geog 480: Principles of GIS

What we have learned Ontology vs. Modeling Field-based model o Spatial framework, spatial fields o Continuous and differential fields o Isotopic fields and anisotropic fields o Spatial autocorrelation o Map algebra: Local, focal, zonal operations Object-based model o Spatial objects o Topological spatial operations o Euclidean spatial operations

What we have learned Spatial point patterns The Modified Areal Unit Problem (MAUP) o Scale effect, zonal effect o ecological fallacy SQL hands on o Join, view

Representation and algorithms

Traditional computing depends upon 1D data Moving to 2D data is a bigger jump than it might seem Computing with geospatial data Disjoint Touching externally Overlapping Touching internally Nested Equal

Algorithms An algorithm is a specification of a computational process required to perform some operation For a given algorithm, we are usually interested in how efficient it is. Efficient algorithms require less computing resources when actually implemented The efficiency of an algorithm is usually measured in terms of the time the algorithm uses, called time complexity or the amount of storage space required, called space complexity o For example, the time required to compute the breadth first search for any graph G = (V, E) is proportional to |V|, the number of input nodes We use the “big-oh” notation to classify algorithms according to time complexity o O(n) stands for the set of algorithms that have a time complexity that is at most linearly proportional to n

Complexity X X X X10 30 Approximate values of common functions Common time complexity orders O(1)Constant timeVery fast O(log e n)Logarithmic timeFast O(n)O(n)Linear timeModerate O(n logn)Sub-linear timeModerate O(nk)O(nk)Polynomial timeSlow O(kn)O(kn)Exponential timeIntractable

The discrete Euclidean plane

Geometric domains Geometric domain is a triple, where: o G, the domain grid, is a finite connected portion of the discrete Euclidean plane, Z 2 o P is a set of points in Z 2 o S is a set of line segments in Z 2 Subject to the following closure conditions: o Each point of P is a point in the domain grid G o Any line segment in S must have its end-points as members of P o Any point in P that is incident with a line segment in S must be one of its end-points o If any two line segments in S intersect as a point, then that point must be a member of P

Grid structures A structure that forms a geometric domain A structure that does not form a geometric domain

Discretization Discretization: moving data from a continuous to a discrete domain (some precision will be lost)

Discretization The chain axyzb has strayed well away from the original line segment ab

Green-Yao Algorithm The drifting line problem can be solved using the Green- Yao algorithm

Discretizing arcs Line simplification: reducing the level of detail in the representation of a polyline, while still retaining its essential geometric character

The spatial object domain

Spaghetti Spaghetti data structure represents a planar configuration of points, arcs, and areas Geometry is represented as a set of lists of straight-line segments There is NO explicit representation of the topological interrelationships of the configuration, such as adjacency

Spaghetti- example Each polygonal area is represented by its boundary loop Each loop is discretized as a closed polyline Each polyline is represented as a list of points A:[1,2,3,4,21,22,23,26,27,28,20,19,18,17] B:[4,5,6,7,8,25,24,23,22,21] C:[8,9,10,11,12,13,29,28,27,26,23,24,25] D:[17,18,19,20,28,29,13,14,15,16]

NAA: node arc area Each directed arc has exactly one start and one end node. Each node must be the start node or end node (maybe both) of at least one directed arc. Each area is bounded by one or more directed arcs. Directed arcs may intersect only at their end nodes. Each directed arc has exactly one area on its right and one area on its left. Each area must be the left area or right area (maybe both) of at least one directed arc.

NAA: planar decomposition ArcBeginEndLeftRight a12AX b41BX c34CX d23DX e51AB f45CB g62DA h56CA i36DC

NAA: planar decomposition ARC(ARC ID, BEGIN_NODE, END_NODE, LEFT_AREA, RIGHT_AREA) POLYGON(AREA ID, ARC ID, SEQUENCE_NO) POLYLINE(ARC ID, POINT ID, SEQUENCE_NO) POINT(POINT ID, X_COORD,Y_COORD) NODE(NODE ID, POINT_ID)

DCEL: doubly connected edge list Omits details of the actual embedding Focuses on the topological relationships embodied in the entities node, arc (edge), and area (face) One table provides the information to construct: The sequence (cycle) of arcs around the node for each node in the configuration; and The sequence (cycle) of arcs around the area for each node in the configuration Every arc has a unique next arc and a unique previous arc

DCEL: doubly connected edge list Arc IDBEGIN NODE END NODE LEFT AREA RIGHT AREA PREVIOUS ARC NEXT ARC a12AXed b41BXfa c34CXIb d23DXgc e51ABhb f45CBce g62DAIa h56CAfg i36DCdh

Algorithms Input: Node n 1: find some arc x which is incident with n 2: arc x 3: repeat 4:store arc in sequence s 5:if begin_node(arc) = n then 6:arc previous_arc (arc) 7:else 8:arc next_arc(arc) 9: until arc = x Output: Counterclockwise sequence of arcs s Counterclockwise sequence of arcs surrounding node n

Algorithms Input: Area X 1: find some arc x which bounds X 2: arc x 3: repeat 4:store arc in sequence s 5:if left_area(arc) = X then 6:arc previous_arc (arc) 7:else 8:arc next_arc(arc) 9: until arc = x Output: Clockwise sequence of arcs s Clockwise sequence of arcs surrounding area X

Representations of field-based models

Regular tessellated representations Tessellations: a partition of the plane as the union of a set of disjoint areal objects Regular polygon: a polygon with all edges the same length and all internal angles equal Vertex figure: the polygon formed by joining in order the mid points of all edges incident with the vertex Regular tessellation: a tessellation of a surface for which all the participating polygons and vertex figures are regular and equal Square grid is most commonly used regular tessellation o Provides the raster representation of spatial data

Irregular tessellated representations Irregular tessellation: a tessellation for which the participating polygons are not all regular and equal TIN (triangulated irregular networks) is the most commonly used irregular tessellations The irregularity of a TIN allows the resolution to vary over the surface, capturing finer details where required Useful notion is duality of planar graphs (discussed in Chapter 3), where faces become nodes and nodes become faces

Interpolating height h x Point x is inside or on the boundary of the triangle abc, x =  a +  b +  c Where , , and  are scalar coefficients that can be uniquely determined, such that (barycentric coordinates):  +  +  = 1 The height h x can now be found by using h x =  h a +  h b +  h c

Delaunay triangulation Delaunay triangulation: constituent triangles in a Delaunay triangulations are “as nearly equilateral as possible” o Each circumcircle of a constituent triangle does not include any other triangulation point within it Proximal polygon: A region R p around a point p with the property that every location in R p is nearer to p than to any other point Voronoi diagram: the dual of a Delaunay triangulations o The set of proximal polygons constitutes a Voronoi diagram

Delaunay triangulation Circumcircles of a Delaunay triangulation Voronoi diagramDelaunay triangulation

Properties of Delaunay triangulations Given an initial point set P for which no sets of three points are collinear (to avoid degenerate cases) The Delaunay triangulation is unique The external edges of the triangulation from the convex hull of P (i.e., the smallest convex set containing P) The circumcircles of the triangles contain no members of P in their interior The triangles in a Delaunay triangulation are best-possible with respect to regularity (closest to equilateral)

Triangulation of polygons Constrained Delaunay triangulation: constrained to follow a given set of edges Delaunay triangulation Constrained triangulation includes the edge ab, which is not part of the Delaunay triangulation

Tessellation of the sphere Regular tessellation of the sphere correspond to the five Platonic solids of antiquity: o Tetrahedron Four spherical triangles (with internal angle of 120°) bounded by parts of great circles Three triangles meet at each vertex o Cube o Octahedron Initially eight triangular facets, each having an internal angle of 90° Four triangles meet at each vertex o Dodecahedron o Icosahedrons

Fundamental geometric algorithms

Distance and angle between points Length of a line segment can be computed as the distance between successive pairs of points The bearing, , of q from p is given by the unique solution in the interval [0,360[ of the simultaneous equations:

Distance from point to line Distance from a point to a line implies minimum distance For a straight line segment, distance computation depends on whether p is in middle(l) or end(l) For a polyline, distance to each line segment must be calculated A polygon calculation is as for polyline (distance to boundary of polygon)

Area Let P be a simple polygon (no boundary self-intersections) with vertex vectors: (x 1, y 1 ), (x 2, y 2 ),..., (x n, y n ) where (x 1, y 1 ) = (x n, y n ) Then the area is: In the case of a triangle pqr

Area of a simple polygon Note that the area may be positive or negative In fact, area(pqr) = -area(qpr) If p is to the left of qr then the area is positive, if p is to the right of qr then the area is negative

Centroid The centroid of a polygon (or center of gravity) of a (simple) polygonal object (P = (x 1, y 1 ), (x 2, y 2 ),..., (x n, y n ) where (x 1, y 1 ) = (x n, y n )) is the point at which it would balance if it were cut out of a sheet of material of uniform density:

Point in polygon Determining whether a point is inside a polygon is one of the most fundamental operations in a spatial database Semi-line algorithm: checks for odd or even numbers of intersections of a semi-line with polygon Winding algorithm: sums bearings from point to polygon vertices

Collinearity and point on segment Boolean operation colinear(a,b,c) determine whether points a, b and c lie on the same straight line Colinear(a,b,c) = true if and only if side (a,b,c) =0 Operation point_on_segment(p,l) returns the Boolean value true if p 2 l (line segment l having end-points q and r) Determine whether p, q, r are collinear If yes, then p 2 l if and only if p 2 (minimum bounding box) MMB (l)

Segment intersection Two line segments ab and cd can only intersect if a and b are on opposite sides of cd and c and d are on opposite sides of ab Therefore two line segments intersect if the following inequalities hold

Point of intersection Intersecting line segments l and l 0 in parametric form: Means that there exists an  and  such that: Which solving for  and  give:

Intersection, union and overlay of polygons

Triangulation algorithms: Delaunay Input: n points p 1, …, p n in the Euclidean plane 1: sort the n input points into ascending order of x-coordinates, with ties sorted by y-coordinate 2: divide the points into two roughly equal halves L and R 3: if |L| > 3 then 4:recursively apply triangulation algorithm on L to create T(L); similarly if |R|> 3 recursively create T(R) 5: else 6: if |L| = 2(i.e., L = {l 1,l 2 }) then 7: create T(L) containing edge l 1 l 2 ;similarly for T(R) 8:if |L| = 3 (i.e., L = {l 1,l 2,l 3 }) then 9:create T(L) containing triangle l 1 l 2 l 3 ;similarly for T(R) 10: merge T(L) and T(R) by triangulating R(L) [ T(R) Output: Delaunay triangulation T of points p 1,…,p n

Delaunay triangulation (merge) a. unmergedb. merged

Vectorization and rasterization

Vectorization Converting data from raster to vector format Steps for vectoriazation 1.Thresholding- form a binary image from a raster 2.Smoothing- remove random noise 3.Thinning- thin lines so that they are one pixel in width 4.Chain coding- transform the thinned raster image into a collection of chains of pixels each representing an arc 5.Transform each chain of pixels into a sequence of vectors

Thinning Zhang-Suen erosion algorithm for raster thinning Input m x n binary raster(0 = white,1=black) 1. repeat 2:for all points p in the raster do 3:if 2 <= N(p) <= 6 and T(p) = 1 and p N * p S * p E =0 and p W * p E * p S =0 then mark p 4:if there are no marked point then halt 5:else set all marked points to value 0 6: for all points p in the raster do 7:if 2 <= N(p)<= 6 and T(p) = 1 and p N * p S * p E =0 and p W * p E * p N =0 then mark p 8:set all marked points to value 0 9: until there are no marked points 10:Output:m x n thinned binary raster (black is thinned)

Example Successive stages of an erosion

Network representation and algorithms

Network representation abcdefgh a b c d e f g h Adjacency matrix Graph {(ab,20), (ag,15), (bc,8), (bd,9), (cd,6), (ce,15), (ch,10), (de,7), (ef,22), (eg,18)} Set of labeled edges

Network representation a(b,20), (g,15) b(a,20), (c,8), (d,9) c(b,8), (d,6), (e,15), (h,10) d(b,9), (c,6), (e,7) e(c,15), (d,7), (f,22), (g,18) f(e,22) g(a,15), (e,18) h(c,10) Adjacency list Good balance between storage efficiency and computational efficiency

Depth first traversals Input: Adjacency matrix M, starting node s 1. stack S [s], visited set V ; 2: while S is not empty do 3:remove the first node x from S 4:add x to V 5: for each node y 2 M adjacent to x do 6: if y  V and y  S then add y to the beginning of S nSV 1[b][b]{ } 2[a,c,d]{b}{b} 3[g,c,d]{b,a} 4[e,c,d]{b,a,g} 5[f,c,d]{b,a,g,e} 6[c,d]{b,a,g,e,f} 7[h,d]{b,a,g,e,f,c} 8[d][d]{b,a,g,e,f,c,h} 9[ ]{b,a,g,e,f,c,h,d}

Breadth first traversals Input: Adjacency matrix M, starting node s 1. queue QÃ [s], visited set V Ã ; 2: while Q is not empty do 3:remove the first node x from Q 4:add x to V 5: for each node y 2 M adjacent to x do 6: if y  V and y  Q then add y to the end of Q nQV 1[b][b]{} 2[a,c,d]{b}{b} 3[c,d,g]{b,a} 4[d,g,e,h]{b,a,c,} 5[g,e,h]{b,a,c,d,g} 6[e,h]{b,a,c,d,g,} 7[h,f]{b,a,c,d,g,e} 8[f][f]{b,a,c,d,g,e,h} 9[ ]{b,a,c,d,g,e,h,f}

Shortest path-Dijkstra’s algorithm Input: Undirected simple connected graph G = (N,E), starting node s N, weighting function w : E R +, target weighting function t :N R + 1: initialize t(n) ∞ for all n N, visited node set V {s} 2: set t(s) 0 3: for all n N such that edge sn E do 4:set t(n) w(sn) 5: while N  V do 6:find, by sorting, n N \ V such that t(n) is minimized 7: add n to V 8: for all m N \ V such that edge nm E do 9: t(m) min(t(m),t(n) + w(nm)) Output: Graph weights t : N R + Time complexity O(n 2 )

Dijkstra’s algorithm First iterationSecond iterationThird iterationFourth iteration

Shortest path- A* algorithm Goal directed At each iteration it preferentially visits those nodes that are closest to the destination node o Requires an evaluation function Euclidean distance Improvement on Dijkstra's algorithm for average case time complexity when: o Computing goal-directed shortest paths o where a suitable evaluation function exists

Transitive closure Augments the edge set of a network by placing and edge between two nodes if they are connected by some path Deciding whether two nodes are connected is a matter of searching through the edges of the transitive closure of the network

Traveling salesperson algorithm Computes the round-trip traversal of an edge-weighted network o Visits all nodes in such a way that the total weight for the traversal is minimized Heuristic methods, such as at each stage visiting the nearest unvisited node, allow good approximations in reasonable time Is a member of a class of problems termed NP-complete

End of this topic