Computing Contour Maps Answering Contour Queries Pankaj K

  • Slides: 24
Download presentation
Computing Contour Maps &. Answering Contour Queries Pankaj K. Agarwal Joint work with Lars

Computing Contour Maps &. Answering Contour Queries Pankaj K. Agarwal Joint work with Lars Arge Thomas Molhave Bardia Sadri

The Terra. Stream Modules (Classification) (DEM Construction) Conditioning Flow Routing Flow Accumulation Watershed Hierarchies

The Terra. Stream Modules (Classification) (DEM Construction) Conditioning Flow Routing Flow Accumulation Watershed Hierarchies Quality Metrics Contour Lines

What is a Terrain

What is a Terrain

Representation: Triangulated Irregular Network (TIN)

Representation: Triangulated Irregular Network (TIN)

Level Sets, Contours, and Contour Maps

Level Sets, Contours, and Contour Maps

Computing Contours Maps

Computing Contours Maps

Answering Contour Queries Preprocess Terrain S into a data structure Given h, compute contour

Answering Contour Queries Preprocess Terrain S into a data structure Given h, compute contour at height h.

Contour Maps

Contour Maps

Contour Maps • Usage of contour lines (also called iso-contours, isogons, etc) goes back

Contour Maps • Usage of contour lines (also called iso-contours, isogons, etc) goes back to at least 17 th century Philosophical Transactions of Royal Society of London, 1779

Internal Memory Algorithm Find a seed point on each contour and traverse the triangulation

Internal Memory Algorithm 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 edges For massive terrains I/O efficiency is bad: O(N+T) instead of O((N+T)/B)

I/O-Efficient Algorithms Answering a contour query: Preprocessing O(Nlog. BN), Space: O(N/B) blocks Query: O(log.

I/O-Efficient Algorithms Answering a contour query: Preprocessing O(Nlog. BN), Space: O(N/B) blocks Query: O(log. BN+T/B)

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

Our 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(log. BN+T/B) Ordering Theorem: A total ordering, called C-ordering, C-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 Algorithm 1. 2. 3. 4. 5. 6. Sort the vertices in the order

The Algorithm 1. 2. 3. 4. 5. 6. Sort the vertices in the order of increasing height. Compute the C-ordering of the triangles Determine the rank of each triangle in C-ordreing. Scan the triangles in the order of increasing height of their lowest vertices: If a triangle intersects some level-set of interest add it to a buffer-tree using its rank for the key. When the scan line reaches a height of interest, 1. flush the buffer tree 2. 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

Computing the C -Ordering

Height Graph

Height Graph

Critical Points maximum saddle minimum regular

Critical Points maximum saddle minimum regular

Simple Terrains

Simple Terrains

Positive and Negative Saddles

Positive and Negative Saddles

Positive and Negative Cut-Trees

Positive and Negative Cut-Trees

Simplifying Terrains by Surgery

Simplifying Terrains by Surgery

What does simplification do to contours? [ [ [ ] ] ]

What does simplification do to contours? [ [ [ ] ] ]

Extensions • (We believe) Our approach extends to higher genus 2 manifolds, i. e.

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

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

Future 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(n 2/3+T) in RAM Model

Idea: grow contours contiguously but in parallel

Idea: grow contours contiguously but in parallel