Lasse Deleuran 1/37 Homotopic Polygonal Line Simplification Lasse Deleuran PhD student
Lasse Deleuran 2/37 Content Motivation Our Results Restricted simplification Unrestricted simplification Simplifying massive data
Lasse Deleuran 3/37 Motivation – Contour Lines
Lasse Deleuran 4/37 Motivation – Contour Lines
Lasse Deleuran 5/37 Motivation – Contour Lines
Lasse Deleuran 6/37 Motivation – Contour Lines
Lasse Deleuran 7/37 Our Results “Improving Homotopic Shortest Paths Using Homotopic X-Shortest Paths”, M. Abam and L. Deleuran, TBS “Computing Homotopic Line Simplification in a Plane”, M. Abam, S. Daneshpajouh, L. Deleuran, S. Ehsani and M. Ghodsi, EuroCG 2011, Submitted to CGTA 2012 “Simplifying Massive Contour Maps”, L. Arge, L. Deleuran, T. Mølhave, M. Revsbæk, and J. Truelsen, ESA, 2012
Lasse Deleuran 8/37 Definitions Polygonal line: P=p 1, p 2, …,p n |P| = n-1 Homotopic poly. lines:
Lasse Deleuran 9/37 Homotopic X-Shortest Paths n polygonal paths of combined size m Endpoints are the obstacles Compute x-shortest path while maintaining homotopy
Lasse Deleuran 10/37 Shortest Paths – Previous Work Efrat et al. ’06: expected time O(nlog ε+1 n+mlogn) Bespamyathnikh ’03: O(nlog ε+1 n+mlogn) 2-part approach:1) Compute homotopic x-shortest paths 2) Compute homotopic shortest paths Use their 2. part to achieve O(nlog ε+1 n+m)
Lasse Deleuran 11/37 Restricted - Problem Definition Given a path of size n, compute the paths with fewest points while Only using original points Maintaining some error constraint Maintaining homotopy to m obstacle points Strong vs weak homotopy:
Lasse Deleuran 12/37 Restricted - Previous Results Previous Results Imai & Iri ‘88: Framework for the problem Hausdorff: Chan & Chin ’92 O(n 2 ) Frechét Distance: Alt & Goday ’95 O(n 3 ) L 1 and Uniform metric: Agarwal & Varadarajan ’00 O(n 4/3+ ε ) Our Results Compute strongly homotopic ”links” X-monotone path in O(mlog(nm) + nlogn log(nm) + k) Any path in O(n(m + n)log(nm)) Compute homotopic shortest path in O(n 6 m 2 )
Lasse Deleuran 13/37 Previous Results Problems Our Algorithm Experimental Results Simplifying a Massive Ammount of Polygons
Lasse Deleuran 14/37 Previous Results: Terrain vs Polygons Simplifying terrain Agarwal, et. al. ’98 (I/O efficient contour generation) Agarwal, et. al. ’08 (I/O efficient map generation) Carr, et. al. ’10 (DEM Simplification) Garland & Heckbert ’97 (Surface Simplification) Agarwal, et. al. ’06 (I/O efficient conditioning) Simplifying polygons See surveys by Mitchell ‘97, ‘98
Lasse Deleuran 15/37 Challenges when Simplifying Too many details Massive data Maintain precision Maintain topology Prevent intersections
Lasse Deleuran 16/37 Challenges – Too Many Details
Lasse Deleuran 17/37 Challenges - Massive Data Denmark: 26B LIDAR points 12.4B grid cells
Lasse Deleuran 18/37 Challenges - Massive Data: I/O Model RAM/internal memory size M Unbounded disk/external memory Transfer in blocks of size B CPU only works on internal memory M B CPU Disk RAM
Lasse Deleuran 19/37 Massive Data - Practical Assumptions Any polygon fits in memory (smaller than M) Segments intersecting any vertical line is < M
Lasse Deleuran 20/37 Challenges - Maintain Precision Simplification algorithms typically only consider movement in the plane (x and y)
Lasse Deleuran 21/37 Challenges - Maintain Topology Topology: Parent / child relationships Maintain topology through homotopy
Lasse Deleuran 22/37 Problems – Prevent Intersections Intersections with other polygons / self intersections
Lasse Deleuran 23/37 Algorithm Overview 1: Collect polygons (I/O-efficient) 2: I/O efficient polygon visiting (I/O-efficient) 3: Simplify polygons (internal)
Lasse Deleuran 24/37 1/3 - Collect Polygons
Lasse Deleuran 25/37 Polygons are neighbors if no other poly. divides them A polygon must be considered together w. neighbors 2/3 - I/O Efficient Polygon Visiting
Lasse Deleuran 26/37 3/3 Simplify Polygons Basic Algorithm: Douglas Peucker
Lasse Deleuran 27/37 Problems with Douglass Peucker Running time O(n 2 ), but O(nlogn) in practice No z-constraint / not constrained by other polygons Introduces self intersections, no homotopy
Lasse Deleuran 28/37 Simplifying – Adding Boundaries Construct Trapezoidal decomposition O(nlogn) Continue DP until inside of decomposition O(n 2 logn) Add contraint for z
Lasse Deleuran 29/37 Simplifying – Removing Intersections Sweep to find intersections O(nlogn) Continue DP on intersecting segments Repeat => O(n 2 logn)
Lasse Deleuran 30/37 Simplifying – Maintain Homotopy Trapezoidal sequence: ABCDCFCDEDE Contract XYX -> X Canonical Sequence: ABCDE
Lasse Deleuran 31/37 Simplifying – Maintain Homotopy Check segment for homotopy: O(n) => O(n 2 logn)
Lasse Deleuran 32/37 Practical Optimizations
Lasse Deleuran 33/37 Optimization 1 - Conditioning the Terrain Fill up all holes with depth of less than 0.5m Do so for small hills too.
Lasse Deleuran 34/37 Optimization 2 - Exploit Bounding Boxes
Lasse Deleuran 35/37 Optimization 3 - Minimal Decompositions Too much time will be spent constructing decompositions Only use edges that intersect bounding box
Lasse Deleuran 36/37 Setup Code in C++ using TPIE and TerraSTREAM Machine: 8-core Intel Xenon 3.2GHz 12GB of RAM disk speed: 400MB/s
Lasse Deleuran 37/37 Results Results for Denmark dataset (12B points): 49 hours to simplify 4B segments on 7M contours Z-diff: 0.5m (Border contours: 0.2m) DP-error: 5m self intersections 8.2% of the points remained after simplifying Thank You