Download presentation
Presentation is loading. Please wait.
Published byRoy Short Modified over 9 years ago
1
Week Aug-17 – Aug-22 Introduction to Spatial Computing CSE 5ISC Some slides adapted from Worboys and Duckham (2004) GIS: A Computing Perspective, Second Edition, CRC Press
2
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 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(n) stands for the set of algorithms that have a time complexity that is at most linearly proportional to n
3
Common 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 We all like these Not so much!
4
What about the complexity of these tasks? Can even have a correct and complete algorithm? Examples: Geo-locate all human settlements e.g. tents (or usable roads) after an earthquake. You are given aerial images. Given a digital satellite image, create an object based model for water bodies including wells (points), streams (line string) and lakes (polygons). Given a news article (e.g. those from Google News), photograph, or video-clip, identify the geographic location it is describing. Given postal addresses of hotels, determine the hotel closest to a specified point of interest (POI). Assume the availability of a geo-coding service to convert postal addresses to geographic point-locations
5
Special Considerations for Discrete Euclidean Plane
6
Geometric domains Geometric domain is a triple, where: G, the domain grid, is a finite connected portion of the discrete Euclidean plane, Z 2 P is a set of points in Z 2 S is a set of line segments in Z 2 Subject to the following closure conditions: Each point of P is a point in the domain grid G Any line segment in S must have its end-points as members of P Any point in P that is incident with a line segment in S must be one of its end-points If any two line segments in S intersect as a point, then that point must be a member of P
7
Grid Structures A structure that forms a geometric domain A structure that does not form a geometric domain
8
Discretization Discretization : moving data from a continuous to a discrete domain (some precision will be lost) Can snap the intersection point to a nearest gird point? Point x in this example May not always work. Here the intersection point change its location with respect to line ef
9
Discretization – Drifting problem The chain axyzb has strayed well away from the original line segment ab Say we go ahead snapping the intersection point to the grid point x anyways
10
Green Yao Algorithm for Drifting problem Imagine pegs put on the grid points. Lines are imagined to be rubber strings Lines can be stretched to include a point, but not cross a peg.
11
Green Yao Algorithm for Drifting problem
12
Discretizing Arcs
14
Spatial Algorithms for Raster data
15
Calculating Accumulated Water flow 1111 1111 1111 1111 Given the elevation filed of an geographic region. Compute the water accumulated Assume that water flows along the direction of steepest flow 90807035 85756555 701005040 60554530 Rainfall FieldElevation Field 0005 0000 0000 00011 Accumulated water Is this a local, focal or a zonal operation?
16
Intuition for Algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform a depth first search from each node. Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Gradient Descent Graph
17
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
18
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
19
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
20
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
21
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
22
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
23
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
24
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
25
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
26
Intuition for algorithm Construct a gradient descent graph. Each node is connected to node with greatest descent. Reverse the edges. Perform depth first search from each node to get Total water at a node = water from its descendants + self water 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
27
Question What should be the termination condition for the algorithm? Does it need to keep track of any other information during the depth first search? Hint: Think “what operation would get me to the equilibrium stage of accumulation?” 90807035 85756555 701005040 60554530 Elevation Field A ABCD EFGH IJKL MNOP B CD EF GH IJ K L MN OP Reverse Gradient Descent Graph
28
Pseudo-Code (1/2) Input: Gradient descent graph with a set of N nodes and E edges. Each node is contains a value (rvalue) which denotes the amount of rainfall it received. Output: Modified gradient descent graph where each node contains the accumulated rain in its “rvalue” attribute.
29
Pseudo-Code (2/2) What is the time complexity of the algorithm?
30
Spatial Algorithms for Point Data
31
Convex Hull of N points in a plane Slides Adapted from http://www.cs.uu.nl/docs/vakken/ga/slides1.pdf Definition: Given set of N points in the Euclidean plane, convex hull is the minimum area convex region that contains every point. Intuition: points are nails perpendicular to plane, stretch an elastic rubber bound around all points; it will minimize length. The input at 2N coordinates. Size of the convex hull O(N) Sample Convex Hull
32
Convex Hull of N points in a plane Slides Adapted from http://www.cs.uu.nl/docs/vakken/ga/slides1.pdf Definition: Given set of N points in the Euclidean plane, convex hull is the minimum area convex region that contains every point. Intuition: points are nails perpendicular to plane, stretch an elastic rubber bound around all points; it will minimize length. The output is returned as a sorted sequence of the points, clockwise (CW) along the boundary Sample Convex Hull
33
Intuitions used in the Algorithm Property: The vertices of the convex hull are always points from the input. Consequently, the edges of the convex hull connect two points of the input Property: The supporting line of any convex hull edge has all input points to one side all points lie right of the directed line from p to q, if the edge from p to q is a convex hull edge
34
Intuitions used in the Algorithm Property: The vertices of the convex hull are always points from the input. Consequently, the edges of the convex hull connect two points of the input Property: The supporting line of any convex hull edge has all input points to one side all points lie right of the directed line from p to q, if the edge from p to q is a convex hull edge
35
Simple Algorithm for Convex Hull
36
Incremental Algorithm for Convex Hull Main idea: Sort the points from left to right (= by x-coordinate). Insert the points in this order, and maintain the upper hull so far First compute the upper boundary of the convex hull and then the lower part.
37
Incremental Algorithm for Convex Hull Observation: from left to right, there would be only right turns on the upper hull. Right Turn
38
Incremental Algorithm for Convex Hull Initialize by inserting the leftmost two points
39
Incremental Algorithm for Convex Hull If we add the third point there will be a right turn at the previous point, so we add it P3 P4 P5 P6 P7 P8
40
Incremental Algorithm for Convex Hull If we add the fourth point we get a left turn at the third point P3 P4 P5 P6 P7 P8
41
Incremental Algorithm for Convex Hull …..so we remove the third point from the upper hull when we add the fourth P3 P4 P5 P6 P7 P8
42
Incremental Algorithm for Convex Hull If we add the fifth point we get a left turn at the fourth point P3 P4 P5 P6 P7 P8
43
Incremental Algorithm for Convex Hull ….so we remove the fourth point when we add the fifth P3 P4 P5 P6 P7 P8
44
Incremental Algorithm for Convex Hull If we add the sixth point we get a right turn at the fifth point, so we just add it P3 P4 P5 P6 P7 P8
45
Incremental Algorithm for Convex Hull We also just add the seventh point as it was also a right turn. P3 P4 P5 P6 P7 P8
46
Incremental Algorithm for Convex Hull When adding the eight point (a left turn) we must remove the seventh point P3 P4 P5 P6 P7 P8
47
Incremental Algorithm for Convex Hull ….we must also remove the seventh point. It is also a left turn from current edge. P3 P4 P5 P6 P7 P8
48
Incremental Algorithm for Convex Hull …. and also the sixth point. P3 P4 P5 P6 P7 P8
49
Incremental Algorithm for Convex Hull …. and also the fifth point. P3 P4 P5 P6 P7 P8
50
Incremental Algorithm for Convex Hull After two more steps we get the result.
51
Pesudo-code for the Incremental algorithm
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.