Lecture 12 - Scientific Visualization: Scalar 2D Data

advertisement
Envisioning Information
Lecture 12 – Scientific Visualization
Scalar 2D Data
Ken Brodlie
kwb@comp.leeds.ac.uk
ENV 2006
12.1
2D Interpolation – Regular Gridded Data
• Suppose we are given data on a regular rectangular grid
f given at each
grid point; we
fill out the empty
spaces by
interpolating values
within each cell
ENV 2006
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 f00, f10, f11, f01
f01
f00
f11
ENV 2006
f10
How do we
estimate value
at a point (x,y)
inside the
square?
12.4
Bilinear Interpolation
f01
f11
(x,y)
f00
f10
We carry out three 1D interpolations:
(i) interpolate in x-direction between f00,f10; and f01,f11
(ii) interpolate in y-direction
Exercise: Show this is equivalent to calculating
f(x,y) = (1-x)(1-y)f00+x(1-y)f10+(1-x)yf01+ xyf11
ENV 2006
12.5
Piecewise Bilinear Interpolation
•
•
•
•
Apply within each grid rectangle
Fast
Continuity of value, not slope (C0)
Bounds fixed at data extremes
ENV 2006
12.6
Contour Drawing
•
•
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
12.7
An Example
• As an example, consider this data:
10
-5
1
-2
Where does the zero level contour go?
ENV 2006
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
-5
10
-5
cross-section view
along top edge
1
-2
ENV 2006
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
Question:
Does this always work?
Try an example where
one pair of opposite
corners are positive,
other pair negative
-2
ENV 2006
12.10
Ambiguity
• But this does not always work - look at this data:
10
-5
-3
1
Try it - it is ambiguous!
ENV 2006
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 Joining intersections
10
-5
with straight lines
was only an
approximation…
drawing the contour
of bilinear interpolant
will resolve ambiguity
1
-2
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?
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
-0.3
-0.3
Next point on
contour
Current point
on contour
0.9
Probes
0.9
BUT THIS IS SLOW!!
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 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…
function has a saddle)
Note: the ambiguity can be resolved
by looking at value at saddle point:
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
+
Saddle value = (f00f11 - f01f10)/ (f00+f11-f01+f10)
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
f1
– F(x,y) = a + bx +cy
•
•
•
How do we split?
How do we calculate a,b,c?
What is the gain?
f2
ENV 2006
f3
12.15
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
How might we estimate value at
centre?
-5
10
0.75
-3
ENV 2006
1
12.16
Contouring in IRIS Explorer
•
Contour is a simple contouring
module
•
NAGContour interpolates the
data and then tracks the
contours
NAGContour
ENV 2006
12.17
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
ENV 2006
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
P1, P2, ... PN
there is an algorithm for constructing the tesselation when an extra
point is added
ENV 2006
12.23
Dirichlet Tesselation
P2
Tesselation for
P1, P2, P3
P3
P1
Q
ENV 2006
Point Q
added
12.24
Dirichlet Tesselation
P2
P3
P1
Q
ENV 2006
12.25
Dirichlet Tesselation
P2
P3
P1
Q
ENV 2006
12.26
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
ENV 2006
12.27
Delaunay Triangulation
P2
P3
P1
Q
ENV 2006
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
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
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 23 = 8 possible
cases…
• … but there are only 2
distinct configurations
f1
All same sign
– No contour (all same sign)
– Contour (2 of one sign, 1
of the other)
f2
f3
f1
• Implementation:
– Determine which of 8
cases
– Select code for the
appropriate configuration
Two same sign
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
f2
f3
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
www.tecplot.com
ENV 2006
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
Image Plots
Grid lines:
ENV 2006
12.37
Image Plots
Areas:
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
ENV 2006
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
12.39
Module Assessment
•
•
Research topic (50)
Portfolio to include:
–
–
–
–
–
•
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
November draft submission
Review comments
Response to comments
Final paper (35)
Presentation (15)
ENV 2006
12.40
Download