Download presentation

Presentation is loading. Please wait.

Published byAlexandra Hicks Modified over 2 years ago

1
**Data Visualization Lecture 4 Two Dimensional Scalar Visualization**

Part 2: Further Contouring and Other 2D Techniques

2
**Return to Example Consider this data: -5 10 1 -2**

Where does the zero level contour go? Can we draw a straight line which will approximate the contour line?

3
**Joining Intersections Directly**

It is tempting to approximate by joining intersections with straight lines: 10 -5 -2 1

4
**Ambiguity But this does not always work - look at this data: 10 -5 -3**

Try it - it is ambiguous!

5
What is the Problem? The contour of the bilinear interpolant is NOT a straight line – it is a curve - 10 -5 -2 1 Joining intersections with straight lines was only an approximation This is curve of: f(x,y) = (1-x)(1-y)f00+x(1-y)f10+(1-x)yf01+ xyf11 = 0 BUT how can we draw it?

6
Tracking Contours We can track the contour in small steps through the grid rectangle - starting from the intersection with the edges take a step, probe at an equal distance to either side, then predict next point; and so on -0.3 0.9 -0.3 0.9 Next point on contour Current point on contour Probes BUT THIS IS SLOW!!

7
**Solution by Decomposing Cell**

One technique – more efficient than tracking - is to split cell into four triangles Within a triangle, we can fit a linear model F(x,y) = a + bx +cy How do we split? How do we calculate a,b,c? What is the gain? f1 f2 f3

8
Cell Decomposition Problem of drawing the curved lines has been circumvented by decomposing cell into four pieces within which the contours are well defined straight lines -5 10 0.75 -3 1

9
**Avoiding Cell Decomposition**

As an alternative to decomposing the cell, we can try to understand how the curved contours of a bilinear interpolant behave The difficult case is: + - Opposite vertices: two + and two - Where do the contour lines go?

10
Bilinear Interpolant The bilinear interpolant has contours which are hyperbolas, and can be one of two forms: + - A + - B In each case there is a saddle point - if saddle point is -ve, then we have case A; if +ve, case B. Saddle point: fx=fy=0 .. Max in one direction, min in other

11
**A Possible Method This suggests following method:**

in ambiguous case, calculate saddle point and join intersection points according to how bilinear behaves: + - A B - + - + saddle negative saddle positive Try it on the example earlier

12
Saddle Point It is possible to calculate the saddle point in terms of vertex values (from fx = fy =0 ): And the corresponding value: x = (f00 - f01 ) / D; y = (f00 - f10 ) / D D = f00 + f11 - f01 -f10 Saddle value = (f00f11 - f01f10)/D

13
Problem In the ambiguous case, will the earlier four triangle method always give the same result as the saddle point method? 5 -150 100 -1 Try this with both approaches

14
Greater Accuracy The greater understanding of the bilinear leads to a more accurate method A single straight line approximation can be made more accurate by using two straight line pieces see Lopes and Brodlie paper on Web site B + - + - - + A

15
**2D Interpolation - Scattered Data**

Often the data will be given, not on a regular grid, but at scattered locations: f given at each marked point Approach: (i) triangulate (ii) build interpolant in each triangle (iii) draw contours

16
Triangulation Triangulation is the process of forming a grid of triangles from the data points How can we construct the triangulation?

17
**Tesselation We solve the DUAL problem:**

Suppose a wolf is stationed at each data point. Each wolf is equally powerful and dominates the territory closest to its own base What are the territories dominated by each wolf?

18
**Tesselation - Two or Three Wolves**

19
**Tesselation - Two or Three Wolves**

20
**Dirichlet Tesselation**

The resulting tesselation is known as the Dirichlet or Voronoi tesselation Given the Dirichlet tesselation for N points P1, P2, ... PN there is an algorithm for constructing the tesselation when an extra point is added

21
**Dirichlet Tesselation**

P2 Tesselation for P1, P2, P3 P3 P1 Q Point Q added

22
**Dirichlet Tesselation**

P2 P3 P1 Q

23
**Dirichlet Tesselation**

P2 P3 P1 Q

24
**Dirichlet Tesselation**

Determine polygon containing Q - here D3, surrounding P3 Construct perpendicular bisector of P3Q and find intersection with D3 - this becomes point of modified tesselation Determine adjacent polygon - here D2 Repeat the above two steps until D3 is reached again, or there is no intersection Remove all vertices and edges interior to the new polygon

25
**Delaunay Triangulation**

P2 P3 P1 Q

26
**Delaunay Triangulation**

Triangulation formed by joining points whose ‘territories’ share a common boundary in the tesselation This has the nice property that it avoids long skinny triangles See the nice applets at: Delaunay.html Note the ‘empty circle’ property of the Delaunay triangulation

27
**Contouring from Triangulated Data**

The final step is to contour from the triangulated data Easy – because contours of linear interpolant are straight lines – see earlier

28
**Implementing Triangle-based Contouring**

f1 f2 f3 Each vertex can be positive or negative (ignore zero for now) This gives 23 = 8 possible cases… … but there are only 2 distinct configurations No contour (all same sign) Contour (2 of one sign, 1 of the other) Implementation: Determine which of 8 cases Select code for the appropriate configuration All same sign f1 f2 f3 Two same sign

29
**Implementing Rectangle-based Contouring**

+ For a rectangle, there will be 24 = 16 cases There are 4 configurations All same sign (no contour) 3 same sign (one contour piece) 2 adjacent with same sign (one contour piece) 2 opposite with same sign (two pieces, but ambiguous) + - + - + -

30
Surface Views A different mapping technique for 2D scalar data is the surface view. Here a surface is created in 3D space, the height representing the scalar value Construction is quite easy - suppose we have a rectangular grid

31
**Constructing a Surface View - 1**

32
**Constructing a Surface View - 2**

Surface created as pair of triangles per grid rectangle. Rendering step is then display of triangles.

33
**Examples - with added contours**

34
**Image Plots A further mapping technique for 2D data is the image plot**

There are three variants: dot array : draw a dot at each data point, coloured according to the value (very fast, but low quality)

35
Image Plots Grid lines:

36
Image Plots Areas:

37
Cross Sections Another option is to look at a cross-section through the data For example, if x and y are the independent variables, we could fix y and look at f in terms of just x then repeat for different y this reduces the ES2 problem to a sequence of ES1 problems

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google