. Computing Contour Maps & Answering Contour Queries Pankaj K. Agarwal Joint work with Lars Arge...

Post on 15-Jan-2016

218 views 0 download

Tags:

Transcript of . Computing Contour Maps & Answering Contour Queries Pankaj K. Agarwal Joint work with Lars Arge...

.Computing Contour Maps & Computing Contour Maps & Answering Contour QueriesAnswering Contour Queries

Pankaj K. AgarwalPankaj K. Agarwal

Joint work with

Lars ArgeLars ArgeThomasThomas MolhaveMolhaveBardia SadriBardia Sadri

The TerraStream ModulesThe TerraStream Modules

What is a TerrainWhat is a Terrain

Representation: Triangulated Irregular Network Representation: Triangulated Irregular Network (TIN)(TIN)

Level Sets, Contours, and Contour MapsLevel Sets, Contours, and Contour Maps

Computing Contours MapsComputing Contours Maps

Answering Contour QueriesAnswering Contour Queries

Preprocess Terrain into a data structure

Given h, compute contour at height h.

Contour MapsContour Maps

Contour MapsContour Maps

• Usage of contour lines (also called iso-contours, isogons, etc) goes back to at least 17th century

Philosophical Transactions of Royal Society of London, 1779

Find a seed point on each contour and traverse the triangulation to trace each contour

Use a simple data structure to compute seed points

Query time: O(log N + T) T: #contour edges

Contour map: O(Nlog N +T) T: #contour map edgesFor massive terrains

I/O efficiency is bad: O(N+T) instead of O((N+T)/B)

Internal Memory AlgorithmInternal Memory Algorithm

I/O-Efficient AlgorithmsI/O-Efficient Algorithms

Answering a contour query:

Preprocessing O(NlogBN), Space: O(N/B) blocks Query: O(logBN+T/B)

Our resultsOur results• Computing contour maps: O(Sort(N)+T/B) I/Os

• Answering contour queries

• Preprocessing Time: O(Sort(N)) I/Os

• Space: O(N/B) disk blocks

• Query: O(logBN+T/B)

[[ ]][[ ]] [[ ]][[ ]]

Ordering Theorem:Ordering Theorem: A total ordering, called C-orderingC-ordering, of triangles can be computed in O(Sort(N)) I/Os s.t. the subsequence of triangles intersecting a contour appears along the contour and contours in a level set are broken in nested order.

Individual contours can be retrieved in O(T/B)I/Os from this ordering

The AlgorithmThe Algorithm

1. Sort the vertices in the order of increasing height.2. Compute the C-ordering of the triangles3. Determine the rank of each triangle in C-ordreing.4. Scan the triangles in the order of increasing height of

their lowest vertices:5. If a triangle intersects some level-set of interest add it

to a buffer-tree using its rank for the key.6. When the scan line reaches a height of interest,

1.flush the buffer tree2. use the stack-based algorithm to extract individual contours.

7. Delete any triangle that does not intersect the next level-set.

Use persistent buffer trees to store C-ordering at all heights!

Computing the C-Ordering

Height GraphHeight Graph

Critical PointsCritical Points

maximum

saddle

minimum

regular

Simple TerrainsSimple Terrains

Positive and Negative SaddlesPositive and Negative Saddles

Positive and Negative Cut-TreesPositive and Negative Cut-Trees

Simplifying Terrains by SurgerySimplifying Terrains by Surgery

What does simplification do to contours?What does simplification do to contours?

[[ ]][[ ]] [[ ]][[ ]]

ExtensionsExtensions

• (We believe) Our approach extends to higher genus 2-manifolds, i.e., contour queries in a fixed direction

Future DirectionsFuture Directions

Computing iso-surface maps or answering iso-surface queries in the I/O model

Preprocess a given 2-manifold M, represented as a triangulation, in a linear-size data structure so that

For a query plane h, report the contours of M∩h quickly

Time: O(n2/3+T) in RAM Model

Idea: grow contours contiguously but in parallelIdea: grow contours contiguously but in parallel