Presentation on theme: "13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets."— Presentation transcript:
13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets
13.2 Vis_2003 Very Large Data Sets n Volume datasets get larger and larger n Recent research has been looking at how to improve performance of algorithms for large datasets n We shall look at isosurfacing and slicing
13.3 Vis_2003 Isosurface Extraction n In marching cubes, or marching tetrahedra, we visit each cell of the grid in turn… and extract any surface within that cell n In a typical isosurface extraction, only a small number of cells will contain a piece of the surface n Key is to sort cells in advance, according to value
13.4 Vis_2003 Active Cell n Here is a cell from a large grid… n How can we tell if the isosurface with threshold T passes through this cell?
13.5 Vis_2003 The Answer! n The answer is that the isosurface passes through the cell if: Min < T < Max ie T lies between min and max vertex values n … the sledgehammer method is to look through every cell and do the test n The challenge is to be able to improve on this n … particularly if we are extracting a series of isosurfaces n … aim to sort in advance so that we can rapidly find these active cells
13.6 Vis_2003 Span Space n We define the span space as a 2D space with minimum data value of cell as x-axis, and maximum as y- axis n So we can plot our cell as a point in this space n What can we say about the position of points in this space? min max
13.7 Vis_2003 Span Space Example n Suppose we have two cells… n Cell A: – Values are: 5,1,3,6,9,2,7,4 – Max: 9; min: 1 n Cell B: – Values are: 6,5,4,3,8,2,6,5 – Max: 8; min: 2 min max 0 10 A B
13.8 Vis_2003 Span Space n Here are many cells in span space, with the threshold value T marked n What can we say about the shaded area?
13.9 Vis_2003 Sorting the Span Space n Challenge is to sort the data so we can quickly identify the active cells for ANY threshold T n Difficult because we need to sort by maximum and minimum
13.10 Vis_2003 Sorting the Cells in Span Space n Cover span space with a 2D lattice, or grid n Sort cells into buckets according to lattice
13.11 Vis_2003 Identifying the Active Cells n 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
13.12 Vis_2003 Lattice Sub-Division n In practice, lattice elements of equal size do not contain equal numbers of cells, so elements are allowed to be of unequal size. n This sub-division method suitable for use on parallel machines, elements are assigned to a different processor using a round-robin method.
13.13 Vis_2003 Sorting using a Binary Tree n Suppose we have a list of values n 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 < > < > < >
13.14 Vis_2003 Sorting using a kd tree n We have a list of cells, with a minimum and maximum, that we need to sort n We use a kd tree which is an extension of a binary tree to case where each element in list has k values n So in our case, what value is k?
13.15 Vis_2003 Sorting into a Kd tree n First: median sort cells by minimum vertex value of each cell n Alternately sort by min and max vertex value to form Kd tree n 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) < > < >
13.16 Vis_2003 Searching for Active Cells n 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) < > < >
13.17 Vis_2003 Searching for Active Cells n 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) < > < >
13.18 Vis_2003 Performance Improvement - Ten Isosurfaces
13.19 Vis_2003 Slicing n Geometric intersection of a plane with the cells of the data set. n Simple approach is to test each cell against the plane to look for intersections. n Most cells are not required - hence performance improvements can be found by reducing number of cell tests.
13.20 Vis_2003 Slicing n Performance improvements easy for structured data when slice is axially aligned. n More difficult when cell has arbitrary orientation.
13.21 Vis_2003 Slicing n More difficult for unstructured data. n 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.
13.22 Vis_2003 Further Reading n Work on span space was done by the visualization group at University of Utah n See overview paper by Brodlie and Wood