13.1 vis_2003 data visualization lecture 13 visualization of very large datasets

22
13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

Upload: jada-sheridan

Post on 28-Mar-2015

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.1Vis_2003

Data VisualizationData Visualization

Lecture 13Visualization of Very Large

Datasets

Page 2: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.2Vis_2003

Very Large Data SetsVery Large Data Sets

Volume datasets get larger and larger

Recent research has been looking at how to improve performance of algorithms for large datasets

We shall look at isosurfacing and slicing

Page 3: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.3Vis_2003

Isosurface ExtractionIsosurface Extraction

In marching cubes, or marching tetrahedra, we visit each cell of the grid in turn… and extract any surface within that cell

In a typical isosurface extraction, only a small number of cells will contain a piece of the surface

Key is to sort cells in advance, according to value

Page 4: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.4Vis_2003

Active CellActive Cell

Here is a cell from a large grid…

How can we tell if the isosurface with threshold T passes through this cell?

Page 5: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.5Vis_2003

The Answer!The Answer!

The answer is that the isosurface passes through the cell if:

Min < T < Max

ie T lies between min and max vertex values

… the sledgehammer method is to look through every cell and do the test

The challenge is to be able to improve on this

… particularly if we are extracting a series of isosurfaces

… aim to sort in advance so that we can rapidly find these ‘active cells’

Page 6: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.6Vis_2003

Span SpaceSpan Space

We define the span space as a 2D space with minimum data value of cell as x-axis, and maximum as y-axis

So we can plot our cell as a point in this space

What can we say about the position of points in this space?

min

max

Page 7: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.7Vis_2003

Span Space ExampleSpan Space Example

Suppose we have two cells…

Cell A:– Values are:

5,1,3,6,9,2,7,4– Max: 9; min: 1

Cell B:– Values are:

6,5,4,3,8,2,6,5– Max: 8; min: 2

min

max

0

10

10

A

B

Page 8: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.8Vis_2003

Span SpaceSpan Space

Here are many cells in span space, with the threshold value T marked

What can we say about the shaded area?

Page 9: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.9Vis_2003

Sorting the Span SpaceSorting the Span Space

Challenge is to sort the data so we can quickly identify the active cells for ANY threshold T

Difficult because we need to sort by maximum and minimum

Page 10: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.10Vis_2003

Sorting the Cells in Span Space

Sorting the Cells in Span Space

Cover span space with a 2D lattice, or grid

Sort cells into ‘buckets’ according to lattice

Page 11: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.11Vis_2003

Identifying the Active Cells

Identifying the Active Cells

Searching throws up five possible cases:– case 1: no

intersection– case 2: definite

intersection– case 3: test maximum

only– case 4: test minimum

only– case 5: test minimum

and maximum

Page 12: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.12Vis_2003

Lattice Sub-DivisionLattice Sub-Division

In practice, lattice elements of equal size do not contain equal numbers of cells, so elements are allowed to be of unequal size.

This sub-division method suitable for use on parallel machines, elements are assigned to a different processor using a round-robin method.

Page 13: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.13Vis_2003

Sorting using a Binary Tree

Sorting using a Binary Tree

Suppose we have a list of values

We can sort them into order using a binary tree– find the median

(what is that?)– this is root node– one branch has list

of elements less than median, other has list of elements greater

– repeat … until?

median

< >

< > < >

Page 14: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.14Vis_2003

Sorting using a kd treeSorting using a kd tree

We have a list of cells, with a minimum and maximum, that we need to sort

We use a kd tree which is an extension of a binary tree to case where each element in list has k values

So in our case, what value is k?

Page 15: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.15Vis_2003

Sorting into a Kd treeSorting into a Kd tree

First: median sort cells by minimum vertex value of each cell

Alternately sort by min and max vertex value to form Kd tree

Each node is a cell with ID, max and min

median(sort by min)

median(sort by max) median

(sort by max)

median(sort by min)

median(sort by min)

< >

< >

Page 16: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.16Vis_2003

Searching for Active CellsSearching for Active Cells

Compare threshold T against median (min)– If greater, then check

max for inclusion in active set

– .. and proceed to next level of tree

– If less, then we can discard the node and one of the two branches - which one?

– .. and proceed to next level

median(sort by min)

median(sort by max) median

(sort by max)

median(sort by min)

median(sort by min)

< >

<>

Page 17: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.17Vis_2003

Searching for Active CellsSearching for Active Cells

At next level, compare T against median (max)– If less, then check

minimum for inclusion in active set

– .. and proceed to next level

– If greater, then discard node and also one branch.. which branch this time?..

– .. and proceed to next level of tree

median(sort by min)

median(sort by max) median

(sort by max)

median(sort by min)

median(sort by min)

< >

<>

Page 18: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.18Vis_2003

Performance Improvement - Ten Isosurfaces

Performance Improvement - Ten Isosurfaces

Page 19: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.19Vis_2003

SlicingSlicing

Geometric intersection of a plane with the cells of the data set.

Simple approach is to test each cell against the plane to look for intersections.

Most cells are not required - hence performance improvements can be found by reducing number of cell tests.

Page 20: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.20Vis_2003

SlicingSlicing

Performance improvements easy for structured data when slice is axially aligned.

More difficult when cell has arbitrary orientation.

Page 21: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.21Vis_2003

SlicingSlicing

More difficult for unstructured data. Possible to use range based

methods from isosurfacing since problem can be reduced to a single range.– For axially aligned planes, construct

tree using appropriate x/y/z coordinate.– For arbitrary orientation, apply suitable

rotation then construct tree using appropriate x/y/z coordinate.

Page 22: 13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets

13.22Vis_2003

Further ReadingFurther Reading

Work on span space was done by the visualization group at University of Utah

See overview paper by Brodlie and Wood