Lecture 12 - Scientific Visualization: Scalar 2D Data

Download Report

Transcript Lecture 12 - Scientific Visualization: Scalar 2D Data

Envisioning Information

Lecture 12 – Scientific Visualization

Scalar 2D Data

ENV 2006 Ken Brodlie [email protected]

12.1

2D Interpolation – Regular Gridded Data • Suppose we are given data on a regular rectangular grid ENV 2006 f given at each grid point; we fill out the empty spaces by interpolating values within each cell 12.2

Nearest Neighbour Interpolation • Straightforward extension from 1D: take f-value from nearest data sample • No continuity • Bounds fixed at data extremes ENV 2006 12.3

Bilinear Interpolation • Consider one grid rectangle: – suppose corners are at (0,0), (1,0), (1,1), (0,1) ... ie a unit square – values at corners are f 00 , f 10 , f 11 , f 01 f 01 f 00 f 11 ENV 2006 f 10 How do we estimate value at a point (x,y) inside the square?

12.4

Bilinear Interpolation f 01

(x,y)

f 11 f 00 We carry out three 1D interpolations: f 10 (i) interpolate in x-direction between f 00 ,f 10 ; and f 01 ,f 11 (ii) interpolate in y-direction Exercise: Show this is equivalent to calculating f(x,y) = (1-x)(1-y)f 00 +x(1-y)f 10 +(1-x)yf 01 + xyf 11 ENV 2006 12.5

Piecewise Bilinear Interpolation • Apply within each grid rectangle • Fast • Continuity of value, not slope (C 0 ) • Bounds fixed at data extremes ENV 2006 12.6

• • • Contouring is very common technique for 2D scalar data Isolines join points of equal value – sometimes with shading added How can we quickly and accurately draw these isolines?

ENV 2006 Contour Drawing 12.7

• As an example, consider this data: 10 -5 1 -2 Where does the zero level contour go?

ENV 2006 An Example 12.8

Intersections with sides • The bilinear interpolant is linear along any edge - thus we can predict where the contour will cut the edges (just by simple proportions) 10 1 -5 -2 ENV 2006

10 -5

cross-section view along top edge

12.9

Simple Approach • A simple approach to get the contour inside the grid rectangle is just to join up the intersection points 10 1 -5 -2 ENV 2006 Question: Does this always work?

Try an example where one pair of opposite corners are positive, other pair negative 12.10

• But this does not always work - look at this data: Ambiguity 10 -5 -3 Try it - it is ambiguous!

ENV 2006 1 12.11

What is the Problem?

• We need to worry about the behaviour of the interpolant inside the grid square • The contour of the bilinear interpolant is NOT a straight line – it is a curve 10 1 -5 -2 Joining intersections with straight lines was only an approximation… drawing the contour of bilinear interpolant will resolve ambiguity This is curve of:

f(x,y) = (1-x)(1-y)f 00 +x(1-y)f 10 +(1-x)yf 01 + xyf 11 = 0

BUT how can we draw it?

ENV 2006 12.12

Tracking Contours • We can track the contour in small steps through the grid rectangle – starting from intersection with the edges – Take a step, probe at equal distance to either side, then predict next point Current point on contour

-0.3

-0.3

Next point on contour

0.9

Probes

BUT THIS IS SLOW!!

0.9

Can we find an alternative which uses straight lines, but resolves the ambiguous case?

ENV 2006 12.13

Implementing Rectangle-based Contouring • • For a rectangle, there will be 2 4 = 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… function has a saddle) Note: the ambiguity can be resolved by looking at value at saddle point:

+ + + + + + + + + + + Saddle value = (f 00 f 11 - f 01 f 10 )/ (f 00 +f 11 -f 01 +f 10 )

ENV 2006 12.14

Solution by Decomposing Cell • • Another possibility 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?

f 2 f 1 f 3 ENV 2006 12.15

• • Problem of drawing the curved lines has been circumvented by decomposing cell into four pieces within which the contours are well defined straight lines How might we estimate value at centre?

10 Cell Decomposition -5 0.75

-3 1 ENV 2006 12.16

• Contour is a simple contouring module Contouring in IRIS Explorer • NAGContour interpolates the data and then tracks the contours ENV 2006 NAGContour 12.17

2D Interpolation – Scattered Data • Often the data will be given, not on a regular grid, but at scattered locations: ENV 2006 f given at each marked point Approach: (i) triangulate (ii) build interpolant in each triangle (iii) draw contours 12.18

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

ENV 2006 12.19

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?

ENV 2006 12.20

Tesselation – Two or three wolves ENV 2006 12.21

Tesselation - Two or Three Wolves ENV 2006 12.22

Dirichlet Tesselation • The resulting tesselation is known as the Dirichlet or Voronoi tesselation • Given the Dirichlet tesselation for N points P 1 , P 2 , ... P N there is an algorithm for constructing the tesselation when an extra point is added ENV 2006 12.23

P 1 P 2 Dirichlet Tesselation Tesselation for P 1 , P 2 , P 3 ENV 2006 Q P 3 Point Q added 12.24

P 1

Dirichlet Tesselation

P 2

ENV 2006

Q P 3

12.25

P 1

Dirichlet Tesselation

P 2

ENV 2006

Q P 3

12.26

Dirichlet Tesselation – Determine polygon containing Q - here D 3 , surrounding P 3 – Construct perpendicular bisector of P 3 Q and find intersection with D 3 - this becomes point of modified tesselation – Determine adjacent polygon - here D 2 – Repeat the above two steps until D 3 is reached again, or there is no intersection – Remove all vertices and edges interior to the new polygon ENV 2006 12.27

P 1 Delaunay Triangulation P 2 ENV 2006 Q P 3 12.28

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: www.cs.cornell.edu/Info/People/chew/ Delaunay.html

• Note the ‘empty circle’ property of the Delaunay triangulation ENV 2006 12.29

• • The final step is to contour from the triangulated data Easy – because contours of linear interpolant are straight lines – see earlier Contouring from Triangulated Data http://www.tecplot.com

ENV 2006 12.30

Implementing Triangle-based Contouring • Each vertex can be positive or negative (ignore zero for now) • This gives 2 3 = 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

f 2

In IRIS Explorer, NAGContour will contour scattered data – using triangulation followed by a tracking method based on a nonlinear interpolant – for greater accuracy ENV 2006

f 2 f f 1 1

All same sign

f 3

Two same sign

f 3

12.31

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 ENV 2006 12.32

Constructing a Surface View - 1 ENV 2006 12.33

Constructing a Surface View - 2 Surface created as pair of triangles per grid rectangle.

Rendering step is then display of triangles.

ENV 2006 12.34

Examples - with added contours ENV 2006 www.tecplot.com

12.35

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) ENV 2006 12.36

Grid lines: Image Plots ENV 2006 12.37

Areas: Image Plots ENV 2006 12.38

IRIS Explorer – Image Plots and Surface Views • Image views are created using: – LatToGeom : takes a lattice (array of values) and produces a colour mosaic – GenerateColorMap : associates colours with values • Surface views are created using: – DisplaceLat : takes two lattices, one to create the surface (displacement), the other to colour it (function)… and builds a 3D lattice – LatToGeom : converts this 3D lattice to geometry ENV 2006 12.39

• • Research topic (50) Portfolio to include: – November draft submission – Review comments – Response to comments – Final paper (35) – Presentation (15) Module Assessment • Practical exam (50) – One exercise using xmdvtool (25) – One exercise using IRIS Explorer (25) – Task will be to explore a dataset in each case – 2 hour supervised exam in laboratory ENV 2006 12.40