Download Data Types, Sources, and Tasks

Document related concepts

Nonlinear dimensionality reduction wikipedia , lookup

Transcript
Data Types, Sources, and
Tasks
CMPT 467/767
Visualization
Torsten Möller
© Weiskopf/Machiraju/Möller
Reading
• The Visualization Toolkit: An Object-Oriented
Approach to 3D Graphics (4th ed):
– Chapter 5 (Basic Data Representation)
• Scientific Visualization:
– Chapter 3 (A Survey of Grid Generation Methodologies
and Scientific Visualization Efforts)
• Shneiderman, “The Eyes Have It: A Task by Data
Type Taxonomy for Information Visualizations,”
1996 IEEE Symposium on Visual Languages, 1996
• Amar et al., “Low-level components of analytic
activity in information visualization,”, InfoVis 2005.
© Weiskopf/Machiraju/Möller
2
Data Types, Sources, and
Tasks
•
•
•
•
•
•
•
Data types
Data structures
Data vs. conceptual model
Data classification
Classification of visualization methods
Tasks
Continuous data
© Weiskopf/Machiraju/Möller
3
Basic Variable Types
• Physical type
– Characterized by storage format & machine ops
– Example: bool, short, int, float, double, string,
…
• Abstract type
–
–
–
–
Provide descriptions of the data
Characterized by methods / attributes
May be organized into a hierarchy
Example: cars, bicycles, motorbikes, …
© Weiskopf/Machiraju/Möller
4
On the theory of scales and measurements [S. Stevens, 46]
Data Values
• Characteristics of data values
– Range of values / Data types
– Quantitative data types (scalar, vector, tensor
data; kind of discretization)
– Dimension (number of components)
– Error (variance)
– Structure of the data
© Weiskopf/Machiraju/Möller
Data Values
• Range of values
– Qualitative
• Non-metric
• Ordinal (order along a scale)
• Nominal (no order)
– Quantitative
•
•
•
•
Metric scale
Discrete
Continuous
interval / ratio
© Weiskopf/Machiraju/Möller
Data Types
• Quantitative (Q)
– 10 inches, 23 inches, etc.
• Ordinal (ordered) (O)
– Small, medium, large
• Nominal (categorical) (N)
– Apples, Oranges, Bananas,...
© Weiskopf/Machiraju/Möller
7
Quantitative
• Q - Interval (location of zero arbitrary)
– Dates: Jan 19; Location: (Lat, Long)
– Only differences (i.e., intervals) can be
compared
• Q - Ratio (zero fixed)
– Measurements: Length, Mass, Temp, ...
– Origin is meaningful, can measure ratios &
proportions
© Weiskopf/Machiraju/Möller
8
On the theory of scales and measurements [S. Stevens, 46]
Quantitative
• Scalar data
is given by a function f(x1,...,xn):Rn→R with n
independent variables xi
• Vector data, representing direction and magnitude,
is given by an m-tuple (f1,...,fm) with fk=fk(x1,...,xn ), m
≥ 2 and 1≤ k ≤ m
– Usually m = n
– Exceptions, e.g., due to projection
• Tensor data
for a tensor of level k is given by ti1,i2,…,ik(x1,…,xn)
a tensor of level 1 is a vector, a tensor of level 2 is a
© Weiskopf/Machiraju/Möller
9
matrix, …
Data Classification
• Classification according to Bergeron & Grinstein,
1989:
• Ln
m m-dimensional data on an n-dimensional grid
• Examples for m-dimensional data
– On arbitrary positions (L0m)
– On a line (L1m)
– On a surface (L2m)
– On a (uniform) 3D grid (L3m )
– On a (uniform) n-dimensional grid (Ln
m)
• Important aspects of data and grid types are missing
© Weiskopf/Machiraju/Möller
Data Classification
• Classification according to Brodlie 1992:
• Underlying field: domain of the data
• Visualizing entity (E)
• E is a function defined by domain and range of data
• Independent variables: dimension and influence
[ ]: data defined on region, { }: enumerated set
• Dependent variables: dimension and data type
Dependent variables
• Examples
V3
5S
or
E
E
[3]
n
© Weiskopf/Machiraju/Möller
Dimension of independent variables
Data Classification
• Classification via fiber bundles according to
Butler 1989:
• Fiber bundle:
– Base space: independent variables
– Fiber space: dependent variables
• Definition of sections in fiber space
• Connection to differential geometry
© Weiskopf/Machiraju/Möller
base space
fiber space
fiber bundle
section
Data Classification
• Specification according to Wong 1997
• Dimension of the data values: dependent
variables v
• Dimension of domain: independent
variables d
• Data with n independent variables and m
dependent variables:
ndmv
© Weiskopf/Machiraju/Möller
Data Classification
• Example:
Set of points with scalar values
• Bergeron & L0
1
Grinstein
S
• Brodlie
E{0}
• Butler
base = set, fiber = float:[-∞, ∞]
• Wong
0d1v
© Weiskopf/Machiraju/Möller
Data Classification
• Example:
Scalar volume data set on a uniform grid
• Bergeron &
L31
Grinstein
• Brodlie
E3S
• Butler
base = 3D-reg-grid, fiber = char:[0, 255]
• Wong
3d1v
© Weiskopf/Machiraju/Möller
Data Classification
• Example:
Flow data on a curvilinear grid
• Bergeron & L3
3
Grinstein
• Brodlie
E3V 3
• Butler
base = 3D-curvilin-grid, fiber = float3:[-∞, ∞]3
• Wong
3d3v
© Weiskopf/Machiraju/Möller
Data Classification
• Example:
3D volume with 3 scalar and 2 vector data
• Bergeron &
L39
Grinstein
E33S2V 3
• Brodlie
• Butler base = 3D-reg-grid, fiber = float x float x float x
float3 x float3
• Wong
3d9v
© Weiskopf/Machiraju/Möller
Quantitative - Time
• Discretization in time with constant or variable
time steps
• Time dependency of
– Data only (grid remains constant)
e.g. time series of CT data, CFD of an airplane
– Data and grid geometry (topology remains
constant)
e.g. crashworthiness of cars
– Data, grid geometry and topology
e.g. engine simulation with moving piston
© Weiskopf/Machiraju/Möller
Data Structure
Structure of the data
•
•
•
•
Sequential (in the form of a list)
Relational (as table)
Hierarchical (tree structure)
Network structure
© Weiskopf/Machiraju/Möller
20
Record
Field /
Dimension
1 = Quantitative
2 = Nominal
3 = Ordinal
1 = Quantitative
2 = Nominal
3 = Ordinal
Quantitative = Measures
Nominal /Ordinal = Dimensions
Data vs. Conceptual Models
© Weiskopf/Machiraju/Möller
26
Data vs. Conceptual Models
• Data Model: Low-level description of the
data
– Set with operations, e.g., floats with +, -, /, *
• Conceptual Model: Mental construction
– Includes semantics, supports reasoning
Data
Conceptual
1D floats
temperature
3D vector of floats space
© Weiskopf/Machiraju/Möller
27
Example
• From data model...
– 32.5, 54.0, -17.3, … (floats)
• using conceptual model...
– Temperature
• to data type
– Continuous to 4 significant figures (Q)
– Hot, warm, cold (O)
– Burned vs. Not burned (N)
© Weiskopf/Machiraju/Möller
28
Dimension
• Number of variables per class
–
–
–
–
1: Univariate
2: Bivariate
3: Trivariate
>3: Hypervariate / Multi-dimensional
© Weiskopf/Machiraju/Möller
29
Visualization Flavours
Classification of Visualization
Methods
visualization pipeline
sensors
simulation
data bases
raw data
geometry:
• lines
• surfaces
• voxels
attributes:
mapping – classification
volume rend.
3D isosurfaces
2D height fields
color coding
filter
stream
ribbons
topology
arrows
LIC
glyphs
icons
attribute
symbols
1D
vis data
scalar
map
vector
tensor/MV
different grid types → different algorithms
renderable
representations
• color
• texture
• transparency
render
visualizations
images videos
interaction
3D scalar fields
Cartesian
medical datasets
3D vector fields
un/structured
CFD
© Weiskopf/Machiraju/Möller
trees, graphs, tables,
data bases
Classification of Visualization
Methods
© Weiskopf/Machiraju/Möller
Visualization Flavors?
Display Attributes
Continuous
Given
Constraint
Chosen
Images (ie. Medical)
Distortions of given /
Continuous mathematical
Molecular structures
continuous ideas (e.g., flattened
medical structures, 2D
functions
geographic maps, fish-eye
data, when time is mapped to a
spatial dimension
(distributions of mass, charge,
etc.)
Globe (distribution data)
lens views)
Continuous time-varying
Arrangement of numeric
Discrete
variable values
Segmented given /
Distortions of given / discrete
Discrete time-varying data,
continuous data (e.g.,
segmented images)
ideas (e.g., 2D geographic
maps, fish-eye lens views)
when time is mapped to a
spatial dimension
Air traffic positions
Arrangement of ordinal or
Arbitrary entity-relationship
Molecular structures (exact
numeric variable values
data (e.g., file structures)
positions of components)
Arbitrary multi-dimensional
Globe (entity data)
data (e.g., employment
statistics)
© Weiskopf/Machiraju/Möller
Visualization Flavors?
Display Attributes
Continuous
Given
Images (ie. Medical)
Constraint
Distortions of given /
Continuous mathematical
functions
Math
Continuous time-varying
Scientific
(distributions
of mass, charge,
Visualization
geographic maps, fish-eye
etc.)
data, when time is mapped to a
Molecular structures
continuous ideas (e.g., flattened
medical structures, 2D
lens views)
Visualization
spatial dimension
Globe (distribution data)
Arrangement of numeric
variable values
Discrete
Chosen
Segmented given /
continuous data (e.g.,
segmented images)
Air traffic positions
Molecular structures (exact
Discrete time-varying data,
Information
when time is mapped to a
spatial dimension
Visualization
Arbitrary entity-relationship
Distortions of given / discrete
Bio
Visualization
Arrangement of ordinal or
ideas (e.g., 2D geographic
maps, fish-eye lens views)
numeric variable values


data (e.g., file structures)
positions of components)
Arbitrary multi-dimensional
Globe (entity data)
data (e.g., employment
statistics)
© Weiskopf/Machiraju/Möller
Task Abstraction
Task Abstraction
[Meyer et al., MizBee: A Multiscale Synteny Browser, 2009]
Task Abstraction
•
•
•
•
Overview: Gain an overview of the entire collection
Zoom: Zoom in on items of interest
Filter: filter out uninteresting items
Details-on-demand: Select an item or group and get
details when needed
• Relate: View relationships among items
• History: Keep a history of actions to support undo,
replay, and progressive refinement
• Extract: Allow extraction of sub-collections and of
the query parameters
© Weiskopf/Machiraju/Möller
37
[Shneiderman, 1996]
Shneiderman’s Visual
Information Seeking Mantra
Overview first,
zoom and filter,
then details-on-demand
© Weiskopf/Machiraju/Möller
38
Task Abstraction
[Amar, Eagan, & Stasko, 2005]
© Weiskopf/Machiraju/Möller
39
[Amar, Eagan, & Stasko, 2005]
1) Filter: Find data that satisfies conditions
2) Find Extremum: Find data with extreme values
3) Sort: Rank data according to some metric
4) Determine Range: Find span of data values
5) Find Anomalies: Find data with unexpected /
extreme values
© Weiskopf/Machiraju/Möller
40
Data Types, Sources, and
Tasks
•
•
•
•
•
•
•
Data Types
Data Structures
Data vs. Conceptual Model
Data classification
Classification of visualization methods
Tasks
Continuous Data
– Data sources
– Data acquisition with scanners
– Sources of Error
– Data representation
– Domain
– Data structures© Weiskopf/Machiraju/Möller
Data Sources
• The capability of traditional presentation techniques is
not sufficient for the increasing amount of data to be
interpreted
– Data might come from any source with almost arbitrary size
– Techniques to efficiently visualize large-scale data sets and new
data types need to be developed
• Real world
– Measurements and observation
• Theoretical world
– Mathematical and technical models
• Artificial world
– Data that is designed
© Weiskopf/Machiraju/Möller
Data Sources
• Real-world measurements
–
–
–
–
–
–
–
–
–
Medical Imaging (MRI, CT, PET)
Geographical information systems (GIS)
MB
Electron microscopy
Meteorology and environmental sciences (satellites)
Seismic data
GB
Crystallography
High energy physics
Astronomy (e.g. Hubble Space Telescope 100MB/day)
TB
Defense
© Weiskopf/Machiraju/Möller
Data Sources
• Theoretical world
• Computer simulations
– Sciences
•
•
•
•
•
•
•
Molecular dynamics
Quantum chemistry
Mathematics
Molecular modeling
Computational physics
Meteorology
Computational fluid mechanics (CFD)
MB
GB
– Engineering
• Architectural walk-throughs
• Structural mechanics
• Car body design© Weiskopf/Machiraju/Möller
MB
GB
Data Sources
• Theoretical world
• Computer simulations
– Commercial
• Business graphics
• Economic models
• Financial modeling
MB
GB
• Information systems
– Stock market (300 Mio. transactions/day in NY)
– Market and sales analysis
TB
© Weiskopf/Machiraju/Möller
– World Wide Web
Data Sources
• Artificial world
–
–
–
–
–
Drawings
Painting
Publishing
TV (teasers, commercials)
Movies (animations, special effects)
© Weiskopf/Machiraju/Möller
MB
GB
TB
Data Acquisition with Scanners
• Medical scanners:
–
–
–
–
–
X-rays
Computed Tomography (CT)
MRI (or NMR)
PET / SPECT
Ultrasound
• Other examples:
– PIV (particle image velocimetry):
experimental flow measurement
– X-rays for material science
– Seismic data (oil and gas industry)
© Weiskopf/Machiraju/Möller
PIV [www.dantecdynamics.com]
Data Acquisition with Scanners
• X-rays
– Bones contain heavy atoms:
act as an absorber of X-rays
– Commonly used to image
bone structure and lungs
– Excellent for detecting metal
objects
– Main disadvantage:
lack of anatomical structure
– All other tissue has very similar absorption
coefficient for©X-rays
Weiskopf/Machiraju/Möller
48
Data Acquisition with Scanners
• CT: Computed (Axial) Tomography
– Introduced in 1972 by Hounsfield and Cormack
– Natural progression from X-rays
– Based on the principle that a 3D object can be
reconstructed
from its 2D projections
– Combine X-ray pictures
from various angles
© Weiskopf/Machiraju/Möller
Siemens SOMATOM Sensation
[www.medical.siemens.com]
Data Acquisition with Scanners
• CT: Computed (Axial) Tomography
• Advantages
– Superior to single X-ray scans
– Easier to separate soft tissues (materials other
than bone) from one another (e.g. liver, kidney)
– Data exist in digital form: can be analyzed
quantitatively
• Disadvantages
– Significantly more data collected
– Soft tissue X-ray absorption still relatively similar
– A health risk © Weiskopf/Machiraju/Möller
Data Acquisition with Scanners
• Nuclear Magnetic Resonance (NMR)
or:
Magnetic Resonance Imaging (MRI)
-
– Polarization through external magnetic field
– A second magnetic field is applied to
excite nuclear spins
– Measure: radiation from relaxation
– 3D position from gradients in
second magnetic field
– MRI is especially
sensitive for hydrogen (H)
© Weiskopf/Machiraju/Möller
Data Acquisition with Scanners
• MRI / NRM advantages:
– Detailed anatomical information
– High-energy radiation is
not used, i.e. “safe” scanning
method
– (Medicine) uses resonance
properties of protons
Siemens MAGNETOM Allegra 3T Brainscanner
[www.medical.siemens.com]
© Weiskopf/Machiraju/Möller
Data Acquisition with Scanners
• Positron Emission Tomography (PET)
Single Photon Emission Computerized Tomography
(SPECT)
– Involves the emission of particles of antimatter by compounds
injected into the body being scanned
– Follow the movements of the injected compound and its
metabolism
– Reconstruction techniques similar to CT
SPECT
• Emit (any) gamma
rays
• Collected with gamma
camera
© Weiskopf/Machiraju/Möller
PET
• Positron collides with
electron to emit photons
in 1800 angle
• Both annihilation
photons detected in
coincidence
• Higher sensitivity
Data Acquisition with Scanners
• Ultrasound:
– High-frequency sound (ultrasonic) waves
– Above the range of sound audible to humans (typically above 1
MHz)
– Piezoelectric crystal creates sound waves
– Change in tissue density reflects waves
– Echoes are recorded
– Delay of reflected signal and amplitude
determines the position of the tissue
• Properties
– Very noisy
– 1D, 2D, 3D scanners
© Weiskopf/Machiraju/Möller
– Irregular sampling – reconstruction problems
Sources of Error
• Data acquisition
– Accuracy and reliability of scanner?
– Sampling: are we (spatially) sampling data with enough precision
to get what we need out of it?
– Quantization: are we converting “real” data to a representation
with enough precision to discriminate the relevant features?
• Filtering
– Are we retaining/removing the “important/non-relevant” structures
of the data ?
– Frequency/spatial domain filtering
• Noise, clipping, and cropping
• Selecting the “right” variable
– Does this variable reflect the interesting features?
– Does this variable allow for a “critical point” analysis ?
© Weiskopf/Machiraju/Möller
Sources of Error
• Functional model for resampling
– What kind of information do we introduce by interpolation and
approximation?
• Mapping
– Are we choosing the graphical primitives appropriately in order to
depict the kind of information we want to get out of the data?
– Think of some real world analogue (metaphor)
• Rendering
– Need for interactive rendering often determines the chosen
abstraction level
– Consider limitations of the underlying display technology
• Data color quantization
– Carefully add “realism”
• The most realistic image is not necessarily the most informative one
© Weiskopf/Machiraju/Möller
Data Representation
Rn
m
R
X
domain
independent
variables
data
values
dependent
variables
scientific data
© Weiskopf/Machiraju/Möller
Rn+m
Data Representation
• Discrete representations
– The objects we want to visualize are often ‘continuous’
– But in most cases, the visualization data is given only at
discrete locations in space and/or time
– Discrete structures consist of samples, from which
grids/meshes consisting of cells are generated
• Primitives in different dimensions
dimension
cell
0D
points
1D
lines (edges)
2D
triangles, quadrilaterals (rectangles)
3D
tetrahedra, prisms, hexahedra
mesh
polyline(–gon)
© Weiskopf/Machiraju/Möller
2D mesh
3D mesh
Data Representation
• Classification of visualization techniques according to
– Dimension of the domain of the problem
(independent params)
– Type and dimension of the data to be visualized
dimension of (dependent params)
data type
mD
G
3D
Examples:
F
2D
E
1D
C
D
0D
A
B
H
dimension
of domain
1D
2D
3D
© Weiskopf/Machiraju/Möller
nD
A: gas station along a road
B: map of cholera in London
C: temperature along a rod
D: height field of a continent
E: 2D air flow
F: 3D air flow in the atmosphere
G: stress tensor in a mechanical
part
H: ozone concentration in the
atmosphere
Domain
• The (geometric) shape of the domain is
determined by the positions of sample
points
• Domain is characterized by
– Dimensionality: 0D, 1D, 2D, 3D, 4D, …
– Influence: How does a data point influence its
neighborhood?
– Structure: Are data points connected? How?
(Topology)
© Weiskopf/Machiraju/Möller
Domain
• Influence of data points
– Values at sample points influence the data distribution in a
certain region around these samples
– To reconstruct the data at arbitrary points within the domain,
the distribution of all samples has to be calculated
• Point influence
– Only influence on point itself
• Local influence
– Only within a certain region
• Voronoi diagram
• Cell-wise interpolation (see later in course)
• Global influence
– Each sample might influence any other point within the domain
• Material properties for whole object
© Weiskopf/Machiraju/Möller
• Scattered data interpolation
Domain
• Voronoi diagram
– Construct a region around each sample point
that covers all points that are closer to that
sample than to every other sample
– Each point within a certain region gets assigned
the value of the sample point
© Weiskopf/Machiraju/Möller
Domain
• Scattered data interpolation
interpolate here
– At each point the weighted average of all
sample points in the domain is computed
– Weighting functions determine the support of
each sample point
• Radial basis functions simulate decreasing influence
with increasing distance from samples
– Schemes might be non-interpolating and
expensive in terms of numerical operations
© Weiskopf/Machiraju/Möller
Data Structures
• Requirements:
–
–
–
–
Efficiency of accessing data
Space efficiency
Lossless vs. lossy
Portability
• Binary – less portable, more space/time efficient
• Text – human readable, portable, less space/time efficient
• Definition
– If points are arbitrarily distributed and no connectivity
exists between them, the data is called scattered
– Otherwise, the data is composed of cells bounded by grid
lines
– Topology specifies the structure (connectivity) of the data
© Weiskopf/Machiraju/Möller
– Geometry specifies
the position of the data
Data Structures
• Some definitions concerning topology and
geometry
– In topology, qualitative questions about geometrical
structures are the main concern
• Does it have any holes in it?
• Is it all connected together?
• Can it be separated into parts?
• Underground map does not tell you how far one
station is from the other, but rather how the lines
are connected (topological map)
© Weiskopf/Machiraju/Möller
Data Structures
• Topology
– Properties of geometric shapes that remain
unchanged even when under distortion
Same geometry (vertex positions), different topology (connectivity)
© Weiskopf/Machiraju/Möller
Data Structures
• Topologically equivalent
– Things that can be transformed into each other
by stretching and squeezing, without tearing or
sticking together bits which were previously
separated
© Weiskopf/Machiraju/Möller
topologically equivalent
Data Structures
• Grid types
– Grids differ substantially in the cells (basic
building blocks) they are constructed from and
in the way the topological information is given
scattered
uniform
rectilinear
© Weiskopf/Machiraju/Möller
structured
unstructured
Data Structures
• An n-simplex
– The convex hull of n + 1 affinely independent points
– Lives in Rm , with n ≤ m
– 0: points, 1: lines, 2: triangles, 3: tetrahedra
• Partitions via simplices are called triangulations
• Simplical complex C is a collection of simplices with:
– Every face of an element of C is also in C
– The intersection of two elements of C is empty or it is a face of
both elements
• Simplical complex is a space with a triangulation
© Weiskopf/Machiraju/Möller
Simplical complexes
Not a simplical complex
Data Structures
• Structured and unstructured grids can be
distinguished by the way the elements or
cells meet
• Structured grids
– Have a regular topology and regular / irregular
geometry
• Unstructured grids
– Have irregular topology
and geometry
© Weiskopf/Machiraju/Möller
structured
unstructured
Data Structures
• Characteristics of structured grids
– Easier to compute with
– Often composed of sets of connected parallelograms
(hexahedra), with cells being equal or distorted with
respect to (non-linear) transformations
– May require more elements or badly shaped elements
in order to precisely cover the underlying domain
– Topology is represented implicitly by an n-vector of
dimensions
– Geometry is represented
explicitly by an array of points
– Every interior point has the
Weiskopf/Machiraju/Möller
structured
unstructured
same number of© neighbors
Data Structures
• If no implicit topological (connectivity) information
is given, the grids are called unstructured grids
– Unstructured grids are often computed using quadtrees
(recursive domain partitioning for data clustering), or by
triangulation of point sets
– The task is often to create a grid from scattered points
• Characteristics of unstructured grids
– Grid point geometry and connectivity must be stored
– Dedicated data structures needed to allow for efficient
traversal and thus data retrieval
– Often composed of triangles or
tetrahedra
– Typically, fewer elements
are needed structured
© Weiskopf/Machiraju/Möller
unstructured
to cover the domain
Data Structures
• Cartesian or equidistant grids
– Structured grid
– Cells and points are numbered sequentially with
respect to increasing X, then Y, then Z, or vice versa
– Number of points = Nx•Ny•Nz
– Number of cells = (Nx-1)•(Ny-1)•(Nz-1)
dx
j
dy
2D
3D
Ny
Nx
© Weiskopf/Machiraju/Möller
i
dx = dy = dz
Data Structures
• Cartesian grids
– Vertex positions are given implicitly from [i,j,k]:
• P[i,j,k].x = origin_x + i • dx
• P[i,j,k].y = origin_y + j • dy
• P[i,j,k].z = origin_z + k • dz
– Global vertex index I[i,j,k] = k•Ny•Nx + j•Nx + i
• k = I / (Ny•Nx)
• j = (I % (Ny•Nx)) / Nx
• i = (I % (Ny•Nx)) % Nx
– Global index allows for linear storage scheme
• Wrong access pattern might destroy cache coherence
© Weiskopf/Machiraju/Möller
Data Structures
• Uniform grids
– Similar to Cartesian grids
– Consist of equal cells but with different resolution in at
least one dimension ( dx ≠ dy (≠ dz))
– Spacing between grid points is constant in each dimension
→ same indexing scheme as for Cartesian grids
– Most likely to occur in applications where the data is
generated by a 3D imaging device providing different dx
j
sampling rates in each dimension
dy
– Typical example: medical volume data
consisting of slice images
Ny
• Slice images with square pixels (dx = dy)
• Larger slice distance (dz > dx = dy)
© Weiskopf/Machiraju/Möller
Nx
i
Data Structures
• Rectilinear grids
– Topology is still regular but irregular spacing
between grid points
• Non-linear scaling of positions along either axis
• Spacing, x_coord[L], y_coord[M], z_coord[N],
must be stored explicitly
– Topology is still implicit
© Weiskopf/Machiraju/Möller
(2D perimeter lattice:
rectilinear grid in IRIS Explorer)
Data Structures
• Curvilinear grids
– Topology is still regular but irregular spacing
between grid points
• Positions are non-linearly transformed
– Topology is still implicit, but vertex positions
are explicitly stored
• x_coord[L,M,N]
• y_coord[L,M,N]
• z_coord[L,M,N]
– Geometric structure
might result in
concave grids© Weiskopf/Machiraju/Möller
Data Structures
• Curvilinear grids
© Weiskopf/Machiraju/Möller
Data Structures
• Multigrids
– Focus in specific areas to avoid
unnecessary detail in other
areas
– Finer grid for regions of interest
– Difficulties in the boundary
region (i.e. interpolation)
© Weiskopf/Machiraju/Möller
Data Structures
• Characteristics of structured grids
– Structured grids can be stored in a 2D / 3D array
– Arbitrary samples can be directly accessed by indexing a
particular entry in the array
– Topological information is implicitly coded
• Direct access to adjacent elements
– Cartesian, uniform, and rectilinear grids are necessarily convex
– Their visibility ordering of elements with respect to any
viewing direction is given implicitly
– Their rigid layout prohibits the geometric structure to adapt to
local features
– Curvilinear grids reveal a much more flexible alternative to
model arbitrarily shaped objects
– However, this flexibility in the design of the geometric shape
makes the sorting of grid elements a more complex procedure
© Weiskopf/Machiraju/Möller
Data Structures
• Typical implementation of structured grids
DataType *data = new DataType[Nx•Ny•Nz];
val = data[i•(Ny•Nz) + j•Nz + k];
… code for geometry …
© Weiskopf/Machiraju/Möller
Data Structures
• Unstructured grids
– Composed of arbitrarily positioned and connected
elements
– Can be composed of one unique element type
or they can be hybrid (tetrahedra, hexas, prisms)
– Triangle meshes in 2D and tetrahedral grids in 3D
are most common
– Can adapt to local features
(small vs. large cells)
– Can be refined adaptively
– Simple linear interpolation
in simplices © Weiskopf/Machiraju/Möller
Data Structures
• Unstructured grids
– Can be adapted to local features
© Weiskopf/Machiraju/Möller
Data Structures
• Unstructured grids
– Can be adapted to local features
© Weiskopf/Machiraju/Möller
Data Structures
• Typical implementations of unstructured
grids
– Direct form
Coords for
vertex 1
x1,y1,(z1)
x2,y2,(z2)
x3,y3,(z3)
x2,y2,(z2)
x3,y3,(z3)
x4,y4,(z4)
...
face 1
struct face
float verts[3][2]
DataType val;
face 2
struct face
float verts[3][3]
DataType val;
– Additionally store the data values
– Problems: storage space, redundancy
© Weiskopf/Machiraju/Möller
2D
3D
Data Structures
• Typical implementations of unstructured
grids
– Indirect form
Coords for
vertex 1
vertex list
face list
x1,y1,(z1)
x2,y2,(z2)
x3,y3,(z3)
x4,y4,(z4)
1,2,3
1,2,4
3,2,4
...
...
– Indexed face set
– More efficient than direct approach in terms of
memory requirements
– But still have ©toWeiskopf/Machiraju/Möller
do global search to find local
information (i.e. what faces share an edge)
Data Structures
• Typical implementations of unstructured
grids: Winged-edge data structure [Baumgart 1975]
next left edge
vertex end
face
previous right edge
edge
partner
vertex start
Weiskopf/Machiraju/Möller
previous left©edge
next right edge
counterclockwise
orientation
Data Structures
• Winged-edge data structure
– Edge-based data structure, allows to answer queries
• Faces sharing an edge
• Faces sharing a vertex
• Walk around edges of a face
– Stores for every vertex a pointer to an
arbitrary edge that is incident to it
– Stores for every face a pointer to an edge
on its boundary
– Implicit assumption:
• Every edge has at most two faces which
meet at edge  two-manifold topology
© Weiskopf/Machiraju/Möller
Data Structures
• Manifold meshes
– 2-manifold is a surface where at every point on
the surface a surrounding area can be found that
looks like a disk
– Everything can be flattened out to a plane
– Sharp creases and edges are possible
needs more than one normal per vertex
– Example for a non-manifold:
© Weiskopf/Machiraju/Möller
Data Structures
• Tetrahedral grid
– In notation of
IRIS Explorer
© Weiskopf/Machiraju/Möller
Data Structures
• Hybrid grids
– Combination of different grid types
© Weiskopf/Machiraju/Möller
Data Structures
© Weiskopf/Machiraju/Möller
Data Structures
© Weiskopf/Machiraju/Möller
Data Structures
© Weiskopf/Machiraju/Möller
Data Structures
• Example
© Weiskopf/Machiraju/Möller
Data Structures
• Example
© Weiskopf/Machiraju/Möller
Data Structures
• Example
© Weiskopf/Machiraju/Möller
Data Structures
• Example
© Weiskopf/Machiraju/Möller
Data Structures
• Scattered data
– Irregularly distributed positions without
connectivity information
– To get connectivity find a “good” triangulation
(triangular/tetrahedral mesh with scattered
points as vertices)
vertex
face
© Weiskopf/Machiraju/Möller
Data Structures
• For a set of points there are many possible
triangulations
– A measure for the quality of a triangulation is
the aspect ratio of the triangles
– Avoid long, thin ones
– Delaunay triangulation
radius of incircle
or maximum/minimum
radius of circumcircle
angle in triangle
© Weiskopf/Machiraju/Möller