Avizo 6 Reference Guide
Avizo 6 Reference Guide
Copyright Information
c
1995-2010
Konrad-Zuse-Zentrum fur Informationstechnik Berlin (ZIB), Germany
c
1999-2010
Visualization Sciences Group (VSG) SAS
All rights reserved.
Trademark Information:
Avizo is being jointly developed by Konrad-Zuse-Zentrum fur Informationstechnik Berlin (ZIB) and VSG.
R
Avizo
is
a registered trademark of VSG, SAS
HardCopy, MeshViz, MeshViz XLM, VolumeViz, VolumeViz LDM, ReservoirViz, DirectViz, ScaleViz are marks of VSG, SAS
R Open Inventor
from
R
VSG, SAS is a source licensee of OpenGL
,
Silicon Graphics, Inc.
R
R
OpenGL
and
Open Inventor
are
registered trademark of Silicon Graphics, Inc., in the U.S. and/or other countries worldwide,
used under license from Silicon Graphics, Inc.
All other products and company names may be trademarks or registered trademarks of their respective companies.
Avizo Earth and the XLVolume extension include user protection under license for Landmark U.S. Patent Numbers 6,765,570.
This manual has been prepared for VSG licensees solely for use in connection with software supplied by VSG and is furnished
under a written license agreement. This material may not be used, reproduced or disclosed, in whole or in part, except as
permitted in the license agreement or by prior written authorization of VSG. Users are cautioned that VSG reserves the right to
make changes without notice to the specifications and materials contained herein and shall not be responsible for any damages
(including consequential) caused by reliance on the materials presented, including but not limited to typographical, arithmetic
or listing errors.
Contents
I
Avizo
1.1
Access LargeDiskData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
AffineRegistration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
AlignPrincipalAxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4
AlignSlices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1
Tool Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2
Menu Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.3
Alignment Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.4
Image Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.5
Key Bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5
Animate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.6
AnnotatedIsolines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7
Annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8
AnonymizeImageStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.9
ApplyBSplineTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.10 ApplyTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.11 ArbitraryCut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.12 Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.13 Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.14 BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.15 BumpSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.16 CalculusMatlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.17 CameraPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.18 CannyEdgeDetector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.19 CastField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
1.20 CastLineSetToSpatialGraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.21 CastSpatialGraphToLineSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.22 ChannelWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.23 CityPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
1.24 ClippingPlane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.25 ClusterDiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.26 ClusterGrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
1.27 ClusterSample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.28 ClusterStringLabels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.29 ClusterView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.30 CollectiveTCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.31 ColorCombine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.32 Colorwash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.33 CombineLandmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.34 CompareLatticeData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.35 ComputeContours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
1.36 ComputeVolume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1.37 ConnectedComponents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.38 ContrastControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.39 CorrelationPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.40 CreateCluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.41 Curl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.42 CurvedSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.43 Cutting Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.44 CylinderSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
ii
CONTENTS
1.45 DataProbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
1.46 Delaunay2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.47 DemoMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
1.48 DemoSequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
1.49 DicomSend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
1.50 Digital Image Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
1.51 DisplayColormap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
1.52 DisplayDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
1.53 DisplayLogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
1.54 DisplayTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
1.55 ExtractSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
1.56 FilteredObliqueSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
1.57 GetCurvature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
1.58 GridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
1.59 Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
1.60 HeightField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
1.61 Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
1.62 InterpolateLabels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
1.63 Intersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
1.64 Isolines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
1.65 Isolines (Surface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
1.66 Isosurface (Regular) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
1.67 IvDisplay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
1.68 IvToSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
1.69 LabelVoxel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
1.70 LandmarkSurfaceWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
1.71 LandmarkView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
1.72 LandmarkWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
1.73 LatticeAccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
1.74 LegoSurfaceGen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
CONTENTS
iii
1.82.2
1.82.3
iv
1.99.1
1.99.2
CONTENTS
1.99.3
1.99.4
CONTENTS
239
2.1
2DLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
2.2
2.3
CroppedVolume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
2.4
CroppedVolumeAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
2.5
Crossline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
2.6
Crossline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
2.7
FaultSticksView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
2.8
FenceSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
2.9
FreeSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
vi
CONTENTS
275
3.1
AnimatedParticles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
3.2
Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
3.3
BoundaryFlux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3.4
BoundaryView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
3.5
ComposeVectorField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
3.6
ConvertToUnstructuredModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
3.7
CrossSection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
3.8
DisplayCriticalPoints3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
3.9
DisplayLegend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
CONTENTS
vii
Earth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
4.2
NetCDFControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
333
5.1
2DHistogramSegmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
5.2
ConvertToIM6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
5.3
Quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
5.4
Quantification-Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
5.5
Quantification-Threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
5.6
WatershedSegmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
353
6.1
CreateVRConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
6.2
ShowConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
6.3
VRSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
viii
327
365
7.1
ArithmeticRendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
7.2
CastLattice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
7.3
ConvertToLargeDiskData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
7.4
7.5
LDAExpertSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
7.6
CONTENTS
7.7
7.8
7.9
389
8.1
AlignSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
8.2
BoundaryConditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
8.3
ComponentField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
8.4
ComputeTensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
8.5
ComputeTensorOutOfCore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
8.6
ConePlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
8.7
ContourView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
8.8
CreateGradientImage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
8.9
Displace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
CONTENTS
ix
469
CONTENTS
9.1
BeadExtract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
9.2
Convolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
9.3
CorrectZDrop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
9.4
DataPreprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
9.5
Deconvolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
9.6
DistanceMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
9.7
FourierTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
9.8
PSFGen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
479
499
CONTENTS
501
xi
II
13 Avizo
xii
549
551
CONTENTS
CONTENTS
xiii
III
14 Avizo
585
587
14.3.2
14.3.3
14.3.4
14.3.5
14.3.6
14.3.7
14.3.8
Colormaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
14.3.9
xiv
CONTENTS
627
629
CONTENTS
xv
637
639
641
643
xvi
CONTENTS
649
653
669
671
CONTENTS
xvii
673
IV
26 Avizo
675
677
xviii
CONTENTS
723
727
729
731
CONTENTS
xix
733
735
751
753
33.1.2
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
33.4.2
33.4.3
33.4.4
Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
33.4.5
33.4.6
33.4.7
33.4.8
33.4.9
xx
CONTENTS
33.9.1
33.9.2
33.9.3
33.9.4
33.9.5
33.9.6
33.9.7
33.9.8
33.9.9
CONTENTS
xxi
827
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
829
831
837
xxii
CONTENTS
CONTENTS
xxiii
Part I
Chapter 1
Avizo
1.1
Access LargeDiskData
Connections
Data [required]
Connection to the LargeDiskData object.
ROI [optional]
If a SelectRoi is connected it will define the subvolume to be loaded.
Ports
Info
The position of the lower corner of the block. Printed as a lattice index.
BoxSize
The size of the block to be loaded. The size is in lattice indices in the base resolution. The numbers
will not change if you select subsampling but the real size of the block to be loaded will change.
This is indicated in the Info port.
Options
1.2
AffineRegistration
This module computes an affine transformation for registration of two image data sets, using an iterative optimization algorithm. A hierarchical strategy is applied, starting at a coarse resampling of
the data set, and proceeding to finer resolutions later on. Different similarity measures like Euclidean
distance, mutual information, and correlation can be chosen.
To use this module, you must connect it to two scalar fields. To follow the progress visually, a module
like BoundingBox or Isosurface should be connected to each of them, but this may slow down the registration process. If the Register button of the Action port is pressed, the module starts by successively
optimizing the transformation of the first input.
The optimization can be interrupted at any time. Interruption might take some seconds.
Note: In versions of Avizo prior to 4.0, this module was named Registration.
Chapter 1: Avizo
Connections
Model [required]
The model data set to be transformed.
Reference [required]
The reference data set to which the model is registered.
Reference2 [optional]
See Reference3 below.
Reference3 [optional]
The connection ports Reference2 and Reference3 are used for a particular type of images routinely
slices each of an axial/xy,
taken in MRI, so-called Localizers. A Localizer consists of few (3)
sagittal/yz, and coronal/yz scan. A CT or MR taken from the same patient or object can be registered
to the Localizer images by using high resolution information for each direction in separate volumes.
To do so, connect the two additional Reference ports with the Localizer images. Note that the port
Options2: Localizer automatically gets checked.
Ports
Metric
This port selects the similarity measure to be applied. Euclidean means the Euclidean distance,
i.e. the mean squared difference between the gray values of model and reference. Correlation
measures the correlation of the registered images. The Mutual information metrics, especially the
normalized one, are recommended when images from different modalities, e.g., CT and MRT, are
to be registered.
Transformation
At this port you can select the number of transformation parameters to be optimized. The numbers
are 6 for Rigid (3 translations and 3 rotations), 7, 9, and 12 for IsoScale, AnisoScale, and Shear,
respectively.
If you select for example Rigid and AnisoScale, on each resolution level the 6 parameters of a
rigid transformation will be optimized first, followed by an optimization of all 9 parameters of an
anisoscale transformation. In this way as much as possible is done using a rigid transformation.
If only AnisoScale is selected, all 9 parameters will be optimized at once. A larger contribution of
the scaling parameters may be expected for this selection.
Extended options
AffineRegistration
If this toggle is unset, only the most important ports are visible. The other ports are set to default
values which should work well in most cases.
If the toggle is selected, the additional ports Optimizer, Optimizer step, QuasiNewton Optimizer
on finest N levels, CoarsestResampling, Histogram range reference, Histogram range model, and
Options become visible (see below).
Action
If the Align Centers button is pressed, the centers of gravity of both data sets are computed, taking
the image intensity as a mass density. The model data set is translated in order to align both centers
of gravity.
If the Align Principal Axes button is pressed, the centers of gravity and moments of inertia of both
data sets are computed, again taking the image intensity as a mass density. The principal moments
of inertia and corresponding principal axes are computed. The best of 24 possible alignments of the
principal axes is determined according to the similarity measure as selected at the Metric port.
Pressing the Register button starts the actual registration process.
Optimizer
At this port you can choose between different optimization strategies. The ExtensiveDirection or
BestNeighbor optimizers are well suited for coarse resolution levels, the QuasiNewton or LineSearch optimizers for the finer resolution levels. The default strategy uses the ExtensiveDirection
optimizer on the coarse levels and the QuasiNewton optimizer on the finest levels.
Optimizer step
This port sets the initial and the final value for the stepwidth to be applied in the optimizations.
These stepwidths refer to translations. For rotations, scalings, and shearings appropriate values are
chosen accordingly.
The default value for the initial stepwidth is 1/5 of the size of the bounding box. If both data sets
are already reasonably aligned, you may choose a smaller initial stepwidth.
The default value for the final stepwidth is 1/6 of the voxel size.
QuasiNewton Optimizer on finest N levels
At this port you can select the number of resolution levels (between 0 and 2) where the QuasiNewton
optimizer is applied. On the coarser levels the optimizer as selected at port Optimizer is applied.
Chapter 1: Avizo
If the number of levels is less than or equal to the number selected at this port, the optimizer as
selected at port Optimizer is applied at least at the coarsest level.
CoarsestResampling
At this port you can define the resampling rate for the coarsest resolution level where registration
starts. The resampling rate refers to the reference data set. If the voxels of the reference data set
are anisotropic, i.e. have a different size in x-, y-, and z-direction, the default resampling rates are
chosen in order to achieve isotropic voxels on the coarsest level. If the voxel sizes of model and
reference differ, the resampling rates for the model are chosen in order to achieve similar voxel sizes
as for the reference on the same level.
Histogram range reference
This port is only active if one of the Mutual information metrics has been selected. Here you can
define the range of gray values for the histogram of the reference data set. The essential information
of the data set should be within this range. It is a good idea to determine the range via a visualization
of the data set, e.g., using an OrthoSlice module.
Histogram range model
The same as the previous port, now for the model data set.
Options
If toggle IgnoreFinestLevel is selected, registration will be performed on all but the finest (i.e. the
original) resolution. In many cases a sufficient accuracy can be achieved in this way. Registration on
the finest level may slightly improve the accuracy, but the computation time will typically increase
by an order of magnitude.
1.3
AlignPrincipalAxes
This module computes a rigid transformation for a triangulated surface, such that its principal axes are
aligned to a reference coordinate system. This can either be the standard basis in 3D or the principal
axes of a reference triangulated surface.
Connections
Model [required]
Model surface, that will be transformed.
AlignPrincipalAxes
Reference [optional]
Reference surface, whose principal axes will serve as a reference coordinate system.
Ports
Options
This port is only visible, when a reference surface is connected. For each possible solution (see
explanation below at Port Action), the root mean square distance is computed, when the option
Optimize distance is chosen. The final transformation will be the one yielding the minimum
value.
Axis1
If no reference surface is connected, the principal axes with the largest moment of inertia will be
aligned to the axis specified at this port.
Axis2
If no reference surface is connected, the principal axes with the second largest moment of inertia
will be aligned to the axis specified at this port.
Action
The Go button starts the alignment. Since the principal axes are only computed up to their orientation the model surface can subsequently be rotated 180 degree around each of its principal axes
by pressing one of the Rot buttons. The number corresponds the first, second, or third largest
moment respectively.
Commands
getRefSystem
Prints the center of gravity, the axes of inertia, and the moments of inertia in the console.
1.4
AlignSlices
This module allows you to interactively align 2D slices of a 3D image stack. Alignment is performed
in a separate graphics window that is activated by pressing the Edit button of the modules Action port.
To close the slice aligner, press the Close button of the modules Action port.
Chapter 1: Avizo
The align window displays by default two consecutive slices using different draw styles that can be
selected from the View menu. The two displayed slices can be chosen using the slice slider on the tool
bar. Only one of these two slices is editable at a given time. The slice that can be edited is selectable
and it can be either the lower or the upper one. By dragging the editable slice using the left mouse
button, the slice will be translated. The slice can be rotated around its center by dragging it while
keeping the middle mouse button pressed. At any time the numbers of the current slice pair as well as
the quality of the current alignment is displayed in the status bar at the bottom of the align window.
The quality value is based on the sum of squared grey-value difference (SSD) between the two slices
being aligned. The SSD is computed for all pixels in the area in which the two slices overlap (the
size of this area depends on the transformation of the slices). The SSD is then normed, so that it lies
between 0 and 1. The quality in alignSlices is 1 minus this value, and therefore also lies between 0
(0%/bad) and 1 (100%/best).
The documentation of the align tool is organized into the following sections (click on the links to open
a section):
1.4.1
Tool Bar
Slice slider:
Allows the user to change the slices that are displayed and can be edited. The displayed number
is the number of the editable slice. If this number is n and the editable slice is the upper one,
slices n and n-1 are shown. If the editable slice is the lower one, the displayed slices are slices n
and n+1.
Zoom in button:
Increases the size of the image.
Zoom out button:
Decreases the size of the image.
Zoom label:
Shows the current zoom factor. E.g., a zoom of 2:1 means that 2 pixels on the screen correspond
to one pixel of the original data set (magnification), while 1:4 would mean that four pixels of
the data set correspond to one pixel on the screen.
Gravity centers button:
Sets the gravity centers alignment as the current alignment algorithm.
Least squares button:
Sets the least squares alignment as the current alignment algorithm.
AlignSlices
Landmarks button:
Sets the landmarks alignment as the current alignment algorithm. When this is the active align
mode, the landmarks will be displayed for the current slices. If one of the other two algorithms
is selected, the landmarks are not shown. The selected algorithm is used when the Align current
slices or Align all slices button is pressed or the corresponding menu items are chosen.
Edge detection button:
Sets the edge detection alignment as the current alignment algorithm.
Edit landmarks mode:
Sets the active edit mode to be editing landmarks. When this is the active edit mode, the
landmarks that have been already defined can be moved/removed and new landmarks can be
defined (see Image Viewer section). This mode can be activated only only when Landmarks
button is ON (i.e. the active align mode is landmarks alignment).
Edit slice mode:
Sets the active edit mode to be editing slices. This means that the editable slice can be translated/rotated.
Lower slice:
This button forces the lower slice of the two displayed slices to become editable.
Upper slice:
This button forces the upper slice of the two displayed slices to be editable (default).
The editable slice can be translated and rotated and landmarks can be defined for it.
Mirror button:
A mirroring transformation is applied to the editable slice.
Align current slices:
The two currently displayed slices are automatically aligned using the selected algorithm.
Align all slices:
All slices of the given 3D data are automatically aligned using the selected algorithm.
1.4.2
Menu Bar
1.4.2.1
View
10
Chapter 1: Avizo
pattern while the other image is displayed in the black parts. The size of the parts can be adjusted
in the Options dialog (see below).
Average: If this option is set the, two images are averaged or blended in the viewer window.
Invert: If this option is set, the lower image is inverted. The inverted image is then blended with
the upper image. If both images match perfectly, a constant gray image is obtained. This option
is the default.
Transform parameters: If enabled, an additional toolbar is added which displays the transformation and flip state of the currently editable slice.
XZ view: If enabled, displays a xz view of the data (i.e. aligned on the y axis) and a toolbar for
controlling the displayed slice number and its zoom factor.
YZ view: If enabled, displays a yz view of the data (i.e. aligned on the x axis) and a toolbar for
controlling the displayed slice number and its zoom factor.
If either or both of these views are enabled, an additional toolbar is displayed. Two text fields
allow you to specify the min and max Z values of interest. Activate the Auto update toggle for
the orthogonal views to be automatically updated each time you change a slice in the main align
window. Press the Update button to request an explicit update.
1.4.2.2
Options
Undo: This menu provides an undo feature that undoes the last operation. Successive invocation
of Undo is possible, allowing several operations to be undone. Each operation made manually
or automatically (translation, rotation, automatic alignment, landmarks editing) can be undone.
The maximum number of operations that can be undone is 100.
Redo: This menu provides a redo feature that redoes the last undone operation. Successive
invocation of Redo is possible after several undo operations.
Reset all: Set the translations on X and Y and the rotation to 0 for all slices.
Reset: Set the translations on X and Y and the rotation to 0 for the current slice (the slice that is
currently editable).
Transform all: This is a toggle option. If the option is ON, the transformations made for the
editable slice are also made for all slices above when the editable slice is the upper one. That
means that the existing alignment of all other slices not involved in the current transformation
will be preserved.
Fix reference: This option decides if a certain slice is used as a reference slice during the entire
alignment procedure. The reference slice is marked by a red tag in the Slice slider. The other
slices will be aligned according to this slice.
Read transformation: Reads the AlignTransform and AlignPoints parameters from the input
data and sets the transformation values accordingly. This is useful to return to a previous saved
alignment. This can be seen as another kind of reset or undo.
Save transformation: Save the actual translations, rotations, and landmarks as parameters in
the input data.
AlignSlices
11
1.4.2.3
Align
This menu offers several alignment algorithms that can be selected in order to obtain the best alignment. The performance of each algorithm is dependent on the data to be aligned. There are four
alignment algorithms that can be chosen:
In addition, this menu allows you to specify which slices to align, as follows:
Align current pair: Align just the current two slices
Align all slices: Align all slices
Finally, the Options button of the Align menu opens a tabbed dialog window allowing you to define a
variety of alignment-related options. Each tab will be handled separately below. The tabs are: General,
Output, View, Edge Detection, and Least Squares.
1.4.2.4
Align/Options/General
Allow rotation in automatic alignment: If this option is checked, rotations are considered
during the alignment process. By default this option is checked. Translations are always considered.
1.4.2.5
Align/Options/Output
The Output dialog allows the user to give the output images of the image stack a different size than
the input images. This is especially useful if the slices are rotated or moved during the alignment
procedure and some areas of single slices are outside the borders of the image stack. Beside this, a
background color for the new areas in the image can be determined. The following image shows the
dialog box.
The following parameters can be set using this dialog:
Automatic size: If this feature is activated, a minimal image size is calculated which contains
all pixels of all slices. The dimensions and the position of the new bounding box are set such
that all slices fit in this new bounding box.
Image width: Sets the width of the output image.
Image height: Sets the height of the output image.
Show borders: Shows the new image borders of the output image in the Slice Aligner.
12
Chapter 1: Avizo
AlignSlices
13
Background color: The user can set the background color for the output image. The color can
be set as a gray value or as an RGB color, depending on the type of the input image. The current
background color is depicted in the box to the right.
1.4.2.6
Align/Options/View
Size of checkerboard: Adjusts the size of the pattern if view mode is set to checkerboard.
1.4.2.7
Align/Options/Edge Detection
The parameters for the Edge detection algorithm can be set using this dialog:
Matrix dimension: This is the dimension of the matrix which scans the image and decides
whether a pixel belongs to the object or the background.
14
Chapter 1: Avizo
Matrix percentage: This percentage defines the amount of pixels in the surrounding of a pixel
which have to belong to the object to indicate that this pixel belongs likewise to the object. The
considered surrounding is defined by the matrix dimension.
Matrix rastering: This indicates if the surrounding should be rasterized. If so, the alignment is
done in a shorter time.
Image rastering This decides if the image should be downsampled during the alignment procedure. This speeds up the alignment.
Flipping: This option indicates if a possible flipping of the images should be considered.
Calculate threshold: This activates an automatic calculation of the threshold.
Set threshold: This allows the threshold to be set manually.
Background property: This must be set to describe the background of the image. According
to this setting, the threshold is interpreted as an upper or a lower boundary of gray values which
separate the object from the background.
Angle stepsize: This sets the size of the search algorithms angular steps (in degrees). A higher
value speeds up alignment at the cost of accuracy.
1.4.2.8
Align/Options/Least Squares
The following parameters for the gray values algorithm can be set using this dialog:
Max number of iterations: This is only intended to prevent an infinite loop.
Step size for translations: The step size used to search for better positions in X and Y. A small
step size, though in general may lead to more accurate results, also slows down alignment.
Step size for rotations: The step size used for rotations.
Scale factor: During the alignment procedure, the image can be downsampled for the first
iterationsteps so that a better result can be reached in a shorter time.
More information about the align methods and the appropriate settings for the methods can be found
in the alignment section.
1.4.3
Alignment Methods
The four different alignment methods are based on different concepts and thus the results may differ
significantly. However, not only the method decides on the result but the right settings for the method.
This page shall help to use the best alignment method and to use the right settings. Therefore, the
algorithms behind the methods are briefly described. This requires a little background knowledge
about mathematics.
Gravity centers: This method calculates a center of gravity of the gray values and the orientation by means of the covariances of the image.
AlignSlices
15
16
Chapter 1: Avizo
Gray values: This method compares the single gray values of two images. The more pixels of
two compared slices have the same gray values, the better the alignment will be valued for this
method. That means that this method tries to move one slice and calculates the difference of the
gray values of both images. If the quality is getting higher after the movement, this method will
keep on changing the positions of to slices to each other until a maximum quality according to
the above mentioned feature will be reached.
Landmarks: This method is the one that requires most user interaction. The user can define
some points, so called landmarks, which will be aligned to each other during the process. The
method is mostly one of the best because the user decides about on the alignment. The problem
of this method is that the user has to set all of these landmarks so that this method is very
time-intensive.
Edge detection: This method is an outline-based method. It works in two steps. In the first
step the method tries to identify the object and clears the surrounding of any noise. If the object
is separated from the background, the outlines of the objects in two successive slices will be
compared and aligned with each other.
Two methods allow to define some settings. These settings often decide on the quality of an alignment
procedure. Sometimes, unintentional artifacts appear which result from wrong settings.
Gray values: This is the first method that allows the user to set some parameters. As described
above, the alignment compares the gray values of two successive slices. The possible settings are
described in the Least-squares options window. The scale factor defines if an image is re-scaled
before the entire process. This means that the image will be resampled in a scale factor-times
coarser resolution. This speeds up the first steps of the process to find a first maximum. If this
factor is too large, the editable slice could flee out of the canvas. This is a normal behavior since
only points which overlap each other are considered for the calculation of the alignment quality,
i.e., if one image moves out of the canvas the quality will be calculated as one hundred percent.
Edge detection: This method has several settings which determin quality and speed of the
alignment. As mentioned above, the alignment is divided into two phases. In the first phase,
the object must be separated from the background, and in the second phase the rotation of two
objects is calculated according to their outlines. The separation of image and background is
achieved by using a matrix which decides according to a surrounding if one pixel belongs to
the object or the background. The size of the surrounding region is set by the first parameter.
The higher this value is, the slower the alignment procedure will be. If the background noise is
rather small, the matrix size can be set small in order to speed up the alignment procedure. If
an image has an high resolution, the image rastering can be set to value greater than one. This
speeds up the alignment procedure considerably. If the object has dis-symmetrical outlines, the
angle-step-size can be set on a higher value. This also speeds up the alignment procedure. If the
outlines are symmetrical, it is strongly recommended to set the step size to a small value.
AlignSlices
17
1.4.3.1
Landmarks
The buttons of this menu are only active if Edit landmarks mode is selected. The buttons have the
following meaning:
Add: set the shape of the mouse cursor to a black landmark and clicking on the slice a new
landmark is created.
Remove: delete the selected landmark. This menu item is active only when a landmark is
selected and the number of landmarks is greater than 3.
1.4.4
Image Viewer
The Image Viewer represents the main part of the align tool. It allows you to align the slices manually
using the mouse and/or the keyboard. While two slices are displayed simultaneously, only one slice
can be edited at a time.
A slice can be translated over the other by keeping the left mouse button pressed and dragging the
slice. Also, the slice can be moved using the cursor keys (see Key Bindings section). The rotation can
be obtained by dragging the slice while keeping the middle mouse button pressed. All rotations are
made around the middle of the slice.
If the Transform all option is ON (Options menu), the actual alignment will be preserved for all pairs
of two consecutive slices (except the slices actually edited).
The Image Viewer allows you to edit the landmarks. In order to edit the landmarks, the Edit landmarks
mode must be set.
A landmark can be selected by clicking inside the triangle that represents the landmark. Once selected,
a landmark can be moved, removed or deselected. The landmarks can be also selected consecutively,
by clicking anywhere on the slice (not on a landmark). After a so-selected landmark has been moved,
the next landmark in the list can be selected in the same way.
In order to move a selected landmark, just click on the new position.
A selected landmark can be removed by choosing the Remove item of the Landmarks menu or pressing
the Del key. A landmark can be removed only if the number of landmarks defined for each slice is
greater than 2. The corresponding landmark will be removed from each slice so that the number of
landmarks is the same for each slice.
You can create a new landmark using the Landmark/Add menu or pressing the Ins key and clicking on
the desired position. A new landmark will be created for each slice.The creation of a new landmark
can be canceled by pressing Esc.
1.4.5
Key Bindings
18
Chapter 1: Avizo
AlignSlices
19
marks mode. However, this doesnt happen if the current edit mode is editing landmarks and a
landmark is selected. In this case the landmark will be deselected. Pressing Escape once more
causes editing slices to become the new edit mode.
Connections
Data [required]
3D field for which the slices will be aligned. Currently, uniform Cartesian grids of type HxUniformScalarField3, HxUniformStackedScalarField3, and HxUniformColorField3 are supported.
Reference [optional]
3D field from which the alignment informations can be read and transferred to the field that must
be aligned (port Data). The reference field must have the same number of slices and the same
dimensions as the data field.
Mask [optional]
An additional HxLabelLattice3 that can be connected in order to be used as mask during the alignment process.
Ports
Data window
This port allows the user to restrict the range of visible data values. Values below the lower bound
are mapped to black, while values above the upper bound are mapped to white. Only the values
between the two bounds are used by the gray value-based alignment algorithm. This port is only
active if a gray value image is used as input data.
Resample method
This port allows the user to decide which resample method will be used for the calculation of an
output image. The calculation takes place when the apply or the realign button from the Action port
is pressed. Two resample methods are possible:
Preview: A very quick but not very precise method. It should only be used as solution
preview.
High Quality: A much slower but very accurate interpolation method.
Action
Press the Edit button to open the align tool. Press the Resample button to create a new field according
20
Chapter 1: Avizo
to the transformations made in the align tool. The new field will have by default the dimensions of
the input image. The dimensions can be altered by the resize dialog. Press the Resample to Result
button to overwrite an attached result. If a labelfield is attached to the existing result, the labelfield
will also be transformed so that the former labels will also fit after the align procedure.
Commands
performance
Computes the number of frames per second in the Image Viewer.
setSliceNumber <n>
Sets the current editable slice to be n.
getSliceNumber
Gets the current editable slice.
setEditableSlice {lower|upper}
Of the two currently displayed slices, sets the editable slice to be the lower/upper one.
getEditableSlice
Returns whether the editable slice is the upper or lower of the currently displayed slices.
translate <tx> <ty>
Translates the currently editable slice by tx on the X axis, by ty on the Y axis.
rotate <phi>
Rotates the currently editable slice by phi. Angle phi is considered to be in degrees and the rotation
is made counterclockwise.
setAlignMode {0|1|2|3}
Changes the current alignment mode. The meaning of the parameter is 0 = principal axes alignment,
1 = least squares alignment, 2 = landmarks alignment, and 3 = edge detection alignment.
getAlignMode
Changes the current alignment mode. The meaning of the result is 0 = principal axes alignment, 1
= least squares alignment, 2 = landmarks alignment, and 3 = edge detection alignment.
setViewMode {0|1|2|3}
Changes the display mode. The view modes are encoded as follows: 0 = magenta/green view, 1 =
checkerboard view, 2 = average view, 3 = invert view.
align
Aligns the current slices pair.
alignAll
Aligns all slices.
AlignSlices
21
22
Chapter 1: Avizo
getMaxIntProjectionRefThickness <value>
Returns the number of slices to be used for the maximum intensity projection visualization of the
reference.
setMaxIntProjectionSliceThickness <value>
Specifies the number of slices to be used for the maximum intensity projection visualization of the
currently transformed slice.
getMaxIntProjectionSliceThickness <value>
Returns the number of slices to be used for the maximum intensity projection visualization of the
currently transformed slice.
1.5
Animate
The Animate module can be connected to any other object to animate its visibility or to animate the
value of one of the following ports: PortFloatSlider, PortIntSlider, PortFloatTextN, or PortIntTextN.
The animate module provides a time port which can be used to set the value of one of these ports of
the other object. The time value is not used directly to set the other ports value but is modified by a
user-defined expression. For example, if the time is running from 0 to 100 and you want to animate a
slice slider from 0 to 50, you have to use the expression t/2. More complicated expressions involving
functions such as sin or cos can be used as well. For a description of supported functions please refer
to the Arithmetic module.
Connections
Object [required]
Connection to the object containing the port to be animated.
Time [optional]
Optional connection to a time object. If the port is connected to a time object the time of that object
is used. In this way multiple modules with a time port can be synchronized.
Ports
Time
This slider allows you to set or animate the current time value. The time range and the increment
used for animation can be adjusted in the configure dialog which can be popped up using the right
mouse button.
Port
Animate
23
Option menu listing all ports of the connected object which can be animated. The selected port
actually will be animated. The special entry visible corresponds to the viewer mask rather than an
actual port.
Value
Use this text field to specify the expression used to compute the actual value of the port to be
animated. The expression can include two different variables, namely t denoting the current time
value, and u denoting the previous value of the port.
For the visible entry , the expression is interpreted as a boolean expression, where 0 means invisible,
while a number different from 0 means visible. You can use expressions like t>20 or ( (t>5)
&& (t<15)) || (t>100).
Value2
If the port to be animated has multiple text fields one expression port will be shown for each text
field. If you dont want to change the value of a particular text field, use the expression u, which is
the previous value of the port.
Commands
setMinMaxPortRange
Sets the minimum and maximum value of the time port to the minimum and maximum value of the
chosen port.
1.6
AnnotatedIsolines
This module computes isolines and their annotations for a regular 3D scalar field on a 2D cutting plane.
The field is sampled on a regular 2D raster first. Each rectangular cell of the raster is then checked for
isolines. Note, that this approach may lead to artifacts if the sampling density is too low.
Connections
Data [required]
Scalar field for which isolines are to be computed.
Projection [optional]
Module defining a projection used to project isolines and annotations.
Colormap [optional]
Colormap used for pseudo-coloring. If no colormap is connected all isolines have equal color.
24
Chapter 1: Avizo
Ports
Frame
This port is used to display or hide the frame, set the frame width and color.
Orientation
This port provides three buttons for resetting the slice orientation. Axial slices are perpendicular to
the z-axis, coronal slices are perpendicular to the y-axis, and sagittal slices are perpendicular to the
x-axis.
Options
If the adjust view toggle is set, the camera of the main viewer is reset each time a new slice orientation is selected.
With the rotate toggle you can switch the rotate handle for the cutting plane on and off.
If the immediate toggle is set, the slice is updated every time you drag it with the mouse in the 3D
viewer. Otherwise only the bounding box of the cutting plane is moved and the update takes place
when the mouse button is released.
When fit to points is checked, you will be asked to pick 3 points on any geometry in the scene. The
slice plane will be updated to intersect the specified points, and the rotate handle for the cutting
plane will be moved to the center of the triangle defined by the specified points. After the 3 points
have been picked, this toggle is automatically unchecked.
If the lighting toggle is set, the slice is lit.
Translate
This slider allows you to select different slices. The slices may also be picked with the mouse and
dragged directly in the 3D viewer.
Spacing
Control how isoline thresholds are being defined. In uniform a certain number of isovalues are
distributed equidistantly within a user-defined interval. In explicit mode the threshold for each
isoline has to be set manually.
AnnotatedIsolines
25
Values
In uniform mode this port contains three text fields allowing the user to define the lower and upper
bound of the isoline interval as well as the number of isolines being computed in this interval.
Values
In explicit mode an arbitrary number of blank-separated threshold values can be defined in this text
field. For each threshold a corresponding isoline is displayed.
Parameters
The resolution value determines the resolution of the sampling raster used for computing isolines.
The second input of this port determines the width of the isolines in pixels.
Options2
If update min-max is set then the isoline thresholds are automatically reset to some default values
whenever the data range of the incoming scalar field changes.
Colormap
Two toggle buttons are provided. If active is checked then the isoline annotations are drawn. Default
is non active. The toggle called texture text specifies if the text should be rendered using textured
font (better render).
Annotations path
Indicates how annotations are drawn on isolines. If choice is tangential path then annotations are
drawn according the tangent line of isolines. Horizontal path means that annotations are drawn
according the u vector of cutting plane, vertical path means that annotations are drawn according
the v vector of cutting plane.
26
Chapter 1: Avizo
Font size of annotations of contour lines. This value is a multiplicative factor of the domain size.
The font size impacts annotations position and number of annotations. As much as possible, the
annotations are placed to avoid crossing mesh lines or mesh contours.
Annotations font factor
Font size factor of annotations of contour lines. Its a multiplicative factor of font size. Useful when
using projection, a heuristic is applied to keep a ratio font size / mesh size. Sometimes to obtain
a better effect the default factor must be customized. Does not impact annotations positions and
annotations density.
Annotations gap
Curvilinear distance between two annotations of a same contour line. It is a multiplicative factor of
the domain size.
Annotations period
The major period defines the major and the minor contour lines. majorPeriod is the period of major
contour lines. Only major contour lines can be annotated. The first major defines the first major
contour lines.
Annotations contour clip
Defines if the contour lines are clipped by the annotations. Contour clipping is not allowed when
module is connected to a projection module.
1.7
Annotation
This module displays a 2D text (with unicode support) in the 3D viewer. Position and color of the text
can be specified by the user. This is useful for annotating snapshots. In order to create the module
choose Annotation from the main windows Create menu.
For color legends refer to the module Display Colormap.
Annotation
27
Ports
Background
Texts background color. If the transparent toggle is off, the annotation text will be drawn inside a
filled rectangle. The background color of this rectangle can be set via the color button of this port.
Position type
Radio box defining whether the text position should be specified in absolute coordinates (screen
pixels) or in relative coordinates ranging from (0,0) in the lower left corner to (1,1) in the upper
right corner.
In both cases when the x coordinate is negative the right side of the text is placed relative to the right
side of the viewer. Likewise, if the y coordinate is negative the top side of the text is placed relative
to the top side of the viewer.
Absolute position
The text to be displayed. This port supports Unicode character string. This enables to use every
alphabet for all languages in the world.
Font
This port enables to select and tune the font used by the displayed text.
1.8
AnonymizeImageStack
In the Parameters section of an image stack created from DICOM data the patients name may occur
at several locations:
28
Chapter 1: Avizo
Connections
Data
This port should be connected to the image stack to be anonymized.
1.9
ApplyBSplineTransform
Connections
Data [required]
The model image which was deformed during the registration. Alternatively, another data set can
be connected. This will then be transformed accordingly.
Control points [required]
Control grid vectors storing the transformation computed as a result of an elastic registration.
Reference [optional]
Optionally, the original reference image can be provided for determining the resolution of the output.
Ports
Resolution
The resolution of the output. Output can be the reformatted model image as well as the vector field
giving the movement of each model voxel.
Action
Apply transform creates the reformatted and deformed model image. This might take some seconds
ApplyBSplineTransform
29
because the reformatting is done using Lanczos interpolation. Control points creates the control
points which induce the deformation as a landmark data set. Control grid shows the deformed
control grid as a curvilinear data set, which allows for a combined visualization of the control grid
using LandmarkView for the control points and GridView for the deformed grid data set.
Vector field creates a vector field storing the movement of each voxel. It allows for visualizing
the deformation of space nicely if GridView or Vectors are chosen as display. To this end, it is
recommended to create a vector field of reduced resolution using port Resolution.
1.10
ApplyTransform
Every data object in Avizo can carry a transformation as described in Transformations. But only the
visualization of a field is changed not the representation in memory. That means if you scale a field
with the Transform Editor dimensions and voxelsize will be retained though the size seems to be
different on the screen. If you rotate a field the directions of the sampling planes will be still parallel
to the local axis but no longer parallel to the global axis. The module ApplyTransform tries to create a
new field in a way that it is displayed like the source field attached to the Data connection but without
transformation.
You can e.g., align one field to another and apply the transformation. Afterward you can directly work
with the two fields without having to take into account any transformation.
There are two different ways to use the module:
You can sample onto a given reference lattice.
You can give a plane, e.g., an ObliqueSlice. The result is sampled in planes parallel to the given
plane.
Applying a Transformation
Proceed as follows: Transform the field with the Transform Editor, the Registration module or any
other way that creates a transformation. If youre satisfied with the transformation, attach an ApplyTransform module to the field. Now you have to choose some options.
The Interpolation method:
Nearest Neighbor chooses for every new voxel the value of the voxel in the source field nearest
to it.
Standard interpolates linearly between the surrounding voxels.
Lanczos is the slowest but most accurate method that tries to approximate a low-pass filter that
is in accordance with the sampling theorem. If you have time and want to get the best result, use
this one.
The Mode:
30
Chapter 1: Avizo
cropped: The new field has the same dimensions and size as the source field. It is adjusted to
contain as much as possible of the source field.
extended: The new fields size is adjusted to contain all of the original field. To do this, the
voxelsize or the dimensions have to be changed. If you select this mode the Preserve port gets
visible.
The Preserve port:
Voxel Size: Adjust the result fields dimensions in a way that it has the same voxelsize as the
source field. Warning: This may lead to huge dimensions.
Dimensions: The result field will have the same dimensions as the source field.
After choosing the options press Apply and proceed.
Connections
Data [required]
The source field. The module operates on any regular 3D field with uniform coordinates and an
arbitrary number of data components per node.
Reference [optional]
A regular field with uniform coordinates providing a reference lattice or a plane defining a sampling
direction.
Ports
Interpolation
ApplyTransform
31
Mode
The result can be cropped to have the same properties as the source or it will be extended to contain
all of the source field.
Preserve
If the result is extended should it keep Voxel Size or the Dimensions of the source.
PaddingValue
The value used to fill the new cells when the result is extended.
1.11
ArbitraryCut
This module defines a plane which can be positioned and oriented arbitrarily inside the bounding
box of a data object connected to port Data. Mostly, you will work with derived modules displaying
some kind of geometry inside the plane defined by this base class. Examples of derived modules are
ObliqueSlice or PlanarLIC.
However, this base class also serves as a background plane on which so-called overlay modules display
their geometry. Examples of overlay modules are the Isolines module, the Vectors module, or the
Intersect module. In fact, if you select an overlay module from a data objects popup menu an instance
of ArbitraryCut called EmptyPlane will be created automatically.
You may also create an instance of ArbitraryCut by selecting Clipping Plane from the global Create
menu. The module does not display useful geometric output by itself, but it can be used to clip the
output of any other module in Avizo. In order to perform clipping you first have to connect port Data
to the data object being investigated. Then you can simply click on the modules clip button located in
the orange header block.
Connections
Data [required]
Connection to the data object from which the bounding box is taken.
Ports
Orientation
32
Chapter 1: Avizo
This port provides three buttons for resetting the planes orientation: xy perpendicular to the z-axis,
xz perpendicular to the y-axis, or yz perpendicular to the x-axis. The plane will be translated into
the center of the bounding box.
Options
If toggle adjust view is active, then the camera of the 3D viewer will be reset whenever one of the
orientation buttons is clicked.
If the rotate toggle is active, then a virtual trackball is displayed. By picking and dragging the trackball you may change the orientation of the plane. Remember that the viewer must be in interaction
mode in order to do so. The ESC-key inside the viewer window toggles between navigation mode
and interaction mode. The trackball of the last active ArbitraryCut can also be turned on and off by
pressing the TAB-key inside the viewer window.
The immediate toggle determines whether derived modules and downstream modules receive an
update signal while the plane is being translated or rotated or not. This toggle might not always be
visible.
The fit to points toggle lets you reset the plane by clicking on at least 3 different points in the scene.
After enabling this toggle, you should switch to interaction mode by pressing the ESC-key inside
the viewer. Then click 3 times at different points on any geometry in the scene. The plane then will
be automatically adjusted to match these points. The virtual trackball - visible when rotate toggle
is active - will be moved to the center of the picked points. After 3 points have been picked, this
toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking allows you to
select more than 3 points. In this case the plane that best fits the selected points will be computed.
The exact plane def. toggle lets you to show/hide exact plane definition ports.
Translate
This port lets you translate the plane along its normal direction.
Plane definition
ArbitraryCut
33
These ports can be used to specify the exact plane equation in 4 different ways (normal & point,
normal & distance, a point and 2 vectors, 3 points).
There are four ways in which a plane can be defined:
Normal & point: Plane can be defined by setting up a plane normal and one plane point.
Normal & distance: Plane can be defined with a plane normal and distance from the origin.
Point & two vectors: Plane can be defined with two vectors that lie on the plane (which
define the plane normal) and one point that lies on the plane.
Three points: Plane can be defined with three points. Three points are used to get two
vectors that lie on the plane from which the plane normal is calculated. With the plane
normal and one of the three points the plane is defined.
Commands
setMinPlanePoint <point>
Define the minimum plane position.
unsetMinPlanePoint <point>
Reset the minimum plane position.
setMaxPlanePoint <point>
Define the maximum plane position.
unsetMaxPlanePoint <point>
Reset the maximum plane position.
1.12
Arithmetic
The Arithmetic module performs calculations on up to three input data objects according to a userdefined arithmetic expression. The result is stored in a new data object called Result. The calculations
are triggered by the Apply button. The arithmetic expression is evaluated either on the grid of the first
data object (in case of regular, tetrahedral, or hexahedral grids or surfaces) or on a regular 3D uniform
grid for which the number of points can be set by the Resolution port.
The module is able to process input fields with up to 6 different channels. Scalar input fields are
referenced by the variables A, B, and C. The values of multi-component input fields are referenced for
example by Ax, Ay, Az (if input A is a vector field) or Br, Bg, Bb, Ba (if input B is an RGBA color
field).
34
Chapter 1: Avizo
In any case the expressions are evaluated per point, i.e., the result for a point (X,Y,Z) depends on input
values at the same point only. If the resulting object is based on a regular grid, grid indices I, J, or
K may also appear in the arithmetic expression. This means that for each grid point its associated
I, J, or K index value will be substituted in the arithmetic expression on evaluation. This is useful in
connection with comparison operators which produce a result of either zero or one. Computations may
be confined to a specific sub-grid this way.
An expression consists of variables and mathematical and logical operators. The syntax is basically
the same as for C expressions. The following variables are defined:
A: The values of a scalar field at input A.
B: The values of a scalar field at input B.
C: The values of a scalar field at input C.
The same variables as above for fields at input B or C, but with A replaced by B or C.
I: First index of a point (i,j,k) in a regular grid, or index of a point in an unstructured grid.
J: Second index of a point (i,j,k) in a regular grid, undefined for unstructured grids.
Arithmetic
35
K: Third index of a point (i,j,k) in a regular grid, undefined for unstructured grids.
R: The radius r = X 2 + Y 2 + Z 2 .
+ - / *
The basic mathematical operators.
!
Unary negation.
Unary minus.
%
The modulo operator.
> < <= >= != ==
The comparison operators greater, less, less or equal, greater or
equal, not equal, and equal. If the comparison is true the result is 1, otherwise it is 0.
&& || The logical operators and, or, and xor. A non-zero operand is interpreted as true,
while a zero operand is false. The result is either 1 (true) or 0 (false).
& |
The bitwise operations and and or. For bitwise and, the bits in the result are set to 1 if
the corresponding bits in the two operands are both 1. For bitwise or, the bits in the result are
set to 1 if at least one of the corresponding bits in the two operands is 1.
There are also some built-in functions:
pow(x,a)
Power function. Note that there is no power operator (the o perator exists but
means logical xor).
sin(x) cos(x) tan(x)
Trigonometric functions.
asin(x) acos(x) atan(x) atan2(x,y)
Inverse trigonometric functions.
sinh(x) cosh(x) tanh(x)
Hyperbolic trigonometric functions.
asinh(x) acosh(x) atanh(x)
Hyperbolic inverse trigonometric functions.
sqrt(x)
Square root.
floor(x) ceil(x)
Next largest or smallest integer number.
ln(x) log10(x) exp(x)
Logarithm and exponent.
rand()
Pseudo-random variable uniformly distributed between 0 and 1.
gauss()
Pseudo-random variable with Gaussian distribution (mean value 0, standard deviation 1).
erf(x) erfc(x)
Error function.
abs(x) fabs(x)
Absolute value.
min(x,y) max(x,y)
Minimum or maximum values.
For better understanding some examples of how to use the Arithmetic module follow:
36
Chapter 1: Avizo
Expression: A
The result is a copy of input object A. If A is defined on a tetrahedral or hexahedral grid and the result
type is set to regular together with an appropriate resolution, the expression leads to a conversion from
an unstructured grid to a structured regular grid. The same trick can also be used to resample a regular
field with stacked coordinates onto a uniform grid.
Expression: A-B
The result is the difference between input objects A and B. This expression is sometimes useful in
order to compare to different data sets.
Expression: 255*(A>127)
Simple thresholding: For every value of A the result is set to 255 if the value is greater than 127.
Otherwise the result is 0.
Expression: A*(B>0)
Simple masking operation: If B is zero, the result is also set to zero. Otherwise, the result is set to A.
For example, if A is a 3D image and B is a corresponding label field, the exterior parts of the object
(where B is zero) are masked out by this expression.
Connections
InputA [required]
The input may either be a 3D data field with an arbitrary number of channels or a tetrahedral or
hexahedral grid. The primitive data type of the result will be the same as this input, e.g., if input A
contains bytes the result will also contain bytes.
The input may also be a surface field or a surface itself. For example, you may want to capture the
values of a 3D data field at all points of a surface in a surface field. However, note that data on
surfaces can only be used as input if the output is defined on the same surface. Trying to evaluate a
surface field for points of a 3D grid or for points of some other surface is not possible, even if these
points lie exactly on the source surface.
InputB [optional]
Second input, can be any 3D data field or surface field.
InputC [optional]
Third input, can be any 3D data field or surface field.
Ports
Result channels
This port determines the number of channels of the result. By default, the result has the same
number of channels as input A. Alternatively, you can specify that the result should have 2 channels
Arithmetic
37
(complex scalar field), 3 channels (vector field), 4 channels (RGBA color field), or 6 channels (either
a complex vector or a symmetric tensor field of second order).
Expr
This port specifies the mathematical expression used to compute the result. If the result has more
than one channel, more expression ports will be shown.
Result type
With this radio box the grid type of the result can be set either to either the same as input A or to a
regular grid with uniform coordinates.
Resolution
If port Result Type is set to regular, the resolution of the regular field to be generated is set to the
values given here.
MinBox
Port to set the minimum x-, y-, z-coordinates of a bounding box around the output data object. If
one or more input data objects are connected, the bounding box of the first input data object is also
taken as the output bounding box.
MaxBox
Port to set maximum x-, y-, z-coordinates of the bounding box around the output data object.
1.13
Axis
The Axis module displays a coordinate frame. If the module is attached to an input data object, the
coordinate frame is adapted to the bounding box of the input object. Otherwise, global axes centered
at the origin of the world coordinate system are displayed. For convenience the View menu of the main
window contains a toggle button labelled GlobalAxis. Activating this toggle automatically creates an
Axis module in the Pool.
38
Chapter 1: Avizo
Connections
Data [optional]
Data object the axes should be adapted to.
Ports
Axis
This port lets you select for which direction axes should be drawn.
Options
This port provides three toggles: If arrows is set arrows are drawn at the top of each axis. If text
is set labeled ticks are drawn indicating the coordinate values. If grid is set a coordinate raster is
drawn between every pair of visible axes.
Thickness
Provides buttons for changing the colors of different parts of the geometry. By default, the x-, y-,
and z-axes are drawn in red, green, and blue, respectively.
Titles
This port lets you edit axis names. Default axis names are x, y, z.
Font
This port enables to select and tune the font used when displaying text.
Commands
getBoundingBox
Returns the bounding box of the volume enclosed by the axes.
Axis
39
1.14
BoundingBox
The Bounding Box module can be connected to any spatial data object in order to visualize its bounding
box. The bounding box of a data object encloses its extent in 3D. More precisely, it is obtained by
determining the minimum and maximum coordinates in the x-, y-, and z-directions.
Connections
Data [required]
Any spatial data object.
Projection [optional]
Any Projection object.
Ports
Options
This port allows you to select and modify the font used when displaying text. Note that this port is
shown only when the text option is activated.
40
Chapter 1: Avizo
1.15
BumpSlice
The BumpSlice module offers another method for the visualization of scalar data fields defined on
regular grids, such as stacks of tomographic images or simulation results. The data are visualized
by extracting an x-y slice out of the volume or grid. This slice is represented as a surface with a
depth visual effect. The data values can be mapped to colors or gray levels. This module requires
a graphics board supporting multi-texturing and shaders. Notice that this module may not render
properly semi-transparent parts with some transparency modes (sorted layers). You should then set
the transparency port to binary, resulting in fully transparent or fylly opaque rendering of slice
parts. The parameter DataWindow of input data can be used to control the colormap range or the
depth effect range. About data window see spatial data commands 26.25 and section Parameters in
chapter Program Description of the Avizo users guide.
Note: The depth visual effect works only on one light, usually the head light. To fine control
this effect, it is suggested to switch off the head light, add a directional (Menu View Lights Create
light) and control the direction of the directional light with using the dragger (show dragger option of
the created light).
Connections
Data [required]
The scalar field to be visualized, used for coloring. It is also used to control depth effect if no other
input data U, V, W is connected. The module accepts scalar field based on a regular lattice with
either uniform, rectilinear or curvilinear coordinates, and containing either float, integer or byte
data. RGB and multi-channel fields are not supported.
Projection [optional]
Connection to an optional projection module for spherical or cartographic projection.
U [optional]
Optional data controlling depth visual effect. The data slice having the closest index to sliceNumber
port is considered mapped over the whole displayed slice for emboss effect, regardless of actual
coordinates.
V [optional]
Optional data controlling depth visual effect, combined with U. The depth effect is set according to
sqrt(U*U+V*V). The data slice having the closest index to sliceNumber port is considered mapped
over the whole displayed slice for emboss effect, regardless of actual coordinates. Ignored if U is
not connected.
W [optional]
Optional data controlling depth visual effect, combined with U and V. The depth effect is set according to sqrt(U*U+V*V+W*W). The data slice having the closest index to sliceNumber port is
BumpSlice
41
considered mapped over the whole displayed slice for emboss effect, regardless of actual coordinates. Ignored if U and V are not connected.
Longitude [optional]
Optional float scalar field defining x coordinates (longitude) for the displayed surface. The connected field must match the dimensions (number of nodes or voxels in each direction) of the field
connected to Data connection port. Ignored if Latitude is not connected.
Latitude [optional]
Optional float scalar field defining y coordinates (latitude) for the displayed surface. The connected
field must match the dimensions (number of nodes or voxels in each direction) of the field connected
to Data connection port. Ignored if Longitude is not connected.
Colormap [optional]
Optional colormap used to map scalar data to colors. This port is hidden when linear mapping is
selected. See also Colormap.
Ports
Mapping type
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
mapped to white.
Colormap
42
Chapter 1: Avizo
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization opacity
values are taken from there.
1.16
CalculusMatlab
This module is available for Windows (32-bit and 64-bit), Linux and MacOS X.
This module establishes a connection to MATLAB (The MathWorks, Inc.).
The module works like a compute module and allows the computation on Avizo data objects in the
MATLAB workspace. Avizo data objects can be attached to the module and a MATLAB script file can
be specified. The following actions are performed:
all data objects attached are duplicated into MATLAB data objects
the script is executed
all variables defined are copied back into Avizo
There are limitations on the type of data objects used. Only lattice fields (scalar, complex, color
and vector fields) can be copied to MATLAB. They are named A, A1, ... , An (n > 1) in order of
connection to the module. Only data matrices with 4 or fewer dimensions are copied back to Avizo.
In addition to lattice fields, time sliders can also be attached. They provide a way to define scalar
variables that can be used to control the script (similar to parameters). In order to define a time slider,
use the AvizoCreate/Data/Time menu entry and connect it as well to this module. If there are multiple
time sliders, they will be named t, t1, t2, ... , tn where n is a number greater 0.
CalculusMatlab
43
Important Notes:
On
Linux,
the
LD LIBRARY PATH
environment
variable
should
be
on
Linux
32-bits
to
MATLAB INSTALLATION PATH/bin/glnx86
MATLAB INSTALLATION PATH/bin/glnxa64 on Linux 64-bits.
The PATH environment variable should be also set to
tt MATLAB INSTALLATION PATH/bin.
On MacOS X, the
tt
LD LIBRARY PATH
environment
variable
to
MATLAB INSTALLATION PATH/bin/maci
/Applications/MATLAB R2008b.app/bin/maci)
should
(for
be
set
and
set
instance:
Connections
Data [required]
You can add any number of data objects to the module. Currently only uniform fields are allowed
as valid data objects that can be transferred into MATLAB. Non-uniform coordinates such as curvilinear, stacked, tetra-grids, etc. are not supported.
New port [optional]
After attaching a new data icon to the module, a new port is generated which can be used to attach
additional data.
Ports
File
You can specify a text file which contains MATLAB script. Note that only scripts but not functions
are allowed. An example script could look like this:
% A is the first connected data object (in double precision)
% X is newly created and will be sent back to the application
X = fftn(A);
magnitude = abs(X);
amplitude = unwrap(angle(X));
clear A % clear all variables that you do not wish to export
After the script is executed the X, magnitude, and amplitude variables are copied back into the
Avizo workspace.
Here is a list of the supported MATLAB data types and how to create each one in the MATLAB
workspace.
44
Chapter 1: Avizo
Z1
Z11
Z12
Z2
Z3
Z4
Z5
Z6
=
=
=
=
=
=
=
randn(10,10,10,1);
% HxUniformScalarField3
randn(10,10,10);
% HxUniformScalarField3
randn(1,10,10,10);
% HxUniformScalarField3
rand(2,10,10,10);
% HxUniformComplexScalarField3
rand(3,10,10,10);
% HxUniformVectorField3
uint8(rand(4,10,10,10).*255); % HxUniformColorField3
randn(5,10,10,10);
% definition of Z5 will
% produce an error
= randn(6,10,10,10);
% HxUniformComplexVectorField3
This example also illustrates the time slider feature of the module here in order to control the number
CalculusMatlab
45
of iterations.
Here is an example of working with non-scalar data. In this case we have a colorfield attached to
input A.
useimage=1;
if exist(A) == 1,
if size(size(A),2) == 4,
if size(A,1) == 4,
Execute
Starts the execution of the MATLAB script. All generated messages will be printed in the Avizo
console window.
You can either execute the contents of the text buffer below (Buffer) or execute a selection of the
text in the buffer (Selection).
MatlabBuffer
46
Chapter 1: Avizo
Options
This module starts a MATLAB session in the background. Its interface can be made visible, thus
the user can interact with the running MATLAB process and inspect variables in its workspace.
Note: Even if the MATLAB interface is toggled to be visible, it may be minimized and therefore
not displayed.
1.17
CameraPath
This object can be created from the main windows Create menu. It lets you create a path for the
cameras of all viewers activated in the objects viewer mask. This is useful in order to create complex
animations. The animations can be recorded as movie files by attaching a MovieMaker module to this
object.
If you are using the Camera Path Editor make sure that you interact with the camera in the main
viewer to set up the key frames. The perspective camera should be used to allow changes of zoom to
be recorded.
Connections
Time [optional]
Optional connection to some other object providing a time source. This allows you to synchronize
multiple time-dependent objects.
Ports
Time
The current time value. Changing the time modifies the cameras in all viewers activated in the
objects viewer mask, i.e., with the orange viewer mask button being set.
1.18
CannyEdgeDetector
CameraPath
47
Connections
Data [required]
Any grey value or binary image (trivial).
Ports
Gauss sigma
Number of neighbouring voxels in both gradient directions which shall be compared to each voxel.
Connect Edges Mask Size
For the hysteresis step. A value of three means that edges which are separated by one voxel are
connected.
Connect Edges Threshold
All sobel edge values above Upper are regarded as true edges. If within their neighbourhood defined
by connectEdgesMask is a value above Lower, this will be included in the true edges set.
Action
Start computation.
1.19
CastField
This is a computational module that allows you to change the primitive data type of a regular 3D scalar
field or of an RGBA color field. A new scalar field will be created having the same dimensions and
the same coordinates as the incoming one, but the data values will be shifted, scaled, and cast to a new
data type.
48
Chapter 1: Avizo
As an additional feature, CastField is also able to convert a uniform scalar field of bytes into a label
field, which is commonly used to store segmentation results in Avizo. For each value or label occurring
in the incoming field a corresponding material will be created. Material colors may be defined via an
optional colormap.
Press the Apply button to start the computation.
Connections
Data [required]
The scalar field or color field to be converted.
Colormap [optional]
Optional colormap specifying material colors if a uniform scalar field of bytes is to be converted
into a label field. Only visible, if LabelField has been selected for output.
Ports
Info
Shows how the input data will be mapped during conversion. If no clipping occurs the input range
covers all values between the minimum and maximum data value of the incoming scalar field. This
range will be mapped as indicated. If clipping occurs, the minimum or maximum value of the output
range or both will be equal to the smallest respectively biggest value which can be represented by
the selected output data type. In this case the input range shows which values correspond to these
limits. Data values below the lower limit or above the upper limit will be clamped.
Output Datatype
Lets you select the primitive data type of the output field. The item LabelField is special. If this is
selected the incoming scalar field is converted into a label field.
Scaling
Defines a linear transformation which is applied before the data values are clamped and
cast to the output datatype.
The transformation is performed as follows: output =
SCALE*(input+OFFSET)
If you want to convert data with a range inmin ... inmax into a range outmin ...
outmax, SCALE and OFFSET are determined like this: SCALE = (outmax - outmin) /
(inmax - inmin) and OFFSET = outmin / SCALE - inmin
CastField
49
Options
This port is only shown if you want to convert the incoming scalar field into a label field. If option
clean labels is set then the materials found in the input data set will be relabeled so that the first
material is 0, the second is 1, and so on. If clean labels is not set then the resulting label field will
contain exactly 256 materials and no check is performed if a material actually can be found.
Colormap
This option menu will only be shown if an RGBA color field is to be converted. It allows you to
specify which channel of the color field should be regarded. In addition to the four RGBA channels
also Gray and Alpha*Gray can be selected. The gray channel is computed on-the-fly from the RGB
values of the color field according to the NTSC formula, i.e. I=.3*R+.59*G+.11*B.
1.20
CastLineSetToSpatialGraph
This is a computational module that allows you to convert a LineSet object to a SpatialGraph data
type. A new SpatialGraph will be created having the same dimensions and the same coordinates as the
incoming one, but the data will be cast to a new data type.
Connections
Data [required]
The LineSet data object to be converted.
1.21
CastSpatialGraphToLineSet
This is a computational module that allows you to convert a SpatialGraph object to a LineSet data type.
A new LineSet will be created having the same dimensions and the same coordinates as the incoming
one, but the data will be cast to a new data type.
Connections
Data [required]
The SpatialGraph data object to be converted.
50
Chapter 1: Avizo
1.22
ChannelWorks
This module allows to convert between scalar and vector fields. You can e.g., combine three scalar
fields into one vector field, or extract one of the six channels of a complex valued vector field to obtain
a scalar field.
Press the Apply button to start the computation.
Connections
Input1 [required]
Connects to a field, e.g., a uniform vector field, a uniform scalar field, 3D image volume, or field
defined on a surface.
Input2 [optional]
Optional second input, which accepts the same data types as the first input.
Input3 [optional]
Optional third input, which accepts the same data types as the first input.
Ports
Output
Select the desired output type: scalar field (1 channel), complex valued scalar field (2 channels),
vector field (3 channels), color field (4 channels) or complex vector field (6 channels).
Channel 1
Select which of the input channels is used as second output channel. This port is only present if the
output has more than one channel.
Channel 3
Select which of the input channels is used as third output channel. This port is only present if the
output has more than two channels.
ChannelWorks
51
Channel 4
Select which of the input channels is used as fourth output channel. This port is only present if the
output has more than three channels.
Channel 5
Select which of the input channels is used as fifth output channel. This port is only present if the
output has six channels.
Channel 6
Select which of the input channels is used as sixth output channel. This port is only present if the
output has six channels.
1.23
CityPlot
The CityPlot module offers another method for the visualization of scalar data fields defined on regular
grids, such as stacks of tomographic images. The data is visualized by extracting an arbitrary xy, yz,
or xz slice out of the volume. This slice is represented as a set of bars, one for each value. The height
of each bar is determined by the data value and a tunable scale parameter.
Connections
Data [required]
The scalar or color field to be visualized. If an RGBA color field is connected the bars of the city
plot are colored as in the color field. The height of the bars is determined by the grayvalue intensity
which is computed using the formula 0.3*R+0.59*G+0.11*B.
Color field [optional]
Optional scalar field used for pseudo-coloring. Only RGBA color fields or scalar fields can be
connected. If an RGBA color field is connected, the colormap is not used and the bars of the city
plot are colored according to the RGBA values. If a scalar field is connected, the bars are colored
according to the scalar values and the colormap specified in the Colormap port.
Colormap [optional]
The colormap used to map data values to colors.
Texture [optional]
Not used.
52
Chapter 1: Avizo
ROI [optional]
Not used.
Projection [optional]
Specifies if the bars of the city plot are projected by a Projection module.
Filter mask [optional]
Optional scalar field used for masking bars of the city plot. Zero values mask bars of the city plot.
The size of the scalar field should be the same as the scalar field connected to the port Data .
Ports
Draw Style
Not used.
Culling mode
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Slice Number
CityPlot
53
This slider allows you to select the desired scale for the data-heights mapping. This should be in
the range [-1,1].
Filter Show
This port provides three buttons to filter the bars according to the filter mask:
All: Bars are not filtered,
On Data: All bars with a filter mask different from 0 are displayed,
Off Data: All bars with a filter mask equal to 0 are displayed.
1.24
ClippingPlane
The clipping plane module is an instance of the Arbitrary Cut module (for a description see there). It
can be created by selecting Clipping Plane from the main windows Create menu.
1.25
ClusterDiff
This module displays displacement vectors between corresponding points in two different data objects
of type Cluster. The displacement vectors may be colored according to their lengths or according
to any data variable defined in one of the input clusters. Like in the ClusterView module subsets of
points may be selected by drawing a contour in the viewer window or by specifying an arithmetic filter
expression.
Connections
Data
The first point cluster.
Data2
The second point cluster. Initially, this port will not be connected to any data set. In order
to use the module you have to establish a connection manually by activating the popup menu over
the white square on the left side of the modules icon.
Colormap
The colormap used for pseudo-coloring. The alpha channel of the colormap will be correctly taken into account unless the option opaque has been selected. However, note that many
default colormaps are completely opaque. In this case, use the colormap editor to make them
transparent.
54
Chapter 1: Avizo
Ports
Color
An option menu containing all data variables which can be used for pseudo-coloring. The data
variables symbols are displayed in brackets behind the names.
Options
This port allows you define an arithmetic filter expression. The filter expression is evaluated for
every pair of points. A displacement vector will only be drawn if for both points a non-zero result
is obtained. The filter expression may contain any arithmetic and logical operator defined in the C
programming language. All symbols listed in the color menu may be used in the filter expression.
For example, in order select all vectors shorter than 0.2 and with an energy larger than -4 use
(L < 0.2) && (E > 4).
Action
The button labeled Export A creates a new point cluster containing all selected points of the first
input cluster together with the corresponding data variables. Similarly, the button labeled Export B
creates a new point cluster containing all selected points of the second input cluster.
After pressing the Select button you may draw a contour in the viewer window in order to deselect
certain points. By default, all points inside the contour are deselected. If you keep the Ctrl-key
pressed down when starting to draw the contour all points outside the contour are deselected. Using
the Alt-key allows you to define straight-line segments.
ClusterDiff
55
The Reset button causes all points matching the filter expression to be shown again.
The Undo button undoes the effect of the last interactive contour selection operation.
Commands
setLineWidth <width>
Specifies the width of the displacement vectors. By default, the vectors are one pixel wide.
setLineSmooth {0|1}
Enables or disables line smoothing. By default, smoothing is on unless the opaque option has been
selected.
1.26
ClusterGrep
This module identifies common points in two different data objects of type HxCluster and copies them
into new cluster objects. Using this module you may for example extract the same set of points from
multiple clusters representing different time steps in a dynamic simulation.
Connections
A
The first point cluster.
B
The second point cluster. Initially, this port will not be connected to any data set. In order to use the
module you have to establish a connection manually by activating the popup menu over the white
square on the left side of the modules icon.
Ports
Points
This port displays the number of points in the two input clusters. If both input ports are connected
also the number of common points is displayed.
Mode
56
Chapter 1: Avizo
This port provides two radiobox buttons allowing you to specify which points are copied into the
output clusters. If inclusion is selected only common points are copied. If exclusion is selected only
points not present in the other cluster are copied.
Action
Button Export A copies points from the first input cluster together with associated data values into
a new cluster. Button Export B copies points from the second input cluster together with associated
data values into a new cluster.
1.27
ClusterSample
This module converts a set of points with associated data values into a uniform scalar field. The
conversion is performed by determining for each node of the uniform grid the nearest point of the
point set. The data value of that point will be taken at the grid node. The input data object must be of
type Cluster.
Press the Apply button to start the computation.
Connections
Data
Point cluster to be processed.
Ports
Variable
Option menu determining which variable should be converted into an uniform scalar field.
Resolution
This port provides three text field specifying the resolution of the resulting scalar field in x-, y-, and
z-direction. The default resolution is chosen so that a sufficiently high sampling rate is obtained
provided the input points are distributed homogeneously.
1.28
ClusterStringLabels
This module visualizes string labels associated with data objects of type Cluster. For information on
labeling cluster objects, see the Cluster documentation.
ClusterSample
57
Connections
Data [required]
Cluster object.
Ports
Labels
This port displays the list of all labels stored in the cluster object. The selected item is the label
being displayed.
Color
Displayed text color. To change the color, click on the Color button. A color editor will appear
which you can use to choose the desired color.
Font size
1.29
ClusterView
This module visualizes data objects of type Cluster. The vertices of the cluster may be rendered using
semi-transparent points, or using textured plates. Both, points and plates may be colored according
to any data variable defined in the cluster. Vertices of the cluster may be selected or deselected by
drawing a contour in the viewer window or by specifying an arithmetic filter expression. Finally, it
is possible to display bonds between neighboring points. This is useful, for example, if the points
represent atoms in a crystal lattice.
In plates mode (see below) individual points may be deselected by shift-clicking them. Clicking them
without the shift-key pressed causes their id to be printed in the console window.
58
Chapter 1: Avizo
Connections
Data
The point cluster to be visualized.
Colormap
The colormap used for pseudo-coloring. The alpha channel of the colormap will be correctly taken into account unless the option opaque has been selected. However, note that many
default colormaps are completely opaque. In this case, use the colormap editor to make them
transparent.
Ports
Color
An option menu containing all data variables which can be used for pseudo-coloring. The data
variables symbols are displayed in brackets following the names.
Options
ClusterView
59
This port allows you define an arithmetic filter expression. The filter expression is evaluated for
every point. Only points for which a non-zero result is obtained are drawn. The filter expression may
contain any arithmetic and logical operator defined in the C programming language. All symbols
listed in the color menu may be used in the filter expression. In addition, the symbols x, y, and z are
defined. These symbol indicate the coordinates of a 3D point. For example, to select all points with
positive x-coordinates and with an energy
Point size
Specifies the point size in pixels. Only visible if point mode is activated, i.e., if no spheres are
shown.
Scale data
Selects the data variable used for scaling plates. This port is visible if option plates and option scale
plates is enabled.
Sphere scale
Allows you to adjust the size of spheres shown if option plates has been selected. The default sphere
radius is computed from the bounding box of the data set. If option scale plates is enabled, the size
is computed as the data variable selected in scale data multiplied by sphere scale.
Action
The Export button creates a new point cluster containing all selected points of the input cluster
together with the corresponding data variables.
After you press the Select button, you can draw a contour in the viewer window in order to deselect
certain points. By default, all points inside the contour are deselected. If you keep the Ctrl-key
pressed down when starting to draw the contour, all points outside the contour are deselected. Using
the Alt-key allows you to define straight-line segments. In order to be visible, a point must pass the
filter test (see above) and the contour selection test. Both options are independent of each other, i.e.,
if you change the filter the current contour selection remains valid.
The Reset button resets contour selection mode. All points passing the filter test become visible.
The Undo button undoes the effect of the last interactive contour selection operation.
Commands
setBondColor <color>
Specifies the color used for drawing bonds between neighboring points. The color may be specified
by either an RGB triple in the range 0...1 or by a common X11 color name, e.g., red or blue.
60
Chapter 1: Avizo
setBondWidth <width>
This command allows you to change the width of the lines representing the bonds between neighboring points. By default, lines are drawn one pixel wide.
1.30
CollectiveTCL
With this module a Tcl command can be executed on a number of modules. These can either
be all visible or selected objects in the object pool or all objects of a certain type. Select Create/Animation/Demos/CollectiveTCL from the menu to add a CollectiveTCL module to the pool.
Press the Apply button to execute the Tcl command.
Connections
Data [not used]
The data port is a default script object port, but is not used by CollectiveTCL.
Ports
TCL Command
Specify here the Tcl command to be executed, e.g., setLineColor 1 0 0 to color all objects of type
HxDisplayLineSet.
Note that you can execute several commands on the object(s) if you use the Tcl variable obj. Pressing the Apply button of Isosurface could be accomplished by doIt hit; $obj fire.
Apply to Modules
Specify here whether the Tcl command should be executed on all visible objects, on all selected
objects, or on objects of a specific type.
Type
If you choose to execute the Tcl command on objects of a specific type, select the type here. All
types available in the Pool are listed here. The list is updated when this option is chosen.
1.31
ColorCombine
This module combines up to three source fields into an RGBA color field. The resulting field has the
same dimensions as the field connected to source1. Therefore it is imperative that there be a source1.
CollectiveTCL
61
ColorCombine connects to color fields, scalar fields, and scalar fields with a colormap. The relative
scale of the input fields is determined by their bounding boxes. The module supports three different
ways of merging the input data. Alpha Weighted weights the different inputs according to their alpha
values, i.e., inputs with a large alpha value become more prominent in the resulting field. Average
is the simple geometrical average of the inputs. Add & Clamp adds the values, making sure they
do not exceed 255. If all connected source fields are scalar byte fields of the same dimensions, the
module offers two more options: colormaps, which does exactly the same as the procedures above,
yet implemented in a much more efficient way, and RGB planes, which interprets source1, source2,
and source3 as the R, G, and B values of the resultfield, respectively.
Press the Apply button to start the computation.
Connections
Source1 [required]
A scalar or color field. This one determines the size of the result field.
Source2 [optional]
Another scalar or color field.
Source3 [optional]
And yet another one.
Colormap1 [optional]
The colormap for source field 1.
Colormap2 [optional]
The colormap for source field 2.
Colormap3 [optional]
The colormap for source field 3.
Ports
Colormap1
62
Chapter 1: Avizo
Colormap3
These radio buttons let you choose the combining algorithm. alpha weighted weights the different
inputs according to their alpha values, i.e., inputs with a large alpha value become more prominent
in the resulting field. average is the simple geometrical average of the inputs. add & clamp adds
the values, making sure they do not exceed 255. This port is only visible if the ColorMode port is
set to colormaps.
ColorMode
This port is only visible if all source fields are of equal dimensions and if they are all byte fields. It
means that faster algorithms are now in use and offers the special choice RGB planes, which makes
source1, source2, and source3 the R, G, and B components of the result respectively.
1.32
Colorwash
The Colorwash module helps you to visualize two scalar fields in combination, e.g., CT data and a
dose distribution. The module is attached to an OrthoSlice module visualizing the first field, e.g.,
medical CT data. The image of the OrthoSlice is modulated so that it also encodes the second field,
e.g., a dose distribution. The standard modulation technique is a weighted sum between the two scalar
fields.
In order to use the module, first select the scalar field to be colorwashed, e.g., a dose distribution. Then
choose Colorwash from the popup menu of an existing OrthoSlice modules. The new Colorwash module automatically connects to the selected scalar field. Alternatively, of course you can also connect
the Data port of the module by hand.
By default, the Colorwash module uses the colormap physics.icol. This default can be overwritten by
defining the global the global Tcl variable ColorwashMap. If the default colormap does not exist, the
colormap found in the object pool will be used.
Connections
Data [required]
The 3D scalar field to be colorwashed.
Module [required]
Connection to the underlying OrthoSlice module.
Colorwash
63
Colormap [required]
Connection to a Colormap.
Ports
Fusion Method
Specifies how the underlying OrthoSlice image is modulated. In any case the scalar field connected
to the Data port is first mapped to a color image using the colormap connected to the Colormap
port. This color image is then combined with the OrthoSlice background. The following modes are
supported:
Multiply: The colors (scaled to the range 0...1) are multiplied. A colormap containing bright colors
or white should be used, such as Avizos temperature.icol. Click here for an example.
Add: The colors (scaled to the range 0...1) are added and clamped. Both the background image and
the colormap should not be too bright in order to avoid overflows.
Weighted Sum: The background image and the color image are blended using a weight factor which
can be adjusted in a separate port (see below). If the weight factor is 0.5 the two images are just
averaged.
Magic Lens: A checkerboard pattern is generated, displaying the two images in the different
squares. The square size can be adjusted in a separate port (see below).
Overlay: In this mode a data range can be specified. Inside this range the background image is
replaced by the color image.
Alpha Blending: The background image and the color image are blended depending on the alpha
values stored in the colormap.
Luminance Blending: The background image and the color image are blended like in standard
alpha blending. However, instead of the alpha values stored in the colormap the luminance of the
color values are used. Bright colors are more opaque than dark colors. This mode is useful for
non-transparent colormaps.
None: The background image is not modified at all. The module is essentially disabled.
WeightFactor
64
Chapter 1: Avizo
OverlayRange
Range of data values where the overlay image replaces the background in Overlay mode.
Commands
setNearestNeighbor
Enables nearest neighbor interpolation for regular scalar fields. By default regular fields are interpolated trilinearly, except for label fields, which are evaluated using nearest neighbor interpolation
in any case.
1.33
CombineLandmarks
This module merges an arbitrary number of vertex set objects into a single landmark set.
Press the Apply button to start the computation.
Connections
Data [required]
Accepts a vertex set object. As soon as this port gets connected, an additional source port will be
created. This allows to merge a practically unlimited number of data objects.
Source2 [optional]
See above.
Ports
Unify sets
If this option is chosen, the resulting landmark set will contain only one set of landmarks, i.e., all
vertices will be added to the same set. Otherwise, the vertices of the different input objects will be
added to different sets. In order to ensure that all sets have the same number of markers the input
object with the maximum number of vertices is determined and all other sets are filled with (0,0,0)
if necessary.
1.34
CompareLatticeData
This module takes two regular fields with the same dimensions and the same number of data variables
per voxel (i.e. lattice node) as input and computes the average difference per voxel between both. In
addition, a new field with the pointwise difference of both inputs can be generated.
CombineLandmarks
65
Connections
InputA [required]
A 3D regular field. Any coordinate type (including rectilinear, curvilinear), primitive data type, or
number of data values per voxel are accepted.
InputB [required]
A 3D regular field with the same dimensions and the same number of data values per voxel as input
A.
Ports
Average error per voxel
If this toggle is set a new field with the pointwise difference between both input data sets is created.
1.35
ComputeContours
This module compute contours for a 3D label set using 2D cutting planes orthogonal to the selected
axis (x,y or z). There is one cutting plane per each slice of the set; the plane has the same coordinate
as the slice. If the labeled set contains subvoxel accuracy informations (weights) the contours can be
computed using this information too (this is an option and by default is on). It is possible to compute
only the contours that separate one certain material; this can be done by selecting a material from a
menu. The default settings compute contours between all the materials.
Press the Apply button to start the computation.
Connections
Data [required]
The label set to extract contours from.
66
Chapter 1: Avizo
Ports
Orientation
Controls the direction used for contours computing. The cutting planes will be orthogonal to this
axis. For example, if z axis is selected, all the contours will be contained in xy planes.
Options
There is only one check button which controls the use of subvoxel accuracy information, if present.
Materials
Selects a material; only contours separating this material from others will be computed. By default,
all the materials and implicitly all the contours are considered.
1.36
ComputeVolume
This module computes the volume between horizons and produce a HxSurface It must be connected
to a Multifield module that gather the horizons. Each horizon has a wheight corresponding to its input
position in the MultiField module. Each horizon with a weight w is constrained by the horizons of
stronger wheights.
Connections
Data [required]
MultiField
Ports
Channels
fields
Action
ComputeVolume
67
Produce the surface describing the volumes. The surface has one Material per volume.
1.37
ConnectedComponents
This module searches connected regions in a 3D image volume. The regions are detected based on
thresholding, i.e., a region is a set of adjacent voxels with intensity values lying inside a user-defined
range. The module is useful for counting cells on a dark background.
Press the Apply button to start the computation.
Connections
Data [required]
Image data set to be analyzed. Only byte fields are supported.
Ports
Info
After pressing Apply, this port will display the number of detected regions, the volume of the smallest and the largest region, and the average volume.
Intensity
Voxels with values outside this intensity range are considered to be part of the background.
Floodfill Type
Defines the connectivity type. In case of 6 neighbors voxels with a common face are considered to
be connected. In case of 18 neighbors voxels with at least one common edge are considered to be
connected. Finally, in case of 26 neighbors voxels with at least one common vertex are considered
to be connected.
Size
Minimal and maximal size in voxels of the regions. Regions smaller or larger than this range are
considered part of the background. If Max is zero no upper size limit will be implied.
Output
68
Chapter 1: Avizo
If Region field is checked, a scalar field of type byte will be created. Voxels which were considered
to belong to a region are set to some non-zero value, while background voxels are set to zero.
Different connected regions will be assigned different values, so that the regions can be visualized
using color coding. However, since the output type is byte the region labels are not unique if more
than 255 components are found. The regions can be visualized in 3D by using e.g., an Isosurface
module with threshold 0.5. Alternatively, the result can be cast to a label field using CastField and
then the SurfaceGen module can be applied.
If Spreadsheet is checked, a spreadsheet object will be created, containing a list with the size and
position of all detected regions.
1.38
ContrastControl
The ContrastControl module (Contrast in short) is an extension to the OrthoSlice and ObliqueSlice
modules. It is particularly useful for the gray or color value analysis of scalar fields like 3D image
data, as well as a preliminary stage for image segmentation. It allows a fast and intuitive adjustment
of the transfer function, mapping scalar values stored with the image data to those values used for
visualization.
With the help of ContrastControl the linear mapping of the data values to a subset of scalar values
or indices to color values, defined by a Colormap, can be modified. The term windowing is often
used within this context. The window defines a possibly narrowed view to the datas scalar values, for
enhancing the contrast of certain structures within the image data. The width of the window defines
the range of data values between a lower and an upper threshold which shall be mapped to a range of
values specified by the height of the window. In terms of gray value mapping a subset of thousands
of possible data values can be mapped to i.e. 256 gray values, linearly distributed on a ramp, varying
from black (0) to white (255). Black values are represented by the lower border of the window and
white values by the upper border. The center of the window might be located at any value of the image
data, thus the entire window can be shifted to various points for data evaluation.
The windows center and width can be modified with the two sliders in the Properties Area of the
Contrast module. These values can either be adjusted by shifting the sliders to the left or right, varying
ContrastControl
69
the values by a certain percentage of the image data range, or they can be specified numerically via the
appropriate entry fields.
For an overview of the current mapping, a graphical representation of the mapping function can be
displayed within the viewer window. In order to do so the toggle button in the Properties Area with
the Window Show label must be activated. The horizontal extent of the window graph specifies the
image data range from the lowest to the highest value. The linear ramp indicates the mapping function
where the area below or above the ramp represents the currently chosen mapping window .
Experienced users can directly use the mouse for a fast and simultaneous modification of the windows
center and width. The contrast can be adjusted via the left mouse button while the shift button is
pressed. Moving the mouse to the left or right moves the center of the window accordingly. Up and
down movements increase or decrease the width of the window. A vertical line (that means lower and
upper threshold are identical respectively the window width equals zero) indicates a binary mapping
of the image data values. All values below the windows center will be mapped to black and all
other values will be mapped to white. Moving the mouse further down will invert the mapping, thus
exchanging black and white values.
Connections
Module [required]
Connection to an OrthoSlice or ObliqueSlice module.
Data [required]
Connection to the scalar field is automatically established via the OrthoSlice module.
Ports
Data Window
This port displays information on the image data range. In verbose mode the current data window
will be displayed, too.
Center
The window center can be positioned between the minimum and maximum value of the image data
range. The increment value for slider movement is 1 percent of the image data range. More accurate
values can be specified via the numeric input field.
Width
The window width can be adjusted between 0 and the total image data range. The increment value
70
Chapter 1: Avizo
for slider movement is 1 percent of the image data range. More accurate values can be specified via
the numeric input field.
Window
This port enables or disables the display of a graphical representation of the linear transfer function
within the viewer. If it is enabled an additional port appears, which allows the specification of the
graphs position. The graph will be updated synchronously with the contrast adjustment.
Position
This port is only visible when Window Show is enabled. The input values are the X- and Y position
of the graph within the viewer. The lower left corner of the viewer has the coordinates (0, 0).
Negative coordinates are relative to the right respectively upper border of the viewer. Both values
can also be modified by moving the mouse pointer into the appropriate entry field, pressing the shift
key and moving the mouse.
Commands
verboseMode {0|1}
Setting verboseMode to a value not equal to zero leads to a permanent refresh of the current data
window settings via the mapping port. Due to the possibilities of changing the window settings
quickly this leads to flickering results and furthermore reduces the interactive adjustment speed. A
value of 0 is the default.
showWindowGraph
This is just a command line interface for the window port, bringing the window graph up front.
hideWindowGraph
This is the counterpart to showWindowGraph, removing the window graph.
info
Prints out a short info to the ContrastControl module.
setLineColor <r> <g> <b>
Using setLineColor you can change the visual appearance of the window graph. This is useful when
the currently chosen background color interferes with the line color of the graph. The RGB triple
specifies how much a certain color component contributes to the resulting color. These values are
clipped to 0 and 1.
setMouseSensitivity [<value>]
Direct contrast adjustment with the mouse (Shift - Left Mouse Button) in interactive mode can be
amplified or damped using this command. The default value is 0.5 times 1 percent of the total image
data range. The value is clipped to 0.1 and 1
ContrastControl
71
1.39
CorrelationPlot
This module computes a 2D correlation histogram of two uniform scalar fields (e.g. image stacks).
It detects regions of correlated intensity in two images of the same object. The result of correlation
analysis can be applied for an image segmentation because regions of high correlation are likely to
represent a unique material. The module can be connected to a MultiChannelField or to two separate
images of the same dimensions. The correlation histogram is computed as follows:
The data values of each input image are subdivided into a user defined number of intervals.
Element (i,j) of the 2D histogram contains the number of all voxels where the data values
fall into interval i for the first image and interval j for the second image.
Typically, CorrelationPlot is used for co-localization analysis in fluorescence microscopy, where the
spatial distribution of two fluorochromes has been recorded in two different channels. There, the
module finds the regions where the fluorescence signal is high in both images.
A further application of CorrelationPlot is the segmentation of multi-modal images such as CT and
MRI. In this case, the images must be registered, i.e., the object position must be identical in both
images. Use module Registration for achieving this alignment, followed by module Resample for
resampling the model data set to the lattice of the reference data set. For the correlation analysis
of medical image data from different modalities, CorrelationPlot lets you define arbitrary intensity
ranges.
Besides the 2D histogram, the module computes basic statistics for the image pair such as the number
of co-localized voxel pairs, the Peak-Signal-to-Noise-Ratio, and the correlation coefficient.
A graphical representation of the correlation histogram is shown in an extra 2D plot window using
a user-defined colormap. The objective of a correlation analysis is to find and select regions of high
correlation, which occur as local maxima in the 2D plot. Such regions can be selected either by
manually drawing in the 2D plot window or by numerically entering subrange limits.
The selected regions can be used for a segmentation of the image data sets. For this, CorrelationPlot
optionally generates a LabelField. The number of labels is given by the number of selected regions in
the 2D plot. For each selected region, all voxels of the image data sets with corresponding data values
are assigned to the respective label.
72
Chapter 1: Avizo
Connections
Source1 [required]
First input, must be a scalar field with regular coordinates or a MultiChannelField field.
Source2 [optional]
Second input, must be a scalar field with regular coordinates or a MultiChannelField field.
The module takes the first two fields that it can find in the input objects connected to the two
source ports. If, for instance, a MultiChannelField field with three channels is connected to source1
and a scalar field to source2, the module takes the lattices from channel1 and channel2 of the
MultiChannelField as input lattices, ignoring the third channel and the scalar field connected to
source2.
Colormap [optional]
Optional colormap used to map the values of the correlation histogram. The range values of the
colormap are ignored by this module.
Ports
Input1
The first two text fields define the data range of Input1 used for computing the correlation histogram.
Typically, the number of background voxels (low intensity or 0) that co-localize in two images
overwhelms those of the structures of interest. Therefore, min and max can be set to exclude certain
intensity ranges from the analysis. The text field labeled num bins: adjusts the number of bins and
thus the coarseness of the histogram. In the case of input fields with byte or short as primitive data
type the number of bins is internally adjusted such that each bin has the same integer width.
Input2
Defines data range as well as the number of bins for the 2nd input. See description above for details.
Gamma correction
This port defines the value of an exponent gamma used to specify the mapping of the histogram
entries to color values. First, the histogram entries are normalized to their maximal value. Then,
before the color is looked up, an element x of the correlation histogram is replaced by xgamma .
Choosing a gamma value less than 1 emphasizes small values. This is useful for similar reasons as
described for port Input1.
Colormap
CorrelationPlot
73
Before plotting them, the histogram entries are normalized to values between 0 and 1. The colormap
connected to this port is used for the histogram look-up. The range of the colormap will be ignored.
If no colormap is connected, a gray map is used.
Selection by
Two methods are supported for selecting regions of the histogram. In manual draw mode one can
use one of the draw tools from the tool bar at the upper border of the plot window. In the second
mode labeled subrange, one can define a range of values for each of the two input fields. This
selects a rectangular subregion of the histogram. In subrange mode, two additional numbers are
computed as described below.
Region action
Press this button to remove the last selected region. This port is only shown in manual drawing
mode.
Sub range1
This port is only available in subrange mode. Here the boundaries of the subrange for Input1 are
defined. To change the subrange with a visual feedback in the plot window, use the mouse wheel to
single step or hold down the shift key while moving the left pressed mouse for making bigger steps.
Sub range2
The Compute Histogram button recomputes the correlation histogram and pops up the plot window.
The Create LabelField button computes a LabelField using the current selection.
Input 1
Prints relative (%) and absolute (n of ntot ) numbers of voxels specified in the min and max fields of
port Input1.
Input 2
74
Chapter 1: Avizo
Prints relative (%) and absolute (n of ntot ) numbers of voxels specified in the min and max fields of
port Input2.
Input
Prints the fraction (relative to total number of voxel pairs) and absolute number of voxel pairs within
specified interval. Only these pairs are considered for the histogram generation. The second value
is the Peak-Signal-to-Noise-Ratio [dB], which is calculated according to
PSNR = 10 log10 (
1
),
MSE
(1.1)
Prints the correlation coefficient of the voxel pairs considered for histogram generation.
Selection
Prints the relative (%, relative to Input) and absolute numbers of selected voxel pairs.
Sub range 1
This port is available only in subrange mode. It prints the number of voxel pairs inside the set
specified by the first subrange. The final selection is the intersection of the voxel pair sets defined
by the first and the second subrange.
Sub range 2
This port is available only in subrange mode. It prints the number of voxel pairs inside the set
specified by the second subrange.
1.40
CreateCluster
This module converts a vertex-set object to a point cluster object. The point cluster object stores
the coordinates of the vertices but does not keep any other information such as the connectivity of a
surface.
Press the Apply button to start the computation.
CreateCluster
75
Connections
Data [required]
The vertex-set object to be converted.
1.41
Curl
The Curl module computes the curl of a vector field consisting of floats defined on a uniform grid. The
output is another uniform vector field.
curlV =
Vy Vx
Vz Vy
Vx
Vz
y
z z
x x
y
Connections
Data [required]
Vector field defined on a uniform grid (HxUniformVectorField3). The vector components must be
floats.
1.42
CurvedSlice
The CurvedSlice module lets you display arbitrarily curved slices through a 3D scalar field or along a
curve for a 2D field. A 3D scalar field having a dimension equal to 1 along one axis is treated like a
2D field. Three mapping methods are available for mapping data values to colors or gray levels.
Connections
Data [required]
The 2D or 3D field to be visualized. Currently, regular scalar fields and RGBA color fields with
uniform or stacked coordinates are supported. For 3D fields, the slice is curved through the field.
For 2D fields, the whole field is extruded along the curve.
Curve [optional]
Curve defining a fence. The curve can be either a BSpline or a LineSet. When using a LineSet, a
BSpline is automatically created and connected.
76
Chapter 1: Avizo
Colormap [optional]
The colormap used to map data values to colors. This port is ignored when linear or histogram
equalized mapping is selected.
Ports
Viewer
This option menu controls how scalar values are mapped to screen colors. For linear mapping,
a user-defined data window is mapped linearly to black and white. If histogram is selected, an
adaptive histogram equalization technique is applied. This method attempts to show all features
of the data, even if a wide range of values is covered. Finally, colormap can be used to activate
pseudo-coloring.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible data
values (brightness and contrast). Values below the lower bound are mapped to black, while values
above the upper bound are mapped to white.
Contrast limit
This port is only visible if histogram equalization is selected. The number determines the contrast
of the resulting image. The higher the value, the higher the contrast in the resulting image. A value
of zero means that contrast will not be limited at all.
Colormap
CurvedSlice
77
This port is displayed if colormap is selected. Choose a colormap to map data to colors.
Transparency
This radio box port determines the transparency of the slice. None means that the slice is fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is taken as is. If a colormap is used for visualization, opacity values are taken
from there.
Sampling
This port provides four choices for specifying the texture resolution:
coarse: lowest resolution. For 3D fields, 128x128. For 2D fields, size-of-field divided by 8.
medium: medium resolution. For 3D fields, 256x256. For 2D fields, size-of-field divided by 4.
fine: intermediate resolution. For 3D fields, 512x512. For 2D fields, size-of-field divided by 2.
finest: highest resolution. For 3D fields, 1024x1024. For 2D fields, size-of-field.
For 2D data fields, selecting finest resolution ensures that the texture and the field have the same
resolution.
Profile
This port is only shown for 2D fields, and specifies the coordinate relation between the profile and
the 2D field.
(x,y)->(X,Y): coords of profile correspond to (x,y) values of field.
(x,y)->(Y,X): coords of profile correspond to (y,x) values of field.
Slice direction
78
Chapter 1: Avizo
Action
Commands
createImage <image-base-name>
This command creates a 2D image from the slice and adds it to the Pool. The image base name can
be omitted.
1.43
Cutting Plane
The Cutting Plane module can be connected to any display module derived from ViewBase. The
module provides a special cutting plane of finite size which can be rotated, translated, and scaled
interactively. The module then computes the intersections of all triangles shown by the ViewBase
module with the cutting plane. The resulting line segments are stored in a LineSet object. Optionally,
the module can be used without any input. In this case the intersection of any surface-like geometry
shown in the main viewer is computed.
Note: Surfaces and tetrahedral grids can be more easily intersected with a plane using the Intersect
module. This module also provides a Tcl command which can be used to export a LineSet object.
Connections
Data [optional]
A display module derived from ViewBase, e.g., Isosurface or SurfaceView. If no input is specified
the entire scene will be cut with the plane.
Ports
Orientation
This port provides three buttons for resetting the cutting planes orientation: xy perpendicular to the
z-axis, xz perpendicular to the y-axis, or yz perpendicular to the x-axis.
Options
If resample is checked, the resulting lines are resampled so that line segments of equal length are
Cutting Plane
79
obtained. The length of the resampled line segments can be adjusted using a separate slider (see
below). If add to result is checked the resulting lines will be added to an existing result object.
Otherwise, for each cutting operation a new result will be created.
SampleDist
This port is only visible if the resample option is checked (see above). It specifies the preferred
length of the resampled line segments.
Action
The Cut button actually computes the intersecting lines. The Clear result button removes all line
segments from the current result.
1.44
CylinderSlice
This module displays the values of any scalar field on a cylinder. The cylinder surface is mapped on a
planar slice and shown in an extra viewer. The cylinder is specified by the dragger position. The height
is computed by the length of the diagonal of the bounding box of the scalar field. The module provides
the same ports as ObliqueSlice. Additionally, it allows to save the cylindrical slice to an image. The
image format is selected by the file name extension.
Connections
Data [required]
The scalar field.
Module [required]
The OrthoSlice or ObliqueSlice that specifies the dragger plane.
Ports
Viewer
80
Chapter 1: Avizo
Data Window
The four choices coarse, medium, fine, and finest correspond to an internal resolution of the underlying texture map of 128, 256, 512, and 1024 square pixels, respectively.
Transparency
The position of the cylinder center with respect to the base plane and the cylinder radius.
Distance
Display the distance between the cylinder center and the the center of the slice.
Zero Angle
Sets the angle (in degrees) that determines the position of the vertical line along which the cylinder
surface is cut to be then mapped on the planar slice.
CylinderSlice
81
Commands
createImage <image base name>
This command creates a 2D image from the cylindrical view and adds it to the Pool. The image
base name can be omitted. To perform this action, the viewer should be visible.
setResolution <n> <r0> <r1>
Sets the image resolution to r0 r1, with n determining the sampling: 0 for coarse, 1 for medium,
2 for fine and 3 for finest.
setResolution <n> <r1>
Same as the previous command with r0 = r1
cylinderP erimeter
cylinderHeight .
1.45
DataProbe
The three data probing modules PointProbe, LineProbe, SplineProbe are used to inspect scalar or vector data fields. They have many features in common so they are described in one section. The probes
are taken at a point (PointProbe) or along a line (LineProbe, SplineProbe) which may be arbitrarily
placed. The controlpoints of the data probing modules determine the locations where the samples are
to be taken. PointProbe has one controlpoint which is the samplepoint, LineProbe has two controlpoints which are the endpoints of a line which is subdivided into a number of segments given by the
Samples port or by the Distance port, and SplineProbe has at least three controlpoints that define a
spline that goes through the endpoints and approximates the points in between. The spline curve is
subdivided into a number of segments given by the Samples port or by the Distance port by which the
sample points are obtained.
To place the controlpoints within the bounding box of the given geometry you can either type in the
coordinates in the port Points (see below) or you can shift the points interactively with the mouse. The
latter can be done by turning the 3D viewer into interactive mode (ESC key) and picking and moving
the crosshair dragger of the current point (see Points port options to show/hide the dragger). You can
also pick a location with the middle mouse button on a pickable object in the scene, e.g. an OrthoSlice
or a surface, to set the current point to that location.
The plot immediately changes if the immediate mode toggle is set. Usually the sampled values are
plotted against the length of the probe line or as a bar in case of PointProbe in an extra plot window.
If you use more than one data probing module of the same type all plotted curves will be shown in one
plot window.
82
Chapter 1: Avizo
PointProbe displays the value at the sample point and the material if material values are set. LineProbe
and SplineProbe display the length of the line and of the spline respectively.
A module of type ProbeToLineSet can be connected to a LineProbe or a SplineProbe module in order
to save the probe line and the sampled values.
Connections
Data [required]
Can be connected to arbitrary 3D fields. The LineProbe module can also be attached to 3D input
objects other than fields such as surfaces or Open Inventor geometry. In this case the LineProbe
doesnt sample any data but simply measures distances.
Ports
Orientation
This port which is used in LineProbe and SplineProbe provides three buttons to specify the probe
line orientation: perpendicular to the x-y-plane, to the x-z-plane, or to the y-z-plane. If one of these
buttons is pressed, the start and end coordinates of the probe line are set to the minima and the
maxima respectively of the corresponding axis and to the center of the two axes perpendicular to
the probe line.
Options
The immediate option determines whether the samples are taken while the controlpoints are being
moved or when the motion is finished. If the interpolate option is on, interpolation is used to
evaluate the value of the Point Probe. This port is shown only for module PointProbe.
If the orthogonal option is on, all points are moved in sync, when the coordinates of one point are
changed with the dragger. This port is not shown for module PointProbe.
The customize sampling option is only available for SplineProbe. If it is off, the sample points
will be equal to those of the tessellated displayed spline. Otherwise, Control port will be used to
compute the sample points.
The follow slice option is only available for regular scalar fields. If it is on, the line probes 3D point
positions are set at the scalar fields orthoslice positions. A slice number port appears and lets you
control the position for the probe. When setting the slice number, all the points of the probe are set
at the defined slice position. The orientation of the slice controling the probe points is chosen with
the orientation buttons. The orientation is x-y-plane by default.
Evaluate
DataProbe
83
If the probe is connected to a vector field, these radio buttons are shown. If the magnitude button
is set the magnitude of the vectors is shown in the plot window. With the normal+tangent Comp.
button set you get the normal and tangential components as two curves. Setting the all button shows
all components of the vector field as separate curves.
Points
Here you can see and/or type in the coordinates of all controlpoints the data probing module makes
use of. The options menu lets you toggle whether a dragger or a sphere is shown for the controlpoints. You can also append, insert or remove controlpoints if this module is a SplineProbe module.
Furthemore in case of a SplineProbe or a LineProbe, you have the possibility to see where the line
is being drawn by using the Interactive Feedback option.
Control
With these radio buttons you can choose which of the following two ports are used to compute the
sample points. This port is not shown for module PointProbe. If you have chosen the adaptive
button, the module tries to keep the number of samples which can be seen in the plot window as
close as possible to the number given with the appropriate slider. I.e. the more you zoom into the
plot window the more exact are the curves in the plot window.
Samples
This slider allows you to choose the numbers of samples along the probe line. This port is not
shown for module PointProbe.
Distance
This slider allows you to choose the distance between two consecutive sample points along the
probeline.
Options
The average option averages the probe values by taking samples on a disk perpendicular to the
sampling points and smoothes the sampled values along the sampling line(s). This button is only
available for a LineProbe or SplineProbe module.
Radius
The radius of the sampling disk. This slider is only shown if the above average option is chosen.
84
Chapter 1: Avizo
Longitudinal Width
The width determines how many sampling values are used for smoothing. This slider is only shown
if the above average option is chosen.
Plot
If the Show button is pressed a plot window appears where the sampled values are plotted against
the length of the probe line. Note: There will be only one plot window regardless of how many
Line Probe modules there are in your setup. Every line probe is represented in that plot window by
a curve bearing the name of the corresponding module.
Offset
This port is used in LineProbe and SplineProbe. It allows you to add an offset (i.e. translation) to
the plot window X-Axis coordinates.
Commands
getInterpol
Returns the currently used interpolation method.
setInterpol {none|linear|spline}
Sets the interpolation method. none means no interpolation at all and the sample values are taken
at the controlpoints only.
getOrder
Returns the order of the spline probe.
setOrder <value>
Sets the order of the spline probe.
getPoint [<index>]
Returns the coordinate of the requested controlpoint. Index defaults to 0.
setPoint [<index>] <x> <y> <z>
Sets the coordinates of controlpoint index. Index defaults to 0.
getSamplePoints
Returns the coordinates of all points where samples are taken.
getSampledValues
Returns all sampled values.
DataProbe
85
setImmediate {0|1}
Switches the immediate mode on or off, i.e. data is shown while the probe line or point is being
moved.
setOrtho {0|1}
Switches the orthogonal mode on or off, i.e. all controlpoints of a probe line are moved in sync or
not.
getNumPoints
Returns the number of control points of a probe line. In case of a point probe 1 is returned.
getLength
Returns the length of the probe line. 0 in case of a point probe.
appendPoint <x> <y> <z>
Appends a controlpoint with the given coordinates.
insertPoint <index> <x> <y> <z>
Inserts a controlpoint with the given coordinates as the indexth point.
removePoint <index>
Removes the given controlpoint.
1.46
Delaunay2D
This module takes a set of 3D vertices and produces a triangulated surface with 2D topology, using a
Delaunay algorithm. In order to do so the vertices are internally projected either into the xy-, xz-, or
yz-plane or alternatively onto a cylinder or sphere whose axis is parallel to the x-, y-, or z-axis. By
default the cylinder or sphere is automatically positioned so that it matches the center of the vertices.
However this projection center can be defined by the user. The incoming data object must be derived
from a vertex set, cf. section Vertex Set in chapter Program Description of the Avizo users guide. Note
that the Delaunay algorithm may take some time and possibly memory, especially for large data sets.
The closed sphere or closed cylinder projection mode may imply significant additional computation
time. If the input is not of planar topology, like, e.g., a sphere, the result will probably not be useful. If
multiple 3D vertices project to the same 2D vertex, the result is undefined. In the latter case, it might
be help to issue a jitterPoints 0.001 0.001 0.001 command on the command line.
If the input data set is of type Cluster and if this cluster has data associated to it, then these data values
are converted into one or more surface scalar fields.
Press the Apply button to start the computation.
Connections
Data [required]
The vertex set to be triangulated.
86
Chapter 1: Avizo
Ports
Projection
Lets you select whether the 3D points should be projected into a plane or onto a cylinder or a sphere.
If closed cylinder or closed sphere is selected then a closed surface will be created.
Plane
This port lets you select on which plane the 3D vertices should be projected on in case of a planar
projection.
Axis
This port lets you select the orientation of the cylinder or sphere axis in case of a cylindrical or
spherical projection.
Projection center
This port let you change the center for cylindrical or spherical projections . By default this is the
center of vertices of input data.
Reset projection center
The first number defines an optional internal scaling applied to the 3D vertices. The direction in
which the scaling is applied depends on the selected projection type. The option is useful if the
3D points are distributed non-isotropically, i.e., if the average feature size in different in the three
coordinates. Note that an external scaling defined with the transformation editor is currently not
taken into account by this module.
The second number lets you specify a maximum edge length in 3D space. Delaunay triangles with
edges longer than this limit are discarded. When computing the 3D edge length the scaling factor
defined by the first parameter is taken into account. When a new input is connected and no other
input was connected before the max edge length field is initialized with half of the average edge
length of the bounding box of the data set. A maximum edge length of 0 indicates that no triangles
should be discarded.
Delaunay2D
87
Commands
setTriangulator {0|1}
Lets you select the triangulation algorithm. McDelaunay is provided for compatibility with former
version. MeshVizDelaunay (0:default) is a faster implementation.
1.47
DemoMaker
Using the DemoMaker module, you can create an animated sequence of operations, e.g.
for automatically running demonstrations or for advanced movie recording.
Select Create/Animation/Demos/DemoMaker from the menu to add a DemoMaker module to the Pool.
Defining and storing a demo sequence
The demo sequence is a set of actions over a time range as represented by the modules Time port.
A wide range of such actions can be defined, e.g. switching a toggle value on or off, varying the
numerical value of some other modules port over time, and defining breaks to interrupt the automatic
demo sequence.
Actions are defined by first selecting an entry from the GUI elements port. This port lists all GUI
elements of all modules that currently exist in the Pool, except the ports of the active DemoMaker
module itself.
Once you have selected the right element (or a different action type like a pause, break, go-to, or an
arbitrary Tcl command) from the GUI elements menu, additional ports will show up below the GUI
elements port, depending on the type of the selected element (e.g. numeric, toggle, button, ...). Using
these ports, you can define the time (or time range) of the action on the DemoMaker Time line as well
as the value to which the selected GUI element will be set at that time (see example below).
When action time and values have been defined, press the Add button in the Event List button line.
This adds the desired action to the DemoMakers list of events as represented by the Event List menu.
Multiple sequential, overlapping, or parallel actions may be contained in one demo sequence.
Once a part of the desired action sequence is defined, simply store it by choosing File / Save Network...
from the menu. DemoMaker in its current state will be saved along with the rest of the Pool. When
saving the network, make sure the Time slider is in the desired starting position.
Playing a demo sequence
For playing the demo sequence as defined, simply press the Time sliders play button (triangle pointing
to the right) or press the corresponding function key F4. The sequence will run from the current time
step to the end of the demo, or to the next break as defined by the user (see Defining a break below).
The play button will change into a stop button, and pressing that button or pressing the F3 function
key immediately stops playing. If the demo stops at a user-defined break, continue by again clicking
the play button or pressing F4.
If the demo is stopped at the beginning or at some user-defined break, you can press the function key
88
Chapter 1: Avizo
F10 to jump to the point of the next break, or to the end of the demo. Similarly, pressing F9 jumps to
the previous break or to the very beginning of the action sequence. Once you have jumped to the right
step of the demo, simply press play or F4 again to play it from there.
If the action sequence is running too fast or too slow, you can adjust its speed using the Time ports
Configure option (right-click onto the time port, see time port documentation). Note that the playback
speed can only be adjusted for the complete time range at once. If you want only to change the speed
of only part of the sequence, you must do so by adjusting the time range of the corresponding action
entries.
Usage Example
Here is a small example to demonstrate the way DemoMaker works. Load motor.am from the
tutorials subdirectory of the Avizo installation directory. Connect an OrthoSlice module and an
Isosurface module. Create a DemoMaker by selecting it from the Create/Animation/Demo menu.
Now your network should look similar to this:
All available user interface ports of the modules in the Pool should now appear in the GUI element
port of the DemoMaker module. If not, press the Update button.
Now select OrthoSlice/Slice Number from the GUI elements menu. Fields for specifying start/end
values and start/end time appear. Enter 86 and 0 as start and end values and 0 and 0.4 as start/end
time:
Now press the Add button to add this action event to the event list. Press the time sliders play button
to see the demo sequence just specified. You should see the OrthoSlice plane moving during the time
range from 0 to 0.4, but nothing happening in the time range from 0.4 to 1.0.
Now select a threshold of 70 in the Isosurface module and press Apply to make the surface appear
in the viewer. Now go back to DemoMaker, select OrthoSlice/Viewer mask/Viewer 0 from the GUI
elements menu, select on as the toggle value and 0.4 as the trigger time:
DemoMaker
89
Now press Add again to add this action to the list. Jump back to 0 by clicking on the time slider. You
should see that when jumping back (from later than 0.4 to earlier than 0.4) the Isosurface is switched
off. Then play the demo from the beginning, and you see that the surface is switched on right after the
OrthoSlice is moved.
As another exercise you can create a camera path (select Create/CameraPath or Create/CameraRotate
from the menu and edit the camera path to your liking. Then press Update in DemoMaker and select
CameraPath/Time or CameraRotate/Time as GUI element. Now the start/end value refers to the value
of the camera time slider. Enter the minimum and maximum values of that time slider. Enter 0.0 and
0.6 as the start/end time:
Now you see that in parallel to the actions defined before, the camera path is applied to the scene. Note
that you can execute only parts of a camera path, or concatenate multiple paths this way. However,
multiple camera paths cannot be used in parallel.
Connections
Data [not used]
The data port is a default script object port, but is not used by DemoMaker.
Time [optional]
The Time port is a quick way for synchronizing other modules with DemoMakers Time port, e.g.
for using the MovieMaker module or camera path modules like CameraRotate or CameraPath.
Alternatively, you can use camera path objects with DemoMaker by selecting these objects time
sliders from the GUI element port and making it part of the DemoMaker event list.
Ports
Time
90
Chapter 1: Avizo
The time slider defines the time range in which the demo sequence is played, and by clicking on the
slider, one can jump to an arbitrary point of the demo. Clicking one of the play buttons (triangles
pointing to the left/right for backwards/forwards) will start playing the demo. Right-clicking on the
port brings up a dialog box allowing you to change the range of the slider (min/max value) as well
as the increment determining the playback speed (smaller increment means slower playback). For
more information, see documentation of the time port.
Event List (Selection)
This menu contains the list of currently defined demo actions that make up the demo sequence. The
buttons below this menu always refer to the currently selected menu entry.
Event List (Buttons)
Manipulate the event list menu. Add adds the event defined in the lower part of the DemoMaker
module to the list of demo action events. When selecting one of the action entries from the Event
List menu, the Remove button deletes this entry from the list, and the Replace button replaces the
selected entry by the event as defined in the lower part of the DemoMaker module.
Functions
Activate/deactivate this DemoMaker instance, and show optional parts of the DemoMaker user interface, such as some option ports and some ports for editing the time line.
active: activate/deactivate this module. When deactivated, the module will not define any
function keys and not manipulate objects in the Pool. Deactivating is especially important
when using multiple alternative DemoMaker objects.
options: display option ports (see Options (1) - Options (3) below).
time edit: display ports for editing the time line (see Move from - Time edit below).
Options (1)
This port is only shown when the options toggle of the Functions port is enabled.
skip break: do not stop at user-defined breaks when playing the demo sequence.
skip pause: do not execute user-defined pause events (no waiting time).
Options (2)
DemoMaker
91
This port is only shown when the options toggle of the Functions port is enabled.
auto start: lets the demo start automatically when the network containing the DemoMaker
module is loaded.
function keys: when toggled off, no function keys (F3/F4/F9/F10) will be defined when the
network containing the DemoMaker module is loaded. This is especially important when
combining multiple DemoMaker modules, since only one module can define the function
keys.
Options (3)
This port is only shown when the options toggle of the functions port is enabled.
explicit redraw: when toggled on, for each time step the active viewers are explicitly called
to perform a redraw. If toggled off, Avizos auto redraw feature is used. If in some cases the
desired action sequence is not properly displayed in the viewer, try toggling explicit redraw
on.
debug: when toggled on, the actual Tcl commands that are executed during the demo sequence are output to the Avizo console. This will significantly slow down the graphical
display, but can be used for understanding what exactly happens in the demo sequence.
wait screen: enable a waiting image to be displayed during jumps on the time line. This is
only useful if jumping takes considerable amount of time, e.g. for very long event sequences.
If enabled, the Waiting image port will appear below this option for specifying the waiting
screen image file.
Waiting image
If the wait screen option is enabled, this port is used to specify the file name of the waiting screen
image. The image will be displayed during jumps on the time slider.
Move from interval
This port is only shown when the time edit toggle of the Functions port is enabled. Specify the time
interval to be relocated on the time line (see Moving events on the time line below).
Move to interval
92
Chapter 1: Avizo
This port is only shown when the time edit toggle of the Functions port is enabled. Specify the
target time interval for relocation on the time line (see Moving events on the time line below).
Time edit
This port is only shown when the Time edit toggle of the Functions port is enabled. Move events:
move all events within the Move from interval to the Move to interval on the time line (see Moving
events on the time line below).
GUI element
The selection menu contains all GUI elements in the current Pool that can be manipulated using
DemoMaker. If the Pool is modified (e.g. by loading a new data set or connecting a new module),
press Update to update the contents of the selection menu.
Additional Ports
Additional ports will appear in the DemoMaker module, depending on the type of GUI element the
user has chosen. These ports are listed in the following section, grouped by GUI element types.
Defining a break
Selecting *Break, continue on keypress from the GUI element menu lets you insert a break in the
demo sequence. When playing, the demo will stop at that point. See playing a demo sequence
above.
Trigger time
Defines the point in time (on the time slider) at which the break is inserted.
Defining a pause
Selecting *Pause, waiting time from the GUI element menu lets you insert a pause, where the demo
will stop and wait for a user-defined amount of time. Please note that such a pause will not be
executed if DemoMaker is driven by a MovieMaker object. In such a case, you must insert a pause
by adjusting the time slider range and adapting the time range of the action entries.
Trigger time
DemoMaker
93
Defines the waiting time in seconds. Please note that this time is taken in addition to the time defined
by the time slider range.
Defining a go-to
Selecting *Go-to, jump to user-specified time step from the GUI element menu lets you jump from
the one point in the demo sequence to another point. For example, you can simply define an endless
loop by jumping back to some previous time step. You can end the loop by pressing the stop button
or F3 (see playing a demo sequence above).
Trigger time
This defines the point in time (on the time slider) at which the go-to is inserted.
Time to jump to
This defines the point in time which the go-to will jump to. For example, to create a loop between
time 0.2 and 0.4, insert a go-to with Trigger time 0.4 and Time to jump to 0.2.
Defining a toggle
Toggle actions can toggle certain GUI elements between the two states on and off. Examples for
toggle values are the different options in a ToggleList port/a, or the orange viewer mask toggle(s)
present in every data object or display module (to switch the display of the module in the viewer on
and off).
Trigger time
This defines the point in time (on the time slider) at which the value is toggled.
Toggle to value
This defines the value (on or off) to which the selected GUI element is set at the defined trigger
time, if the demo sequence is played forwards. When playing or jumping backwards, the inverse
value is used.
94
Chapter 1: Avizo
Trigger time
This defines the point in time (on the time slider) at which the button is pressed or other action is
taken.
Modifier keys
This defines whether DemoMaker should emulate that Shift, Ctrl, or Alt is held down at
the time when the button is pressed. The meaning of these modifier keys depends on the module
defining the button to be pressed.
This defines from which old value to which new value the port will be switched at the specified
trigger time. When playing or jumping backwards, the two values will used inversely.
Trigger time
This defines the point in time (on the time slider) at which the port is set to a new selection value.
The two fields of this port define from which start value to which end value the value of the GUI
element will be varied. The values of this port are constrained to the range of the corresponding
GUI element.
Start/end time
This defines the time range (on the time slider) during which the port value will be varied from the
start value to the end value specified above. When playing or jumping backwards, the value will be
varied from the end value to the start value.
DemoMaker
95
Text field for typing the desired Tcl command. Within the command, special placeholders %0%,
%1%, %2%, ... can be used that will be replaced by numeric values. The start and end values for
these placeholders are defined in the ports described below.
Start value(s)
If the numeric placeholder %0% is used in the Command field, specify the start value for this placeholder. If multiple placeholders are used (e.g. %0% and %1%), specify space-separated start values
for all of the employed placeholders.
End value(s)
If the numeric placeholder %0% is used in the Command field, specify the end value for this placeholder. If multiple placeholders are used (e.g. %0% and %1%), specify space-separated end values
for all of the employed placeholders.
Start/end time
This defines the time range (on the time slider) during which the specified Tcl command will be
executed, with the placeholders replaced by values between the specified start and end values.
96
Chapter 1: Avizo
Simply enter the time interval that you want to relocate in the Move from port, enter the destination
time interval in the Move to port, and press the Move events button. If the new time interval is
outside of the current min/max time, the time slider configuration will be updated accordingly.
Commands
The following commands are methods of the DemoMaker script object. They can be called externally by first specifying the name of the script object (e.g. DemoMaker), followed by a space and
the name of the method. Example: DemoMaker play starts playing the demo sequence.
play
start playing the time slider at its current time step. This function is called when pressing F4.
stop
stop playing the time slider. This function is called when pressing F3. Also called the stop callback
(see below).
jumpNext
jump to the next user-defined break, or to the end of the demo. This function is called when pressing
F10.
jumpPrev
jump to the previous user-defined break, or to the start of the demo. This function is called when
pressing F9.
jump <breakidx>
jump to user-defined break. If breakidx is 0, this command will move to the beginning of the
demo. Otherwise it will be jumped to the breakidxth break.
setEndCallback <cmd>
sets an internal callback function to the specified Tcl code <cmd>. This code will be executed only
once when DemoMaker reaches the end of the time slider. Call with an empty string to disable the
callback.
writeDescriptionFile
opens a file dialog, where you can specify a file to which the description file should be saved. The
description file is an xml-file containing several predefined xml-tags describing the demo. Most
important of these tags are the commands to step through the demo. The description file is used to
automatically generate demosequence files and html pages for steering the demo.
DemoMaker
97
The *Load network action type for loading a different network file is currently not implemented.
For button action, snapping a button to automatic update mode is not supported yet.
GUI elements that are part of a Generic port are not properly represented in the GUI elements
menu of the DemoMaker module.
If a DemoMaker module is renamed (e.g. by selecting Edit / Rename... from the menu),
the function keys F3/F4/F9/F10 will no longer work. However, simply disabling and
re-enabling the function keys option in DemoMaker helps.
If you rename or remove modules after defining events with DemoMaker, then events involving these modules will generate errors. Please properly arrange your network before using
DemoMaker.
Further links
script object documentation for script programming.
1.48
DemoSequence
DemoSequence is a script object for steering Avizo demos. Demos in Avizo should be prepared using
the Demo GUI or the command-line tool.
Connections
Data [not used]
The data port is a default script object port, but is not used by DemoSequence.
Demo status display [optional]
Here you may add a module of type Annotation which displays the status of the current demo using
special characters:
First demo or demo step reached.
Last demo or demo step reached.
X Demo is executing.
. Idle, i.e., it is possible to jump to another step or demo.
L
98
Chapter 1: Avizo
The Annotation module should display its status in the lower right corner of the viewer (x,y: -20,
20).
If a DemoSequence module is created, an annotation module named DemoStatusDisplay is automatically created and connected to the DemoSequence module.
Ports
Script [required]
Mandatory port of a script object. Please do not press the Restart button!
Demo file
Filename of a file describing a sequence of predefined demos. This port is provided for compatibility
with older demos that do not use the Demo GUI. It is recommended to use the Demo GUI instead
of using demo files.
Note: If DemoSequence is used with the Demo GUI, this port is empty and not used.
Demos
Menu containing the list of all demos. You may select one of them and then press the Start button.
Options
auto start:
If DemoSequence is used with a demo file, the first demo will start automatically if
this option is on.
auto select: The DemoSequence will be selected after executing a new demo or step if this toggle
is on.
Demo
Displays the name of the current demo and its number out of the total number of selected demos.
DemoSequence
99
Demo Navi
Steps one demo backward (<< Demo) or forward (Demo >>) or reloads the current demo. It is
also possible to switch the demos by using the following function keys:
Ctrl-F2: Go back to the previous demo.
Ctrl-F3: Reload the current demo again.
Ctrl-F4: Go to the next demo.
Step
Displays the name of the current step and its number out of the total number of possible steps.
Step Navi
Steps one step of the current demo backward (<< Step) or forward (Step >>) or executes the
current step again (<Repeat>).
The Jump buttons allow stepping through single steps without executing them. They are activated
if the current demo defines jump commands.
It is also possible to switch the demo steps by using the following function keys:
Ctrl-F6: Go back to the previous step.
Ctrl-F7: Execute the current step again.
Ctrl-F8: Go to the next step.
Status:
Shows the status of the current demo.
1.49
DicomSend
This module sends all slices of a HxUniformScalarField3 to a remote DICOM node. Destination
nodes have to be configured. This can be done by clicking on the edit button. Before the images are
100
Chapter 1: Avizo
sent, a dialog box is opened allowing the user to edit DICOM relevant information. If the image stack
has a parameter bundle DICOM, DicomSend will look for available DICOM tags to pre-fill those
fields.
Connections
Data [required]
The image data set to be sent.
Ports
Dicom node
A table displays the current settings for each DICOM node. The user can edit the information in
the table by clicking on the desired table cell and typing in the new information. The columns and
their meaning are:
DicomSend
101
Name This is the name of the DICOM node as it appears in the pull-down menu of port
Dicom node.
Local AE title This is the name of the local DICOM node. Typically this name needs to be
known by the destination DICOM node.
Remote AE title This is the name of the destination DICOM node.
Host This is the name or IP of the host where the remote DICOM node is running.
Port This is the port number on the remote host that accepts DICOM images.
To add a DICOM node press the Add button and edit the fields in the table. To delete a DICOM
node select a row in the table and press the Delete button To accept the current settings press OK.
This writes the configuration into $AVIZO ROOT/share/dicom/DicomNodes.cfg. Press
Cancel to leave the dialog and discard any changes.
1.50
1.51
DisplayColormap
This module allows you to position a colormap icon in the 3D viewer. This is useful, for example,
to produce snapshots that contain an explanation of what specific colors mean. Note that although
colormaps are ordinary data objects in Avizo, they often are hidden by default. Use the Pool/Show
Object menu of the main window to display their icons in the Pool.
Connections
Data [required]
The colormap to be displayed.
102
Chapter 1: Avizo
Ports
Options
fontSettings
This port lets you edit font name, size and color of the text.
Position
Position of colormap in viewer relative to lower left corner. If one of the numbers is negative, it is
interpreted relative to upper right corner.
Size
Length and width of the colormap in pixels. If the option relative size has been selected, the length
and width are interpreted relative to a window size of 1000x800. If the actual viewer window is
smaller (or larger), then the displayed colormap will be smaller (or larger).
Custom Text
This is only available if the custom text option is selected. You may specify a space-separated list
of values to be displayed. In addition, you may specify a text string that is displayed instead of
the number by using the / character. The example in the image above has been generated using
this text: -8/cold 50/hot, which displays cold at value -8 and hot at the value 50 (the
colormap in this case ranges from -8 to 50). If the label text contain blanks, you must enclose the
text in double quotes, e.g., 100/"very hot".
DisplayColormap
103
Title
This port holds the title of the colormap. By default, this port contains an empty string.
1.52
DisplayDate
This module displays the value of a time object which can provide time as a calendar date. This is
useful for animations which shall contain an illustration of date.
Connections
Data [required]
Object which provides current date.
Ports
Position
Position of the date icon with respect to the lower left corner of the screen. If negative values are
entered the icon is positioned relative to the right and/or top of the screen.
Colors
The colors of the various parts of the icon can be set here.
Options
104
Chapter 1: Avizo
Date format
Choose the format for the date part. When a custom format is specified, these expressions may be
used:
Time format
Choose the format for the time part. When a custom format is specified, these expressions may be
used:
DisplayDate
105
1.53
DisplayLogos
This module displays the product logo (Avizo) as well as the VSG logo in the viewer window. In order
to do this, a specific Open Inventor file is loaded that contains transparent raster graphics files. The
user can choose between different versions, each having a different size.
Internally, the DisplayLogos script object loads the Open Inventor file and creates an IvDisplay module.
Choose Pool/Show All to see these hidden modules in the Pool.
Ports
Logo height
Related Topics
The resource file for this module also defines the global Tcl command
createLogos [size]
to easily display the logos. For convenience, this command hides the newly created DisplayLogos
module in the Pool. The optional argument size allows you to specify the size of the logo, where
only those values offered in the modules Logo height port are valid.
1.54
DisplayTime
This module displays the value of a time object in the 3D viewer using a textual or iconic representation. This is useful for for animations which shall contain an illustration of time. Four major styles are
available: plain text, a round clock, a horizontal time bar, or a vertical time bar.
This module should be connected to a Time object. In this case the current time is visualized. If no
Time object is connected, an arbitrary value which can be set using the commands of the port value
can be shown.
Connections
Time [optional]
The time object to be displayed.
106
Chapter 1: Avizo
Ports
Options
This port adjusts additional settings influencing the drawing. The last three options are disabled for
the text only draw style.
Position
Position of the time icon with respect to the lower left corner of the screen. If negative values are
entered the icon is positioned relative to the right and/or top of the screen.
Size
Specifies the length of the horizontal or vertical time bar (in pixels) and relative thickness of the
bars. If a clock is drawn length refers to the diagonal, while thickness is ignored. For text only
display both values are ignored.
Colors
The colors of the various parts of the icon can be set here.
Custom Text
This is only available if custom text option is selected. You may specify a space separated list of
values, that shall be displayed. Alternatively you may specify a text, which is displayed instead of
the number, by using the / character. The syntax is the same as for the Display Colormap module.
DisplayTime
107
Format
The format for displaying the time value (printf syntax of the C programming language).
Value
This port is always hidden. It can be used to specify a time value when no time object is connected
(via the Tcl interface).
Commands
setFontSize <points>
Changes the font size. The default font size is 28 points for text only displays and 14 points otherwise.
1.55
ExtractSurface
This module allows you to extract surfaces displayed by one or more modules like SurfaceView, GridVolume (Tetrahedra), or GridVolume (Hexahedra) (in fact, any module derived from ViewBase will
work). In order to extract a surface, first select the parts of the object you are interested in using the
selection mechanisms provided by the input modules. For example, in case of a SurfaceView module,
different parts can be selected via the materials menu, via the selection box (buffer show/hide), via 2D
lasso selection (buffer draw), or by selecting or deselecting individual triangles with the mouse. All
visible triangles will be extracted when you press the Apply button.
The resulting surface can be used for further computations, for example, as a SeedSurface.
Connections
Module1 [required]
Connection to a display module like SurfaceView, GridVolume (Tetrahedra), or GridVolume (Hexahedra).
Module2 ... ModuleN [optional]
Connections to additional display modules.
Ports
Options
Allows you to specify whether the extracted triangles will be added to an already existing result. If
108
Chapter 1: Avizo
not checked, the result will always be cleared before new triangles are added. If this port is checked,
the result cannot be restored on-the-fly when loading the network. Instead, the result needs to be
saved.
Result Actions
Commands
getNumInputs
Returns the total number of used and unused input connections.
setNumInputs num
Sets the total number of input connections.
1.56
FilteredObliqueSlice
The FilteredObliqueSlice extends the ObliqueSlice module by adding filtering capabilities on visualized data.
See the documentation of the base class for details about how to adjust position and orientation of a
slice and also choose the best data mapping method. User can defined the number of filter to apply.
Default filters are the ones proposed by the ImageEditor editor or ImageFilters compute module. The
ports of choosen filters are shown dynamically according the filters order. The number of filters is
currently limited for performance reasons.
Ports
Brightness
Controls the brightness of the slice. By default the brightness is set to zero; the slice is displayed as
is. The brightness value is in the range [0,1].
Contrast
Controls the contrast of the slice. By default the contrast is set to one; the slice is displayed as is.
The contrast value is in the range [0,2].
FilteredObliqueSlice
109
Number of filters
This port sets the number of filters applied to the slice. The first filter to be applied is filter number
1. Filters are applied in the order they appear in the GUI. You can apply up to 5 filters.
Filter#1
110
Chapter 1: Avizo
1.57
GetCurvature
This module computes curvature information for a discrete triangular surface of type Surface. Either
the maximum principal curvature value, the reciprocal curvature value, or the direction of maximum
principal curvature can be computed. The algorithm works by approximating the surface locally by
a quadric form. The eigenvalues and eigenvectors of the quadric form correspond to the principal
curvature values and to the directions of principal curvature. Note that the algorithm does not produce
meaningful results near locations where the input surface is not topologically flat, i.e., where it has
non-manifold structure.
Press the Apply button to start the computation.
Connections
Data [required]
The surface for which curvature information should be computed.
Ports
Method
Radio box allowing the user to select between two different computational algorithms. Choice on
triangles produces a surface field with curvature values or curvature vectors being defined on the
surfaces triangles. Alternatively, by selecting on vertices a surface field with data being defined on
the vertices can be generated.
Parameters
The first input, denoted nLayers, determines which triangles are considered to be neighbors of a
given triangle and which points are considered to be neighbors of a given point. If the value of this
input is 1, then only triangles sharing a common edge with a given triangle are considered to be
neighbors of this triangle and only points directly connected to a given point are considered to be
neighbors of this point. For larger values of nLayers successively larger neighborhoods are taken
into account.
The second input, denoted nAverage, determines how many times the initial curvature values computed for a triangle or for a point are being averaged with the curvature values of direct (first-order)
GetCurvature
111
neighbor triangles or points. The larger the value of nAverage the smoother the curvature data being obtained. Note that averaging only applies to the scalar curvature values, not to the directional
curvature vectors which are computed when port output is set to max direction.
Output
C1 C2
where C1 and C2 are the two principal curvatures.
Curvedness: computes the surface scalar field which values are equal to
q
1
C12 + C22
2
where C1 and C2 are the two principal curvatures.
112
Chapter 1: Avizo
1.58
GridView
This module allows you to visualize the grid structure of a regular 3D scalar or vector field with
uniform, stacked, rectilinear, or curvilinear coordinates. The nodes of the underlying grid can be
addressed using an index triple (i,j,k). The GridView module extracts slices of constant i, j, or k index
out of the grid and displays them as a wireframe model.
Connections
Data [required]
The regular field to be investigated.
Ports
Orientation
Specifies whether slices in the ij, ik, or jk plane should be displayed. For stacked as well as rectilinear coordinates the indices i, j, and k refer to the x, y, and z direction, respectively.
Geometry
This port is only visible if the module is connected to a real-valued 3D vector field. In this case the
grid may be built using the data values instead of the nodes coordinates or using both nodes and
data values. This is a useful option if the vector field contains displacement vectors.
Slice
Allows you to select the constant node index, e.g., the k index if orientation is set to ij.
1.59
Grouping
This module allows you to define arbitrary groups or surface triangles and/or elements of tetrahedral
or hexahedral grids. The groups can be used to easily display parts of more complex objects. The
grouping module can be connected to one or more ordinary display modules like SurfaceView, GridVolume (Tetrahedra), or GridVolume (Hexahedra) (in fact any module derived from ViewBase will
work). In order to define a group first select the parts of the object you are interested in using the
selection mechanisms provided by the input modules. For example, in case of a SurfaceView module
different parts can be selected via the materials menu, via the selection box (buffer show/hide), via 2D
lasso selection (buffer draw), or by selecting or deselecting individual triangles with the mouse. Once
GridView
113
the parts of the object you want to be in a group are visible, select the New group button. Later, this
particular display state can be restored by choosing the group from the Groups combo box again.
Internally groups are defined in a bitfield (one bit for each selectable element). The bitfields are stored
in the parameter section of the corresponding data objects. If the objects are saved in the AmiraMesh
or HxSurface file format after the groups have been defined the group definitions are saved too. In
addition, the group definitions will also be included in network files. Note that group definitions may
become invalid if the data objects are modified, e.g., if the number of triangles of a surface is reduced
using the simplification editor.
Connections
Data [required]
Connection to a display module like SurfaceView, GridVolume (Tetrahedra), or HexaView (Hexahedra).
Module2 [optional]
Connection to an additional display module connected to some other data object than the first one.
If multiple inputs are connected to the grouping module elements of all input objects can be grouped
together.
Ports
Groups
This combo box lists all groups currently being defined. Selecting a group from the box causes the
elements contained in that group to be shown, to be added to the view, or to be removed from the
view, depending on the value of the Action port (see below).
Action
This radio box defines what happens when a new group is chosen in the Groups menu. If show is
selected, the elements of the new group become visible and all other elements become invisible.
If add is selected the elements of the new group are added to the view. If remove is selected the
elements of the new group are removed from the view. If nop is selected nothing happens. This last
option allows you to change the Groups port without changing the view.
Rename
This text port allows to rename the current group. By default new groups are called Group1, Group2,
etc.
114
Chapter 1: Avizo
Edit
This port provides three button for creating a new group containing all elements currently being
visible (selected, not highlighted), for deleting the current group without changing the selection,
and for replacing the contents of a group by the elements currently being visible.
1.60
HeightField
The HeightField module offers another method for the visualization of scalar data fields defined on
regular grids, such as stacks of tomographic images. The data are visualized by extracting an arbitrary
xy, yz, or xz slice out of the volume. This slice is represented as a surface for which the heights of the
vertices are mapped to the data, using a tunable scale parameter.
Connections
Data [required]
The scalar or color field to be visualized. If an RGBA color field is connected the vertices of the
height field are colored as in the color field. The displacement is computed from the fields grayvalue
intensity which is computed using the formula 0.3*R+0.59*G+0.11*B.
ColorField [optional]
Optional scalar field used for pseudo-coloring. Only RGBA color fields or scalar fields can be
connected. If an RGBA color field is connected, the colormap is not used and the vertices of the
height field are colored according to the RGBA values. If a scalar field is connected, the vertices
are colored according the the scalar values in the colormap.
Colormap [optional]
The colormap used to map data values to colors.
ROI [optional]
Connection to a module defining a region of interest (not supported).
Ports
DrawStyle
HeightField
115
Culling mode
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Slice Number
This slider allows you to select the desired scale for the data-heights mapping. This should be in
the range [-1,1].
1.61
Histogram
This module computes the histogram of the data values of a scalar field or lineset and plots it in a
separate plot window. In addition, the mean value and the standard deviation are printed.
Press the Apply button to start the computation of the histogram and pop up the plot window containing
it.
Connections
Data [required]
The scalar field to be investigated. Regular fields, fields defined on tetrahedral or hexahedral grids,
and fields defined on surfaces are supported. Furthermore, you may connect linesets to this port.
ROI [optional]
Connection to a module providing a region-of-interest SelectRoi. If such a module is connected,
only the volume within the ROI is evaluated in the histogram.
Labels [optional]
A uniform label field which can be used to restrict the histogram to a certain material.
116
Chapter 1: Avizo
Ports
Info
Prints the mean value and the standard deviation of all input data values once the histogram has
been computed. Both info ports are only shown when the Apply button has been pressed, i.e. the
histogram has been computed.
Range
Defines the data range over which the histogram is to be computed. The Reset button adjusts the
data range so that it completely covers the values of the input object.
NumBins
Defines the number of bins (intervals) the data range is divided into. The histogram counts the
number of data values falling in each bin. In the case of integer input values, i.e., bytes, shorts, or
ints, the number of bins is internally adjusted so that all bins have the same integer width. This is
required in order to avoid aliasing effects.
Histogram options
If the line drawing toggle is set, the histogram is plotted as a line instead of a histogram. With the
logarithmic toggle set, the plot is shown with logarithmic scaling [Default].
Threshold
Histogram
117
Defines a threshold value and displays the percentage of all data values which lie above the given
threshold. The percentage corresponds to the given range. The threshold value is shown as a yellow
vertical markerline in the plot window. This markerline can be moved within the plot window by
pressing the left mouse button over the markerline and moving it to the new position. The new
position is then taken as the new threshold value. The computation and display of the threshold
value can be toggled on or off. This port is only shown when the histogram has been computed.
Tindex
The tindex value defines a reversed threshold value, i.e., a tindex of 90 returns the value where 90%
of the data values lie above that value. It is denoted by the reddish markerline in the plot window.
The computation and display of the index value can be toggled on or off. This port is only shown
when the histogram has been computed.
Material
If a label field is connected to the port Labels and the input data field is a regular scalar field, this port
provides the opportunity to compute the histogram for one material only. Otherwise it is hidden.
Data
If a lineset is used as input, then this port provides the opportunity to select the data channel for
which the histogram is to be computed. You may also compute the histogram for the coordinates of
the lineset.
Commands
showCumulative [{0|1}]
Switches the display of a cumulative plot on (1 (Default)) or off (0).
showRightCumulative [{0|1}]
Switches the display of a right cumulative plot on (1 (Default)) or off (0).
showDifferential [{0|1}]
Switches the display of a differential plot on (1 (Default)) or off (0). If there is a differential plot to
be shown the axis scaling is switched to linear, since there might be negative values.
1.62
InterpolateLabels
This module adds intermediate slices to a label field, thereby interpolating the labels. This is useful
e.g., to avoid stair-case effects in data sets with a large slice distance compared to the slice resolution.
118
Chapter 1: Avizo
Connections
Data [required]
Connects to a label field.
Ports
Materials
You can interpolate for all or for one material only. Multiple selected materials can be successively
added to the result.
Intermediate slices
For a uniform label field, this port specifies the number of intermediate slices. e.g., if your input
data set had 5 slices and you would specify 2 here, your result would have 13 slices.
Attempted slice distance
For a stacked label field, this port specifies the attempted slice distance for the interpolated field.
Depending on the actual slice distance in the stacked field, an appropriate number of intermediate
slices is inserted.
Interpolation
1.63
Intersect
The Intersect module shows the intersection of a surface or of the boundaries of a tetrahedral grid and
a cutting plane. For each triangle intersecting the plane a line segment is drawn. The plane description
is taken from a slicing module such as OrthoSlice or ObliqueSlice connected to port Module (any other
orange Avizo module can be used as well). Intersect can be chosen from the popup menu of an existing
slicing module. It can also be chosen directly from the popup menu of a surface or of a tetrahedral
grid. In this case an empty slicing module is created and Intersect is automatically attached to it.
Intersect
119
Connections
Data [required]
Surface or tetrahedral grid to be intersected.
Module [required]
Slicing module defining the cutting plane.
Ports
Line Width
This port allows you to restrict the number of triangles being intersected with the cutting plane.
By default all triangles of a surface or all boundary triangles of a tetrahedral grid are considered.
With the Clear button the list of possible triangles can be reset. Afterwards triangles adjacent to a
particular material can be added again by choosing that material from the ports option menu. With
the Create LineSet button the line segments drawn by this module can be exported into a line set
data object. The LineSet object will be added to the Pool. It then can be written into a file or can
be processed further in some other way. Individual line segments will be sorted in such a way that
polylines consisting of as many vertices as possible are obtained.
Lines
This port is only available if the module is connected to a tetrahedral grid. It specifies whether only
intersections with boundary triangles will be shown or intersections with all triangles of the grid.
Commands
setColor <r> <g> <b>
Sets the color of the intersection lines.
120
Chapter 1: Avizo
1.64
Isolines
This module computes isolines for an arbitrary 3D scalar field on a 2D cutting plane. The plane itself
is defined by another module which must be connected to port Module. Isolines are computed using
two different algorithms depending on the type of the incoming scalar field. If the scalar field is
defined on a tetrahedral grid then all tetrahedra intersecting the plane are determined first. The straight
isoline segments are generated for these tetrahedra according to the requested threshold values. If the
incoming scalar field is not a tetrahedral one then the field is sampled on a regular 2D raster first. Each
rectangular cell of the raster is then checked for isolines. Note, that this approach may lead to artifacts
if the sampling density is too low.
To execute a demo script illustrating the isoline module click here.
Connections
Data [required]
Scalar field for which isolines are to be computed.
Module [optional]
Module defining cutting plane used for isoline computation.
Colormap [optional]
Colormap used for pseudo-coloring. If no colormap is connected all isolines have equal color.
Ports
Spacing
Control how isoline thresholds are being defined. In uniform a certain number of isovalues are
distributed equidistantly within a user-defined interval. In explicit mode the threshold for each
isoline has to be set manually.
Values
In uniform mode this port contains three text fields allowing the user to define the lower and upper
bound of the isoline interval as well as the number of isolines being computed in this interval.
Values
In explicit mode an arbitrary number of blank-separated threshold values can be defined in this text
field. For each threshold a corresponding isoline is displayed.
Isolines
121
Parameters
The resolution value determines the resolution of the sampling raster used for computing isolines.
This parameter is ignored if the incoming scalar field is defined on a tetrahedral grid and the resample option is off. The second input of this port determines the width of the isolines in pixels.
Options
Two toggle buttons are provided. If update min-max is set then the isoline thresholds are automatically reset to some default values whenever the data range of the incoming scalar field changes.
The toggle called resample allows you to compute isolines using the resampling approach even if
the incoming scalar field is defined on a tetrahedral grid.
Colormap
1.65
Isolines (Surface)
This Isolines module computes isolines for a scalar field defined on a surface made of triangles. Inside
the triangles the scalar field is linearly interpolated if the scalar field contains values for every node.
If the field contains values for every surface triangle only, the isolines will follow the triangle edges if
the values of the neighboring triangles are appropriate.
Connections
Data [required]
A scalar field defined on a Surface can be connected to this port.
Colormap [optional]
A colormap is used to map the values represented by the isolines to a corresponding color. If no
colormap is connected, a constant color is used. See also Colormap.
Ports
Spacing
Controls how isoline thresholds are being defined. In uniform mode a certain number of isovalues
are distributed equidistantly within a user-defined interval. In explicit mode the threshold for each
122
Chapter 1: Avizo
isoline can be set manually. In offsets mode an isovalue can be selected using a slider. For each
given offset that is added to that isovalue, a isoline is depicted.
Values
In uniform mode this port contains three text fields allowing the user to define the lower and upper
bound of the isoline interval as well as the number of isolines being computed in this interval.
Values
In explicit mode an arbitrary number of blank-separated threshold values can be defined in this text
field. For each threshold a corresponding isoline is displayed.
Isovalue
In offsets mode this value is used as the base for each isoline. An isoline is displayed for each offset
in the Offsets port, adding each offset to the isovalue chosen here. This mode is particularly suited
for animation using Animate.
Offsets
In offsets mode an arbitrary number of blank-separated threshold values can be defined in this text
field. Each value results in an isoline. The isovalue is the sum of this value and that chosen in the
slider Isovalue.
Parameters
The input of this port determines the width of the isolines in pixels.
Options
If update min-max is set then the isoline thresholds are automatically reset to some default values
whenever the data range of the incoming scalar field changes.
Colormap
Isolines (Surface)
123
1.66
Isosurface (Regular)
This module computes an isosurface within a three-dimensional scalar field with regular Cartesian
coordinates.
Very high-resolution data sets can be downsampled to reduce the number of polygons being produced.
In addition, an internal polygon reduction method is provided that merges certain triangles of the original triangulation. This way, the number of triangles can be reduced up to 50%. A second independent
scalar field may be connected to the module. This field determines how the isosurface is colored. If no
color field is connected to the module the isosurface has constant color.
Press the Apply button to start the computation.
Connections
Data [required]
The scalar field defined on a regular 3-dimensional grid.
ColorField [optional]
Arbitrary scalar field which is mapped onto the isosurface using pseudo-coloring.
Colormap [optional]
The colormap is used for pseudo-coloring the isosurface.
Texture [optional]
The texture field must be an HxUniformColorField3 2D slice. When connected, the texture is
mapped onto the surface geometry along the texture normal axis. A transformation can be applied
to the data to change the texture projection axis and texture coordinates scale. Note that texture
projection override pseudo-color mode.
PointProbe [optional]
If this port is connected to a PointProbe module as isovalue the value at a certain point within the
scalar field will be chosen. For details see PointProbe.
ROI [optional]
Connection to a module defining a region of interest.
Ports
Draw Style
The draw style port is inherited from class ViewBase. For a description of this port see there.
124
Chapter 1: Avizo
Colormap
In case a colormap is connected to the isosurface module, this colormap will be shown here. If no
colormap is connected to the module the ports default color is used. To change this color, click into
the color bar with the left mouse button. This will bring up the color selection dialog. To connect
the port to a colormap, use the popup menu under the right mouse button. See also Colormap.
Culling mode
To use this port, you must first create a dragger. To do so, type the command Isosurface
showBox. Then the buffer port must be enabled explicitly with the command Isosurface
buffer show. For a detailed description see the ViewBase documentation.
Threshold
Determines the value used for isosurface computation. The slider is automatically adjusted to cover
the whole range of data values.
Options
If the compactify toggle is set, up to 50% less triangles will be produced, but it results in a slightly
shifted surface. This port further allows you to enable downsampling (see below).
Sample Factor
This port only appears if downsampling is enabled. It allows you to specify a sample factor for each
of the three main axes. The factors determine how many of the original grid points in each direction
will be merged into one.
TextureWrap
Wrap mode used for the texture projection on the surface. There are two wrap modes: Repeat: The
texture is repeated outside its 0-1 texture coordinate range. Clamp: Clamps texture coordinates to
lie within 0-1 range. This port is hidden if there is nothing connected to the Texture connection port.
Isosurface (Regular)
125
1.67
IvDisplay
The IvDisplay module renders an object containing Open Inventor geometry data.
Connections
Data [required]
Connect a data object of type IvData to this port.
Ports
Draw Style
This port provides a menu to select on of three draw styles to render the Open Inventor geometry.
1.68
IvToSurface
The IvToSurface computational module parses the connected Open Inventor scene graph (Open Inventor geometry data) and converts it into the surface format. This is done when you press the Apply
button. A green icon named GeometrySurface representing the generated surface should appear in the
Pool.
If no data object is connected, all geometry currently displayed in the first viewer is converted.
Duplicated points are removed during the conversion. Duplicated points are points with a distance less
than the diameter of the bounding box times the given Relative Tolerance factor.
Connections
Data [required]
Connect a data object of type IvData to this port.
Ports
Relative Tolerance
126
Chapter 1: Avizo
If the create edges and connectivity option is set, the triangle connectivity of the Surface data format
is filled.
The create color field option controls whether an additional vector field containing color values is
created from the Open Inventor data that approximates the diffuse material properties. This data
can be used as a ColorField when displaying the geometry.
1.69
LabelVoxel
Connections
Data [required]
Image data to be segmented.
Ports
Regions
This port lets you specify the names of the different regions to be segmented. Between two and five
regions may be specified. The individual region names must be separated by blanks.
Exterior-Material1
Lets you set the threshold separating the first and second region.
LabelVoxel
127
Material1-Material2
Lets you set the threshold separating the second and third region.
Material2-Inside
Lets you set the threshold separating the third and fourth region.
Options
Toggle subvoxel accuracy causes certain weights to be computed, indicating the degree of confidence of the assignment of a voxel to a particular region. This information is used by the surface
reconstruction algorithm to create smooth boundary surfaces, see the SurfaceGen module. If no
weights are present quite blocky surfaces occur. Note that weights can also be defined using the
smoothing filter of the Image Editor.
The second option extend exteriors will detect the biggest connected component of voxels not assigned to the first region, i.e. Exterior and assign them to the Exterior.
Finally, if option bubbles is set an algorithm similar to remove couch is applied in order to detect
bubbles inside the Exterior. Because of their low intensity values otherwise these regions would be
assigned to Exterior.
Action
The Histo button makes a window pop up showing a histogram for the input image data.
1.70
LandmarkSurfaceWarp
This module deforms a vertex set object using a number of pairs of corresponding points, which are
represented by a LandmarkSet. The warping methods and the meaning of the ports are the same as in
the LandmarkWarp module. Please refer to its documentation for details.
1.71
LandmarkView
This module displays a landmark set as small spheres, or in case of specialized markers shows a
specific geometry.
128
Chapter 1: Avizo
Connections
Data [required]
The landmark set to be displayed.
Box [optional]
The bounding box of the associated image data. The box is used to determine the projected positions
of the landmarks.
Ports
Point Set
You may select whether only the first, only the second, or all point sets are shown.
Lines
Display lines connecting corresponding points in the first and second set. This option is only present
if the input contains two or more point sets.
DrawStyle
Landmarks can be displayed either as spheres or as simple points. This is selected in the first radio
box. If the input contains a large number of points (several hundred, or thousands), point style can
significantly improve display performance.
In the second box, the projected positions are displayed as circles on the bounding box boundary.
The box is either taken from the connection Box or computed from the landmarks.
Size
The larger this value is, the nicer the spheres look, but the lower the rendering speed is.
Commands
setColor <set> <r> <g> <b>
Set rgb color for one landmark set (all color values in the range between 0 and 1).
LandmarkView
129
setColor <set>
Get rgb color for one landmark set.
setLineColor <r> <g> <b>
Set rgb color for connecting lines.
getLineColor
Get rgb color for connecting lines.
getLineWidth
Get line width of connecting lines.
setLineWidth
Set line width of connecting lines.
1.72
LandmarkWarp
This module deforms a 3D uniform scalar field (e.g., image data) using a number of pairs of corresponding points, which are represented by a LandmarkSet.
Three different transformation modes are offered: Rigid transforms the input image by applying a
global translation and rotation. Bookstein uses so called thin plate splines proposed by Bookstein.
Flow uses scattered data interpolation. Bookstein mode guarantees that all landmarks will be transformed exactly to their corresponding points. This is not the case for the two others. In all three modes
nearest neighbor interpolation is used for resampling.
Press the Apply button to start the computation.
Connections
Data [required]
The LandmarkSet, which defines corresponding points. It must contain at least 2 sets of landmarks.
ImageData [optional]
The data set (3D uniform scalar field), which is to be transformed.
Master [optional]
If this port is connected to a uniform scalar field, the output field will have the same bounding box
and resolution as the master.
Ports
Direction
130
Chapter 1: Avizo
Select whether points in the first set are to be moved towards their corresponding points in the
second set, or the other way round.
Method
Export a displacement field which is defined on the output grid (xoutput xinput ). The data type
of the output is given by the input data type. Usually you will need to convert the input to float first
(use CastField).
Beta
Only available in Flow mode: The larger this value is chosen, the more local and the less smooth
the resulting transformation becomes. On the other hand for beta=0, the transformation is constant.
In detail the basis function used in the flow method is
f(p1,p2) = exp(- d(p1,p2) * beta).
Norm
The norm to measure the distance in the flow algorithm. Either the L1 norm d(p1, p2) = |x1x2|+
|y1 y2| + |y1 y2| is used or the L2 norm d(p1, p2) = sqrt(|x1 x2|2 + |y1 y2|2 + |y1 y2|2 ).
1.73
LatticeAccess
This module can be attached to Avizo data objects providing a Lattice interface. The Lattice interface is
designed to access large data sets in a block-by-block fashion on different resolution levels. However,
many Avizo modules require data sets to be stored completely in memory. The LatticeAccess modules
makes is possible to use such modules by converting a subblock of a large volume into a traditional
memory-resident data object.
You may select the subblock either by typing numbers in the ports or by using a dragger in the viewer.
Additionally, it is possible to request a subsampled version of the data. Depending on the actual data
object providing the Lattice interface lower resolution levels are stored on disk and might be accessed
LatticeAccess
131
rather quickly or they are calculated on the fly, which might take some time. After selecting a subblock
you should press the load button. A memory-resident data object is created and filled with the data
from disk. All standard visualization techniques may now be applied on the subblock.
Press the Apply button to load the subblock. If you check the auto-refresh box, the subblock will be
immediately reloaded once the selection has been modified. This is useful for interactively exploring
a large volume.
Connections
Data [required]
A data object providing a Lattice interface.
Time [optional]
Optional connection to a time object, only useful if the input object provides time-dependent data.
If the port is connected to a time object the time of that object is used. In this way multiple modules
with a time port can be synchronized.
Ports
Info
If the input object provides multiple data sets this port allows you to select the data set to be converted into a memory-resident data object.
Box min
The size of the subblock to be loaded. The size is in lattice indices in the base resolution. The
numbers will not change if you select subsampling but the real size of the subblock to be loaded
will change. This is indicated in the Info port.
Box max
132
Chapter 1: Avizo
Convenience buttons to use the maximum box size for the width, height and depth, respectively.
Also enables the subsampling open to quickly load a coarse version of the whole volume.
Options
If the input object provides time-dependent data, this port allows you to select the time step to be
loaded.
1.74
LegoSurfaceGen
This module reconstructs a surface from a label field like SurfaceGen, but the surface exactly matches
the voxel boundaries. Useful for special purpose applications and for development.
Press the Apply button to start the computation.
Connections
Data [required]
Connection to input label field.
Ports
Options
1.75
LineProbe
LegoSurfaceGen
133
1.76
LineSetProbe
This module samples an arbitrary 3D field at the vertices of a LineSet. Since line sets can consist of
many lines, every line of a line set is represented by at least one curve in the plot window. For higher
dimensional fields, e.g., vector fields, the value shown depends on the setting of the Evaluate port (see
below).
The sampled values can also be saved into a copy of the input line set.
Connections
Data [required]
Can be connected to arbitrary 3D fields.
LineSet [required]
The connected line set contains the probe line(s) where the samples are taken.
Ports
Evaluate
If the probe is connected to a vector field, these radio buttons are shown. If the magnitude button
is set the magnitude of the vectors is shown in the plot window. With the normal+tangent Comp.
button set you get the normal and tangential components as two curves. Setting the all button shows
all components of the vector field as separate curves.
Options
The average option averages the probe values by taking samples on a disk perpendicular to the
sampling points and smoothes the sampled values along the sampling line(s).
Radius
The radius of the sampling disk. This slider is only shown if the above average option is chosen.
Longitudinal Width
The width determines how many sampling values are used for smoothing. This slider is only shown
if the above average option is chosen.
Samples
134
Chapter 1: Avizo
If the Show button is pressed a plot window appears where the sampled values are plotted against
the length of the probe line(s). Note: There will be only one plot window regardless of how many
LineSet Probe modules there are in your setup. Every lineset probe is represented in that plot
window by at least one curve bearing the name of the corresponding module.
Pressing the Store button stores the sampled data in a copy of the input lineset.
1.77
LineSetView
This module visualizes data objects of type LineSet. Individual lines may be displayed in wireframe
mode. Alternatively, simple shapes like triangles or squares may be extruded along the lines. In this
way true three-dimensional tubes are obtained. Additional features of LineSetView are pseudo-coloring
and the display of little spheres at each line vertex.
In order to colorize, scale, and twist the displayed lines, it is possible to use one of the data variables:
those are all additional data values of the line set object given per vertex and the connected scalar
fields. The latter will be sampled at each line vertex when it comes to displaying it.
Connections
Data [required]
The line set to be displayed.
ROI [optional]
Optional connection to an object providing a region-of-interest. Only line segments inside this
region will be visualized.
ScalarField1 [optional]
Optional connection to a scalar field which can be used to influence coloring, scaling, twisting, etc.
ScalarField2 [optional]
Optional connection to a scalar field which can be used to influence coloring, scaling, twisting, etc.
ScalarField3 [optional]
Optional connection to a scalar field which can be used to influence coloring, scaling, twisting, etc.
Colormap [optional]
Colormap used for pseudo-coloring.
Alphamap [optional]
Alphamap used for assigning transparency values.
LineSetView
135
Ports
Shape
Determines how the lines will be displayed. If Lines is selected, a simple wireframe model will be
created. The other menu entries denote 2D objects which will be extruded along the lines in order
to obtain three-dimensional tubes.
ScaleMode
If data variables are available, this menu allows you to select one such variable which will be used
to scale the diameter of the three-dimensional tubes. If no additional data values are present, only
Constant scaling will be available.
ScaleFactor
Additional factor used to adjust the diameter of three-dimensional tubes. This factor has no effect
if shape has been set to Lines.
RotateMode
Controls the way the three-dimensional tubes can be rotated around their axis. This can only be
adjusted if shape has not been set to Lines.
The first menu is set to No Rotation by default. Setting it to Constant will allow all lines to be
rotated with the same speed. Following, there will be one entry for each available data variable.
Selecting such an entry influences the rotation as defined with the following two menus.
The second menu controls the direction and strength of the rotation. With the third menu one can
define at which line point the value shall be evaluated.
RotateFactor
Changing the value of this slider causes the lines to rotate. Animating this slider gives best results.
TwistMode
Controls the way the three-dimensional tubes can be twisted around their axis. This can only be
adjusted if shape has not been set to Lines.
The first menu is set to No Twist by default. Setting it to Constant will allow all parts of the line
to be twisted the same amount. Following, there will be one entry for each available data variable.
Selecting such an entry influences the strength of the twist.
136
Chapter 1: Avizo
Selecting Accumulate Twist Values in the second menu causes the selected twist variable to be
accumulated along the line before usage.
TwistFactor
If data variables are available, this menu allows you to select one such variable which will be used to
look up vertex or segment colors. If No Color has been selected, the lines or tubes will be displayed
in uniform default color. This color may be changed using the command setLineColor. The
following two menus will only be available if coloring has been chosen.
The second menu controls transparency mapping. Select No Alpha for opaque lines. Select Colormap to use the alpha values of the colormap. If data variables are present, the following entries
refer to the alphamap.
The third menu controls how to assign color values.
If you select Per Vertex color mode, additional data values are assigned to each vertex. This will
generate a smooth coloring along the line in contrast to the following two options of this menu.
If you select Per Segment Use First color mode, each line segment will be assigned the value of its
first vertex, and the last vertex value will be unused.
If you select Per Segment Use Last color mode, each line segment will be assigned the value of its
second vertex, and the first vertex value will be unused.
Spheres
By default No Spheres is selected. Changing this selection causes a sphere to be displayed at each
line vertex. Constant will display the spheres with a constant radius. Following, there will be one
entry for each available data variable. Selecting such an entry causes the sphere radii to be scaled
according to the selected variable.
SphereScale
Additional factor used to adjust the size of the spheres. This factor has no effect if No Spheres is
selected.
SphereColor
Similar to port Color Mode, but affects the sphere colors instead of the line colors.
LineSetView
137
Colormap
Optional colormap.
Alphamap
Optional alphamap.
Commands
setLineColor <color>
Lets you adjust the default line color which is used if color mode is set to No Color. The color may
be specified as an RGB color triple or as an X11 color name.
setSphereColor <color>
Lets you adjust the default sphere color which is used if sphere color mode is set to No Color. The
color may be specified as an RGB color triple or as an X11 color name.
setLineWidth <width>
Lets you adjust the width of the lines when selected shape is Lines.
setStripeColorMapping <mode>
This has only effect if selected shape is not Lines. Three-dimensional tubes can have stripes with
different coloring on them. This enhances the perception of twist and rotation. Setting this mode to
1 enables red stripes along the tubes. Setting this mode to 2 maps the color values according to the
colormap onto the stripes.
1.78
MaterialStatistics
This module takes a uniform or stacked label field as well as an optional scalar field as input and
computes some statistical quantities for the regions defined in the label field.
If the quantities are computed per material or per connected component, the different columns of the
spreadsheet have the following meaning:
138
Chapter 1: Avizo
Connections
Data [required]
Label field defining the regions.
Field [optional]
Optional scalar field, for example the image data the label field is associated with. If the scalar field
has the same dimensions as the label field, the voxels are accessed directly. Otherwise, a lookup
using the fields native interpolation method is performed.
Voi [optional]
Optional label field used as a volume of interest. It is only used if the statistics are set to Volume per
VOI.
Ports
Select
MaterialStatistics
139
In mode Volume per VOI (Volume of Interest) another label field must be attached to the connection
named Voi. The rows of the spreadsheet are labeled with the materials in this label field. The
columns are labeled with the materials of the main label field. For each voxel of the main label field
it is determined to which VOI region the voxel center belongs to. The voxel volume is then added
to the particular row of the spreadsheet. If the voxel center is outside of the bounding box of the
VOI, it is ignored.
In mode Polar moment of inertia the moment of inertia about the z axis Jz is computed which
describes the ability of the per-slice cross section to bend. The larger the moment of inertia, the less
the section will bend. Additional values that are computed
are the center of mass Rx,y,z and the
p
p
area- and mass-radius of gyration about the z axis ( Jz /A, Jz /m). If the optional scalar field is
connected, the real center of mass will be used, otherwise all voxels are assumed to count equally
(mass = 1.0). The user may also provide a center of rotation which will be shared for all slices.
Pixels
This port will only be visible if Volume per slice or Area per slice is selected in the Select port. It
allows you to exclude small regions from the statistics.
Options
This port will only be visible if Polar moment of inertia is selected in the Select port. It allows you
to specify if the center of mass should be automatically detected.
Center
This port will only be visible if detect center of mass is unchecked in the Options port. It allows
you to specify the center of rotation.
1.79
Measurement
This module provides access to two-dimensional and three-dimensional measuring tools. The idea is
to click directly into the rendered scene and draw. The 2D tools draw anywhere in the viewer window,
whereas the 3D tools work only on geometry displayed in the viewer.
You can access the tools via the View/Measuring menu or via the measuring tool button at the top of the
viewer. Click on the tiny triangle at the lower right corner of the tool icon to display a pulldown menu
from which you can select the desired measuring tool: (2D or 3D line, 2D or 3D angle, 3D circle, 3D
box, and 2D or 3D text). To change the position of a selected tool, click on one of its red handles and
drag it to a new location. Some tools also provide text entries that allow changing their position.
Once the Measurement tool is activated, the mouse pointer changes its shape. While the tool is activated, every measurement you perform will be automatically added to the list. For example, you can
140
Chapter 1: Avizo
activate the 2D Length tool to measure a distance, measure a second one, then activate the 2D Angle
tool and add an angle measurement. The three measurement objects will be added to the list one by
one automatically.
Every tool has attributes (visible, locked, render in front, text, color, line width, and font size) that are
accessible via the Tools port of the Measurement object which was created in the Pool.
Note: 2D distance measurements require orthographic view.
Ports
Tools
Each tool is displayed as a row in the toolbox. The columns have the following meaning (from left
to right):
visible: Click on the eye icon to toggle visibility of the tool in the viewer. When the eye
is empty, the tool is invisible. Click and drag over multiple rows to toggle the visibility of
multiple tools.
locked: Click on the padlock icon to lock/unlock the tool. When the padlock is locked, the
tool is locked and cant be modified in the viewer. Click and drag over multiple rows to
lock/unlock multiple tools.
render in front: Click on the render-in-front icon to toggle whether the tool is always rendered
in front of the scene and no longer hidden by objects that are nearer to the camera. It also is
always pickable. Click and drag over multiple rows to change the icon for multiple tools.
type: The fourth column indicates the type of the tool (2D length, etc.).
text: The fifth column displays the value of the measured quantity. Double clicking on it
allows you to change the display format for numerical values, and the text string for text
tools.
If you select a tool in the toolbox, it is highlighted in the viewer with red squares (handles) that
you can drag using the mouse. You can select more than one tool at the same time. With the color
button, the line width dropdown menu and spin box, and the font size spin box, you can change the
appearance of the selected tools. The line width affects the size the of red tool handles as well.
You can move circle and box tools with the mouse by clicking in the middle of the shape. You can
scale (only from the camera side it has been created) circle and box tools with 3D green tick marks.
With the Delete button you can delete the currently selected tool(s).
Measurement
141
With the Export button you can export the currently selected tool(s).
1.80
Merge
This module works on any 3-dimensional field on rectilinear coordinates and merges the input data by
interpolation.
Merging
Proceed as follows: Attach a Merge module to an input field. For additional inputs, right-click on the
white square on the left side of the Merge modules icon, select an input item, and drag a connection
to a data icon. Input fields can have an arbitrary transformation in which case the result field will have
an axis aligned that spans the bounding boxes of the input fields. The voxel size of the result field is
determined by the first input. At locations within the resulting volume where none of the input fields
are defined voxels are initialized with zeros.
For image data, you have the choice among various interpolation methods:
Nearest Neighbor chooses for every new voxel the average value of the input voxels nearest to
it.
Standard linearily interpolates between the surrounding voxels.
Lanczos is the slowest but most accurate method and approximates a low pass filter. If you have
time and want to get the best result, use this one.
For label fields, this port is hidden and always Nearest Neighbor is used.
Choose an additional option and press the Apply button.
Merging in Progress
While merging, the progress bar at the bottom of the Properties Area indicates the percentage of
merging that is done. You may cancel the merging any time by pressing the stop button on the right of
the progress bar.
Connections
Data [required]
The first data field to be merged.
Lattice* [optional]
Additional input data.
142
Chapter 1: Avizo
Ports
Interpolation
The interpolation method that will be used. There are three methods available:
Nearest Neighbor interpolation:
Actually this method does not interpolate field values but returns the data values stored at
the grid point nearest to the position where the field is to be evaluated. Only grid points
belonging to the grid cell the position vector lies in are considered. Nearest-neighbor lookup
is particularly useful for labels, where standard interpolation makes no sense.
Standard interpolation:
This method interpolates a field using its standard interpolation method. Usually, for fields
with regular coordinates this is trilinear interpolation.
Lanczos interpolation:
This method does high-quality interpolation using the Lanczos3 kernel. This kernel approximates a lowpass sinc filter. Currently, the method is only available for regular grids with
uniform coordinates. Note, that this type of interpolation is much more expensive than standard trilinear filtering.
Options
Option blend controlls the merging process. If this toggle is disabled, a voxel value of the first data
field is used if such exists at a given location. Otherwise, a result value will be calculated from the
additional input data. If this toggle is enabled, result values are always interpolated.
Use the second option use existing result to overwrite an existing result. If use existing result is not
set, a new result object is generated.
Padding Value
Padding value is used for monochrome images to define the value used to fill in undefined pixels.
Padding Color
Padding value is used for RGBA images to define the value used to fill in undefined pixels.
1.81
MovieMaker
This module can be used to create an MPEG 1 movie or an animation consisting of a series of 2D
images in JPEG, TIFF, PNG or RGB format. The module requires a time object as input. When
MovieMaker
143
creating the movie, the module iteratively sets the time value, fires the network so that other objects
can adjust themselves, and takes a snapshot of the viewer window. The snapshots are appended onthe-fly to the specified MPEG file. In order to create an initial time object that a movie maker module
can be attached to, choose Time from the main windows Create menu. Note: The movie is always
generated using the contents of viewer 0. No other viewer can be used for generating a movie.
Connections
Data [required]
Connection to a time object. It is not required that the connected time is defined in seconds or in
any particular unit. Instead the number of frames and the frame rate are specified (see below). For
example, if 100 frames are to be recorded, the connected time is moved from its minimum values
to its maximum values in 100 steps.
Ports
Viewer
Select the viewer to record the movie from and the antialiasing option to enhance the resulting
image quality.
File format
The format of the resulting movie or image file(s). In order to write a series of JPEG, TIFF, PNG
or RGB files, select the corresponding image types. To create a MPEG movie, select MPEG movie.
On Microsoft Windows it is also possible to select AVI movie as file format. The selection also has
an influence on which ports are shown/not shown in the Properties area.
Filename
The name of the resulting movie or image file(s). A file dialog pops up when the Browse button is
pressed. For image sequences the filename should contain a series of hash marks ####. The hash
marks will be replaced by the actual frame number. The output format is bound to the previously
selected movie format. If no filename is specified, the file name will be asked on apply. If no file
name was given or on pressing cancel, the movie/images will not be created.
Frames
The number of frames to be recorded. This value has nothing to do with the range of the connected
144
Chapter 1: Avizo
time object. If the input time is already defined in seconds and if you dont want any scaling, then
the number of frames should be set to the number of seconds of the time object times the desired
frame rate.
Frame rate
Specifies the desired frame rate. It depends on the particular movie player if the specified frame rate
is actually achieved when playing the Movie.
Frame rate
Some movie file formats are only capable of storing movies in specific frame rates. In that case this
port is shown with all possible rates of the requested format.
AVI encoder
This port is only shown when selecting AVI movie as desired file format. You can select the codec in
which the AVI movie should be compressed with. The Options button shows the codecs property
page and is only active if the codec provides such.
Quality
This port is displayed if a lossy output file format was chosen. It allows you the adjustment of
the degree of compression. Small values indicate high compression and low quality, high values
indicate low compression and high quality.
Type
The moviemaker is able to create monoscopic and stereoscopic movies. Set up the movie type here.
Format
This port specifies the pixel format of the screenshots. If RGBA is chosen, the screenshots are
generated with an 8-bit alpha channel blending out the scene background. Using the alpha feature
has the advantage of smaller image files on complex scene backgrounds (gradient). The second
advantage of movies containing an alpha channel is that one can choose another scene background
during movie playback. Note that not all image or movie file formats are capable of storing a fourth
channel. To create alpha image files choose the suffix .tif since TIFF is capable of storing alpha
MovieMaker
145
channels. The disadvantages of alpha movies are slower playback speed on some architectures and
larger data files on non-complex backgrounds (uniform).
Tiles
In order to create movies with a higher resolution than the screen, specify the number of tiles to
render in each direction. Since the anti-aliasing feature of the former MovieMaker is gone, you can
create high resolution single image files and downsample them in a batch to get smooth edges.
Size
Radio box allowing you to adjust the size of the recorded images. If current is specified, the current
viewer size adjusted to multiples of 16 pixels will be used. VHS/PAL means 720 by 576 pixels.
VHS/NTSC means 640 by 480 pixels. Finally, if Input XxY is specified, the size can be specified
explicitly.
Resolution
This port will only be shown if Input XxY is chosen for the Size port. It allows you to set the image
size of the resulting movie.
Commands
filename <filename>
Set the file name for the movie that will be generated by the MovieMaker
action setValue 0
This command instructs the MovieMaker module that everything is ready for movie to be generated.
Then a subsequent fire command is needed to start the movie making process
fire
Issues an event notice to MovieMaker module. This command will force MovieMaker to update
all its ports. When action setValue 0 is executed before hand then the module will start the movie
making process.
1.82
MoviePlayer
This module allows you to play back a sequence of single images, a movie. These images can be
stored as separate files in a 2D image format supported by Avizo (for example JPEG, TIFF, PNG,
or PPM) or they may packed together in one or more movie data files (moviename.amovstream). To
create movies using Avizo, use the MovieMaker.
146
Chapter 1: Avizo
1.82.1
This module is capable of playing back a sequence of images. This sequence is loaded from one or
more so called streams. Each stream consists of an image sequence. During playback this module
retrieves images from all streams and meshes them together for the final image sequence which gets
then rendered to the screen. Imagine there are N streams. The first image comes from the first stream,
image 2 from stream 2, image N from stream N, image N+1 again from stream 1, image N+2 from
stream 2 and so on. (Expert note: this behavior can be changed by editing the Avizo movie info
file). After specifying the streams, the module needs to know what type of movie this image sequence
forms, e.g., mono, stereo, stereo interlaced and so on. The structure of an Avizo movie, i.e. the number
and specification of streams, the type and the preferred compression type, is stored in an Avizo movie
info file (moviename.amov), which is a human readable and editable text file. In Avizo, movies are
specified in separate data objects connectable to this module. See Movie for details.
1.82.2
This module is capable of converting a movie to an optimized format, i.e. a format that comes up with
faster playback speed and sometimes smaller but mostly bigger but fewer data files. To perform this
conversion, connect a Movie to the input connection. Thats the source movie. Then connect a Movie
to the Result connection port. That will be the destination movie. In the stream specification for that
destination movie only Avizo movie data files are allowed. The movie conversion is not able to write
into single image files (which would not make sense anyway). After this, select convert (overwrite) for
overwrite mode or convert (append) for append mode. To perform the conversion press one of the play
buttons. Seeking does not affect the destination movie, so it is possible to seek to the part of interest
in the source movie and start the conversion from there.
1.82.3
MoviePlayer
147
OpenGL texture compression feature if available. If the bandwidth of a single harddisk limits
the playback speed, but there are more harddisks available (like on many PCs), store the movie
in multiple streams (described above), each of them stored on a different harddisk. On systems
with RAID the movie should be stored in a single stream, since the RAID should distribute the
movie data file over many disks, which should already increase the retrieval bandwidth. Using
more than one stream jams the RAID strategy used for fast retrieval of large disc files, which
results in a slowly and bumpy playback.
To maximize the playback image quality:
Choose a loss-free image format during movie creation outside of this module and also during
movie conversion with this module. RGB(A) and gzip postcompression are loss-free. OpenGL
texture compression is lossy.
Known Issues
When playing single images with readers that are not thread safe, Avizo may crash. In this case
one can set the the value in the movies MaxThreads-port to 1 which sets the maximum number
of reader-threads to one, what makes the playback speed slow but allows a conversion to the
optimized format. On most platforms the JPG-reader should be thread-save. The BMP-reader
is known to be not thread-save.
Connections
Data
Connect the Movie the module is going to play or convert.
Ports
Action
Press this button to create a new Movie data object connected to this player via the movies Master
port. Filename and type of this newly created movie are initialized according to the properties of
the input movie. The default number of streams is one. Alter the settings within the input movie
object to match your needs before converting data into that movie.
Mode
Set this to specify the action the module should perform. If set to play, the module will play
the movie connected to the data connection port. If set to play result, the module will play the
Movie connected with its Master port. If set to convert (overwrite), the module performs the movie
conversion from the source Movie to the destination Movie. The old contents of the destination
148
Chapter 1: Avizo
Movie are deleted first. If set to convert (append), the module appends the contents of the source
Movie to the destination Movie.
Position
This slider displays the current position in the movie during playback. By pulling the slider its
possible to seek in the movie. With the two upper adjustable sub-range buttons one can limit the
movie presentation to a smaller scene of interest. With the two outside buttons one can step through
the movie, image by image, making it possible to use this module to present a series of single
high resolution slides. By specifying an integer value in the text field one can jump directly to the
specified frame. Note that the frame count begins with zero.
Playback
Push these buttons to seek to the beginning of the scene of interest, to its end, to play the movie
forward or backward, and to pause or unpause playback.
Pixel format
This setting gets evaluated during the movie conversion process. If set to RGB(A) the images are
stored loss-free to the Avizo movie data files, 24 bits per pixel if RGB and 32 bits if RGBA. Note the
alpha blending feature of this module which is enabled if the input image contains an alpha channel
(Avizo is capable of creating screenshots with an alpha channel). If GL-compress is enabled and
the systems OpenGL is capable of compressing textures, this module compresses the images using
OpenGL. Note that this kind of compression is lossy. If it is not available on the current system, this
option is disabled.
Post compression
This setting is evaluated during the movie conversion process. Specify this for the destination
movie. If enabled, the MoviePlayer module compresses the image, independent of the selected
pixel format, with GZIP. The result is smaller movie data files that need more CPU power during
playback. Note that only parts of the movie stream file are going to be compressed, so it is not
possible to compress the whole file with an external zip encoder application.
Chunk size
This setting is evaluated during the movie conversion process. Sometimes the resulting Avizo
movie data file gets too large. With this option one can request the module to split this file into
pieces during creation. The fragments are named filename.amovstream, filename.00000001, filename.00000002, ..., filename.0000000N. A value of 0 disables the split feature. A value greater 0
MoviePlayer
149
specifies the maximum fragment size in megabytes (each 1,048,576 bytes). One can split an Avizo
movie stream file with external tools into fragments with arbitrary sizes. If the naming scheme
matches the one mentioned above, the module will play it correctly. Note that there is an Avizo
movie index file maintained by this module, which holds file numbers and byte offsets for every
image on this stream. After manual splits or to force a recreation of this index file, simply remove
it. At the next attempt to play or seek this stream, this module will scan the Avizo movie stream file
and recreate the index file.
1.83
NormalizeImage
Connections
Data [required]
The data set the correction is performed on.
Ports
Type
Select a mode for the normalization. Different modes make sense for different images.
150
Chapter 1: Avizo
Options
This is either the resolution of the down-sampled image (for minimum, mean, maximum, and
BSpline) or the size of the moving filter that is used for the whitening operation.
1.84
ObliqueSlice
The ObliqueSlice module lets you display arbitrarily oriented slices through a 3D scalar field of any
type, as well as through an RGBA color field or a 3D multi-channel field.
The module is derived from ArbitraryCut. See the documentation of the base class for details about
how to adjust position and orientation of a slice. Like in the OrthoSlice module three different methods
are supported to map scalar values to screen colors, namely linear mapping, monochrome mapping
based on adaptive histogram equalization, and pseudo-coloring.
Connections
Data [required]
The 3D field to be visualized. 3D scalar fields, RGBA color fields, or 3D multi-channel fields are
supported. The coordinate type of the input data doesnt matter. The data will be evaluated using
the fields native interpolation method (usually trilinear interpolation).
Colormap [optional]
The colormap used to map data values to colors. This port is ignored when linear or histogram
equalized mapping is selected, or when the module is connected to an RGBA color field or to a 3D
multi-channel field.
Ports
Frame
This port is used to display or hide the frame, set the frame width and color.
Orientation
ObliqueSlice
151
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Options
If the adjust view toggle is set, the camera of the main viewer is reset each time a new slice orientation is selected.
With the rotate toggle you can switch the rotate handle for the cutting plane on and off.
If the immediate toggle is set, the slice is updated every time you drag it with the mouse in the 3D
viewer. Otherwise only the bounding box of the cutting plane is moved and the update takes place
when the mouse button is released.
The fit to points toggle lets you reset the plane by clicking on at least 3 different points in the scene.
After enabling this toggle, you should switch to interaction mode by pressing the ESC-key inside
the viewer. Then click 3 times at different points on any geometry in the scene. The plane then will
be automatically adjusted to match these points. The virtual trackball - visible when rotate toggle
is active - will be moved to the center of the picked points. After 3 points have been picked, this
toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking allows you to
select more than 3 points. In this case the plane that best fits the selected points will be computed.
The exact plane def. toggle lets you to show/hide exact plane definition ports.
Checking the lighting option simulates the slice being illuminated by a head light. Thereby, the
intensity of the slice is modulated according to the direction of the slices normal. Thus, the more
obliquely the slice is viewed the darker it becomes.
Translate
This slider allows you to select different slices. The slices may also be picked with the mouse and
dragged directly in the 3D viewer.
Mapping Type
This option menu controls how scalar values are mapped to screen colors. In case of a linear
mapping a user-defined data window is mapped linearly to black and white. If histogram is selected,
an adaptive histogram equalization technique is applied. This method tries to show all features of
the data, even if a wide range of values is covered. Finally, colormap can be used to activate pseudocoloring. The port is hidden if the the module is connected to a color field or a multi-channel field.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible data
152
Chapter 1: Avizo
values. Values below the lower bound are mapped to black, while values above the upper bound are
mapped to white.
Contrast Limit
This port is only visible if histogram equalization is selected. The number determines the contrast
of the resulting image. The higher the value, the more contrast is contained in the resulting image.
Colormap
This port is displayed if colormap is selected. Choose a colormap to map data to colors.
Sampling
Note: This port has no effect when the slice is axis aligned. This port controls the way how oblique
slices are reconstructed. First, an option menu listing different sampling resolutions is provided.
The four choices coarse, medium, fine, and finest correspond to an internal resolution of the underlying texture map of 128, 256, 512, and 1024 square pixels, respectively. The fifth choice user-defined
allows to specify the resolution explicitly.
The toggle labeled interpolate data, will only be active if the scalar field to be visualized is defined
on a uniform grid. In this case, if the toggle is off, nearest neighbor interpolation is used. If it is on
or if the data is not defined on a uniform grid, then the fields native interpolation method is used,
e.g., trilinear interpolation on regular grids.
The toggle labeled interpolate texture controls how the slice is texture-mapped by the underlying
OpenGL driver. If the toggle is off, nearest-neighbor sampling is used. Otherwise, bilinear filtering
is applied.
Finally, the toggle labeled square texels control how data values are extracted when the oblique
slice is axis-aligned. If checked, the slice will display square texels. It means that an isotropic
sampling is done and so, data values are displayed like squares. Otherwise, original data values are
reproduced.
Resolution
This port is visible when the resolution type user-defined is selected. Specify width and height of
the underlying texture map.
Overlay
This port determines how optional ColorWash modules are mapped onto this slice.
ObliqueSlice
153
Transparency
This radio box port determines the transparency of the slice. The option is only available if the module is connected to an RGBA color field. None means that the slice is fully opaque. Binary means
that black parts are fully transparent while other parts are opaque when using linear mapping or
that only fully transparent parts are transparent while others are fully opaque when using colormap
mapping. Alpha means that opacity is taken as is.
Channels
This port is displayed if the module is attached to a 3D multi-channel object. It allows you to toggle
individual channels on or off. Each channel is mapped using a linear intensity ramp. The data
window for each channel can be adjusted in the multi-channel object itself.
Plane definition
Commands
All commands described for ArbitraryCut can be applied to ObliqueSlice as well.
createImage <image base name>
This command creates a 2D image from the oblique slice and adds it to the Pool. The image base
name can be omitted.
154
Chapter 1: Avizo
1.85
OrthoSlice
The OrthoSlice module is an important tool for visualizing scalar data fields defined on uniform Cartesian grids, e.g., 3D image volumes. Such data are visualized by extracting an arbitrary axis-aligned
slice out of the volume. The data values can be mapped to colors or gray levels by one of three mapping methods. The most simple mapping technique uses a linear gray ramp together with two threshold
values. This range determines which data values are mapped to black and which are mapped to white.
Alternatively, a contrast limited histogram equalization technique may be applied. With this method,
there is no unique correspondence between gray levels and data values any more. The method tries to
visualize all features of an image. As a third mapping method, an external colormap can be used in
OrthoSlice.
The OrthoSlice module is also capable of extracting slices of an RGBA color field or of a 3D multichannel field. In these cases the slices are displayed as is and no mapping method need to be chosen.
Connections
Data [required]
The 3D field to be visualized. Currently, regular scalar fields, multi-channel fields, and RGBA color
fields with uniform or stacked coordinates are supported.
Colormap [optional]
Optional colormap used to map scalar data to colors. This port is hidden when linear or histogram
mapping is selected. See also Colormap.
Ports
Frame
This port is used to display or hide the frame, set the frame width and color.
Orientation
This port provides three buttons for setting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Options
If the adjust view toggle is set, the camera of the main viewer is reset each time a new slice orientation is selected. The bilinear toggle determines how color is interpolated within a slice. By
default, the toggle is off and constant interpolation is used. With constant interpolation individual
OrthoSlice
155
pixels become visible. Bilinear interpolation often produces somewhat blurry results. Checking the
lighting option simulates the slice being illuminated by a head light. Thereby, the intensity of the
slice is modulated according to the direction of the slices normal. Thus, the more obliquely the
slice is viewed the darker it becomes.
Mapping Type
This option menu lets you select between the three different mapping methods, namely a linear
gray ramp, histogram equalization, and colormap mode. The port is not available if the OrthoSlice
module is connected to an RGBA color field or to a 3D multi-channel field.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
mapped to white. In order to quickly change the data window a ContrastControl module can be
attached to the OrthoSlice.
Contrast Limit
This port is displayed if histogram equalization is selected. The number determines the contrast of
the resulting image. The higher the value, the more contrast is contained in the resulting image. A
value of zero means that contrast will not be limited at all.
Colormap
This slider allows you to select different slices. The slices may also be picked with the mouse and
dragged directly in the 3D viewer.
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque when using linear mapping or that only fully transparent parts are transparent while others are fully opaque
when using colormap mapping. Alpha means that opacity is proportional to luminance. If a colormap is used for visualization opacity values are taken from there.
156
Chapter 1: Avizo
Channels
This port is displayed if the module is attached to a 3D multi-channel object. It allows you to toggle
individual channels on or off. Each channel is mapped using a linear intensity ramp. The data
window for each channel can be adjusted in the multi-channel object itself.
Commands
createImage <image base name>
This command creates a 2D image and adds it to the Pool. The image base name can be omitted.
1.86
OrthoViewCursor
This module controls two perpendicular ObliqueSlices to inspect scalar image data. Two draggers
control these slices, one controls the translation, the other one controls the rotation.
Connections
Data [required]
The scalar image data to be visualized.
Module [required]
The OrthoSlice or ObliqueSlice that specifies the dragger plane.
Colormap [optional]
Optional colormap used to map scalar data to colors. This port is hidden when linear or histogram
mapping is selected. See also Colormap.
Cylinder slice [optional]
Ports
Show
OrthoViewCursor
157
This option menu lets you select between the three different mapping methods, namely a linear
gray ramp, histogram equalization, and colormap mode. The port is not available if the OrthoSlice
module is connected to an RGBA color field or to a 3D multi-channel field.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
mapped to white. In order to quickly change the data window a ContrastControl module can be
attached to the OrthoSlice.
Contrast limit
This port is displayed if histogram equalization is selected. The number determines the contrast of
the resulting image. The higher the value, the more contrast is contained in the resulting image. A
value of zero means that contrast will not be limited at all.
Colormap
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization opacity
values are taken from there.
Translation
The translation of the dragger center with respect to the center of the base plane.
Rotation
158
Chapter 1: Avizo
1.87
ParallelMovieMaker
This script module can be used to create an animation consisting of a series of 2D images in TIFF,
JPEG, or PNG format, generated in parallel by instances of Avizo running on several slave machines
(typically a cluster of PCs with graphics board). This module - running on the master machine - can
start or kill automatically the slave Avizo instances. This requires that the user can connect to slave
systems via ssh without needing a password (you may also customize a copy of this script module
with your preferred remote command). This module also communicates with Avizo instances by using
commands app listen, app send.
WARNING: Using this module can create security holes, as it makes Avizo listen commands sent to
socked ports. Do not use this unless behind a firewall and if you know what you are doing.
This modules requires to provide the filename of an animation script, which can be obtained for instance by saving a network containing a time module. The first module with a time port that as no
upstream connection with another time module will be used to control the animation. The animation
script can be then loaded on every slave. When starting the animation, the image sequence is split
across the slaves: the time value will be set iteratively on each slave (depending on interleave policy),
the network is fired so that other objects can adjust themselves, and a snapshot is saved.
As the input files and output directory can be accessed in parallel, it is recommended for best performance to have these files located either on a fast shared storage or on a local storage of each slave
system.
Ports
Slave hostnames
ParallelMovieMaker
159
The name of the resulting image file(s). In order to write a series of TIFF, JPEG, or PNG files,
specify a filename with the suffix .tif, .jpg, or .png. The filename should contain a series of hash
marks ####. The hash marks will be replaced by the actual frame number. You can also choose the
output format via the file dialog which pops up when the Browse button is pressed. If no filename
is specified, no movie can be created.
Time steps
The start step and the number of steps (number of saved images).
Resolution
This is the requested resolution for the generated images (see below offscreen option). It initialized
to the size of the viewer when this script module is created or reloaded.
Slaves display
This is passed as DISPLAY environment variable to the slave instances of Avizo. It can be used for
instance for checking what is actually displayed on the slaves, including the messages output to the
slaves Avizo console.
Options
offscreen: If selected, offscreen snapshots are generated using the specified resolution (offscreen rendering). Otherwise, direct snapshots of the viewer are saved. See viewer command
snapshot. The viewer window will be tentatively resized to required resolution, however this
may fail if the viewer is defined in layout preferences as a top level window. Then the default
resolution of the viewer will be used. Notice also that offscreen rendering may be different
160
Chapter 1: Avizo
from viewer rendering as different graphics capabilities or limitations or driver issues can be
involved.
bg image: Display image sequence as background image (see viewer command setBackgroundImage). This may be used for control.
interleave: When selected, the image sequence is interleaved across slaves so that each slave
generate an image closest to each other, for instance 2 slaves will generate in turn images
1,3,5... and 2,4,6... Otherwise, each slave generates a contiguous sequence of images (1,2,3...
- n,n+1,n+2) In some case this option can impact performance. Interleave mode can also limit
latency for control display with the background image option.
1.88
PlotSpreadSheet
This module uses a connected spreadsheet or lineset and displays its numeric columns in a separate
plot window. For linesets, the point coordinates x,y,z and per vertex data values are each regarded as
columns. Each line of a lineset leads to a separate graph in the plot.
Connections
Data [required]
The spreadsheet or lineset object which contains the information to be plotted.
Ports
X
The column in the connected spreadsheet that is used for the X axis. Only columns that contain
numeric values can be selected. The first item Index is the line index in the spreadsheet or the index
of a point in a lineset. When another column is selected, the plot will automatically switch to the
newly selected data.
Y
The columns in the connected spreadsheet that are used for the Y axis. Only columns that contain
numeric values can be selected. When another column is selected, the plot will automatically
switch to the newly selected data.
PlotSpreadSheet
161
Plot
Commands
getActiveYCurves
Returns a list of numbers which identify the column indexes in the Y list port.
getActiveXCurve
Returns the index of the currently used X axis in the X list port.
setActiveYCurves [list]
Sets a list of numbers which identify the column indexes in the Y list port.
setActiveXCurve [number]
Sets the index of the X axis to be used for plotting in the X list port.
getXLabel
Returns the currently used X label.
getYLabel
Returns the currently used Y label.
setXLabel [name]
Sets the string used for the X label.
setYLabel [name]
Sets the string used for the Y label.
createSnapShot [file]
Creates a snapshot of the plot window and saves it in the file with the name file. The type of image
created is determined by the extension of file.
1.89
PointProbe
1.90
PointWrap
This algorithm performs a surface reconstruction from a set of unorganized points. It models a probe
sphere, that is being dropped onto and then rolled over the set of points. Every three points the
162
Chapter 1: Avizo
sphere rests on during this tour become a triangle in the resulting surface. The result is (almost)
guaranteed to be an oriented manifold.
Press the Apply button to start the computation.
Connections
Data [required]
The input point set.
Ports
Probe Radius
This slider specifies the radius of the probe sphere. It is only relevant if the module is run in the
fixed radius mode and when looking for an initial triangle. If the algorithm is unable to find an
initial triangle try increasing this value.
Search Axis
The direction the probe is initially dropped from to find a starting triangle. If no such triangle can
be found, try a different axis.
Probe Mode
Here you can choose the probe radius to be fixed throughout the whole computation or to adapt it
to local feature size. Adaptive probe size is faster than fixed probe size and gives better details on
point sets that are relatively well behaved. However, it is less robust.
Enlargement
If the algorithm is run in adaptive probe size mode the local probe size might be too small to find any
more triangles. If that happens, the size is enlarged by this factor and the local search is restarted.
MaxIterations
The iterative process described under Enlargement is repeated no more times than the number specified with this slider.
PointWrap
163
1.91
ProbeToLineSet
This module can be connected (tight connection) to a LineProbe or SplineProbe module. It saves the
probe line or probe spline into a LineSet data object. The LineSet contains all points where samples
are taken as coordinates and the sampled values as data. Furthermore the spline controlpoints are saved
in the parameters of the LineSet. Press the Apply button to save the current probe line into the LineSet.
Since a LineSet can hold more than one line, additional probe lines will be saved whenever the Apply
button is pressed.
If a LineSet is connected to the data port (optional), this LineSet is then copied and the probe lines are
saved into the copy.
Connections
SplineProbe [required]
This is the controlling SplineProbe or LineProbe module.
Data [optional]
Can be optionally connected to a LineSet. A copy of that LineSet is used to save the probe lines.
1.92
Projection
This module displays as projected shapes the modules with the port projection connected to it.
Connecting a module to a Projection one can be done automatically by pressing the modules
projection button
The projection applies only to the visualized shapes. Data modules wont be modified according to the
chosen projection.
The whole bounding box of data coordinates must be expressed in geodetic coordinates :
X coordinates degrees of longitudes in interval [-180,180]
Y coordinates degrees of latitudes in interval [-90,90]
Z coordinates meters
In order to fit those intervals the bounding box can be modified with the crop editor.
When using projection on a vector type module, the starting and the end point of each vector is projected. Then, a scale computed with the diagonal of the data set is applied.
It can happen that a vector dataset is expressed in meters in a geodetic coordinate system. A transformation in degrees of longitudes/latitudes must then been done before projecting. This transformation
is automatically done if :
164
Chapter 1: Avizo
a parameter units with value m/s or m s-1 is registered in the data parameters and
The data is a NetCDF data or a parameter coordSys with value GEODETIC is registered.
Ports
Parameters
Quality used when projection needs resampling. This port is only used for OrthoSlice and ObliqueSlice modules. It controls the texture quality.
Radius
This factor controls the scale applied to the original z coordinates of the data. The computed radius
of a point p(x,y,z) is given by the formula : computedRadius = z * z-factor + radius A negative z
value can imply a negative radius.
LongitudeZero
Projection
165
This port controls the zero longitude reference when a Proj4 projection is selected. It can be used
when the bounding box of the data is out of the interval [-180,180] for X coordinates.
It must not be used to switch the zero longitude reference when the bounding box is in this interval,
otherwise visualisation artefacts will appear.
1.93 ProjectionView
This module computes a shadow projection of a 3D uniform scalar field (an image volume) onto the
three major planes (xy, xz, yz). Color fields and multi-channel fields are also supported. Maximum
intensity projection or averaging can be chosen as projection method. This module is especially useful
for data containing line-like structures like neurons or angiographic data.
If attached to a 1-component scalar field, the location of voxels containing maximal values can be
investigated interactively using the module Projection View Cursor.
Press the Apply button to recompute the projection.
Connections
Data [required]
The data set to be projected. Uniform scalar fields, uniform color fields, and uniform multi-channel
fields are supported.
ROI [optional]
Connection to a module providing a region-of-interest SelectRoi. If such a module is connected,
only the volume inside the ROI is projected. Alternatively, this port can be connected to CylinderSlice, which defines a cylindrical ROI.
Colormap [optional]
An optional colormap which is used when the mapping type is set to colormap (see below).
Ports
Options
interpolate: Bilinearly interpolate between pixels on the projection planes. This in general gives
166
Chapter 1: Avizo
better image quality and less aliasing. However sometimes the resulting image may appear somewhat blurred.
inverse: Invert gray values. Inversion is done after mapping data values to intensity values via the
selected range.
restrict: Enable to restrict the visualization to a the region-of-interest. Minimum/Maximum x-, y-,
and z-coordinates of the region-of-interest could be controlled with a dragger (see dragger check
box) or with the ports Min. slice and Max. slice.
lighting: Specifies whether the slices should be illuminated or not. If lighting is on the luminance
of the slices changes when the scene is rotated.
Show
The three first toggles can be used to turn off the yz-, xz-, or xy-slice. The last toggle dragger
enables to show/hide the dragger visibility which could be used to restrict the visualization of this
display module. This toggle is enabled only if the restrict option is checked.
Mapping
The first menu specifies the projection mode. Maximum searches the largest data value in each
projection ray, Minimum for the smallest one. Average computes the average data value for each
projection ray. The options depth and depth + max are only available for scalar fields. If depth is
chosen on each slice the depth of the pixel containing the maximum value is depicted, instead of
the maximum value itself. If depth + max is chosen, first an ordinary maximum intensity projection
is computed and mapped to a gray image. Then the gray image is multiplied with a pseudo-color
image of the depth values. This allows to visualize both projected structures and depth information
at once.
The second menu specifies how the projected data should be mapped to color or intensity. Three
modes are available, linear, histogram, and colormap. These modes are identical to the ones described for the OrthoSlice module. Colormap is not available for color fields and for multi-channel
fields.
Channels
This port is displayed if the module is connected to a multi-channel field. It allows you to turn
individual channels on or off.
Range
This port is only available in linear mapping mode. All data values smaller than the specified
ProjectionView
167
minimum are mapped to black, all values larger than the maximum are mapped to white, and the
values in between are mapped linearly.
Contrast Limit
This port is only visible if histogram equalization is selected. The number determines the contrast
of the resulting image. The higher the value, the more contrast is contained in the resulting image.
Min. slice
This port is only visible if restrict option is checked. It controls the Minimum x-, y-, and zcoordinates of the region-of-interest.
Max. slice
This port is only visible if restrict option is checked. It controls the Maximum x-, y-, and zcoordinates of the region-of-interest.
Commands
createImage <image base name>
This command creates 2D images from the projections in the Pool. Between one and three images
are created depending on the port Show. The image base name can be omitted.
setTransparency <alpha>
Set transparency of projections. A value 0 makes it completely opaque, 1 completely transparent.
1.94
ProjectionViewCursor
This module can be attached to a Projection View module. It visualizes a 3D location on all three
planes. The location is specified by picking (i.e. clicking on) any geometry, like an isosurface, in the
viewer. If one of the three planes of the Projection View itself is picked the module will search for the
brightest pixel to determine the missing coordinate. However, this will only work if a scalar field is
connected to the Projection View, but not for color fields or multi-channel fields.
Connections
Module [required]
This module is attached directly to a ProjectionView module.
168
Chapter 1: Avizo
Ports
Color
Options
If the 3D sphere option is selected, a sphere is shown at the 3D position of the selected location.
Otherwise only the three projections of the sphere are shown.
Size
Radius of sphere and circles in percent of the bounding box diagonal length.
LandMarkSet
This port can be used to export the current cursor position into a landmark set data object. Such
an object will be created automatically the first the the Add button is pressed. After that you can
modify the cursor position and append the new position to the landmark set by pressing the Add
button again. The Clear button removes all landmarks stored in the landmark set data object.
1.95
RefineTetras
Connecting RefineTetras to a TetraGrid allows for a global or local refinement, producing a refined
copy of the input grid. For each refinement level a tetrahedron is subdivided by eight tetrahedra via
edge bisection.
RefineTetras
169
In case global refinement was chosen the entire tetrahedral grid is successively refined according to
the refinement level. The amount of tetrahedra is always increasing by a factor of 8, thus resulting in
huge meshes for higher refinement levels (1, 8, 64, 512, 4096, etc.). Due to the refinement strategy the
element quality remains unchanged. Hence the element quality slider will not influence the resulting
grid.
Local refinement will be applied to the currently selected (i.e. visible) tetrahedra of the input grid.
Therefore a GridVolume has to be connected to the grid. In case all tetrahedra are selected RefineTetras
issues a warning, asking for a global refinement. Having only a subset of the grid selected (e.g. using
the Buffer or the Draw Selection), all selected tetrahedra are refined according to the above scheme.
In order to keep the mesh consistent adjacent tetrahedra have to be refined as well. The strategy for
improving the resulting element quality can be controlled via the slider.
Connections
TetraGrid [required]
The input grid that is to be refined.
Ports
Info
170
Chapter 1: Avizo
Element Quality
Quality measure for local grid refinement ranging from 0 (low quality) to 1 (high quality).
Refine
1.96
Relabel
This module sorts the materials in a LabelField according to the material list of a template. Materials
which are only present in the template are added. If materials are found in the input, which are not
present in the template, a warning is issued.
The module is also capable of merging multiple label fields of the same size. This is useful if different
parts of the same data set have been segmented independently. If corresponding voxels in the input
are assigned different materials, which are both different from Exterior, the last input will be used.
If the option Conflict Material is checked, such voxels will be assigned to a new material named
MergeConflict.
This module can be used to fill a new, empty label field with materials from a previous segmentation.
Press the Apply button to start the computation.
Connections
Data [required]
Input LabelField.
Data2 [optional]
Additional LabelField to be merged with the first one.
Data3 [optional]
Additional LabelField to be merged with the first two ones.
Template [optional]
LabelField with the template material list.
Ports
Options
Relabel
171
The verbose flag produces some information on the actual mapping. If the Modify Input option is
chosen, the input data set itself is modified instead of duplicating it, do not use this option on a data
set, while an editor is active. If the Conflict Material option is chosen in a merging action, voxels
with different materials in the input data sets are assigned to a special material called MergeConflict.
1.97
RelabelTetras
Similar to a LabelField each tetrahedron of a TetraGrid has a unique material type assigned. Connecting RelabelTetras to a TetraGrid allows for a global or local reassignment of materials to a copy of the
input grid that is automatically generated.
In an interactive mode only materials, that are defined within the parameter section of a TetraGrid may
be used. In case new materials are to be introduced, they have to be defined with the ParameterEditor
before connecting RelabelTetras to the grid. The assignment of materials operates on the selected
(i.e. visible) tetrahedra. Therefore a GridVolume has to be connected to the output grid. A subset
of tetrahedra may be chosen using the Buffer or the Draw selection tool of GridVolume. In case all
tetrahedra are selected, relabeling leads to a homogeneous material grid.
Another option to relabel tetrahedral grids is to connect a LabelField to the second input of RelabelTetras. The BoundingBox of the TetraGrid and the LabelField must intersect each other. Typically this is
the case for tetrahedral grids that have been constructed from label fields via SurfaceGen. Otherwise
use the TransformEditor to align the two. Now the materials of the label fields parameter section are
copied to the output grid, and the input fields labels are transferred to the tetrahedra according to their
locations. Using a sampling level of one, assigns the material label that is located at the barycenter of a
tetrahedron. Choosing a higher sampling level (up to three) assigns the dominating material label with
regard to the sample points. A sampling level of 2 takes the material labels at eight inner points. These
locations coincide with the barycenters of the eight tetrahedra that will result by a first level refinement
using RefineTetras. That way up to 512 samples per tetrahedron are evaluated.
Connections
TetraGrid [required]
The input grid that is to be relabeled.
LabelField [optional]
A label field.
Ports
Info
This port becomes only visible in case no input grid is connected, or a label field is connected.
172
Chapter 1: Avizo
Materials
A list of materials that is defined within the parameters of the input grid. This port is only visible in
case no label field is connected.
Sampling Level
The sampling level will choose the number of samples per tetrahedron. This port is only visible in
case a label field is connected.
Label
Triggers the relabeling or resets all labels to the values of the input grid.
1.98
RemeshSurface
Connections
Data [required]
Input surface to be remeshed.
RemeshSurface
173
DensityField [optional]
Surface scalar field used for controlling the triangle edge length. Also see the density contrast
parameter.
SurfacePathSet1 [optional]
A surface path set that can be considered while remeshing to preserve certain features. Please also
see the Surface path options port. Note that more than one surface path set can be connected to the
module. If the first surface path set is connected, a new connection will be created.
Ports
Advanced options
By default, advanced options are hidden. They will be displayed if the show toggle is checked.
Objective
This port determines the objective of the remeshing: high regularity or best isotropic vertex placement. With the first objective, the remesher tries to generate a mesh such that for most of the vertices
the number of neighbored vertices is 6. With the second objective, the goal is to generate a mesh
with vertices placed isotropically across the surface. If the curvature or a density field is considered,
the vertex placement will only be isotropic with respect to the desired vertex distribution, i.e. the
density.
Triangle area opt.
This port lets the user decide how much work is put into the optimization of the triangle area. The
desired triangle area in a certain surface region is a function of the given density. If no density
field is given, the curvature field will be used instead, which is computed internally. The goal is
to optimize the correct triangle area distribution. If no weighting is used, the areas of all triangles
should be similar. The first parameter specifies the number of passes used for optimizing the triangle
area. The nAreaSteps parameter specifies the number of steps per pass that are used for optimizing
the triangle area by moving the vertices. The last parameter, nEdgeFlips specifies the number of
edge flips performed per pass for optimization. The default parameters should be suitable for most
applications.
Vertex valence opt.
This parameter allows specifying the number of passes used for improving the vertex valence, i.e.
the regularity. This option is only visible, if the objective is high regularity. A mesh is considered as
174
Chapter 1: Avizo
being regular, if the number of neighbors of each vertex in the mesh is 6. So, the higher the nPasses
value, the more the remesher will try to generate a regular mesh.
Triangle quality opt.
This parameter specifies the number of passes being used for triangle quality optimization. Here,
the objective is to obtain triangles that are as equilateral as possible, i.e. all triangle angles should
be similar. This option is only visible, if the objective is high regularity.
Lloyd relaxation
This parameter becomes visible if the objective is best isotropic vertex placement. It determines the
number of passes used for relaxing the points. The default should be suitable in most cases.
Defaults
With this button, the user can quickly reset the parameters to the default.
Desired size
The values of this port determine the number of vertices and triangles in the final surface. Note,
that the actual number of vertices and triangles might be slightly different from this number. The
three values in this port influence each other. Setting one of the values will result in a modification
of the other values. In regular surfaces, the number of triangles is twice as large as the number of
vertices. Hence, setting the number of triangles will result in half the number of vertices. However,
it is inherent to the algorithm to consider the number of vertices and not the number of triangles.
Hence, the resulting mesh will be closer to the specification of the number of vertices than to that
of the number of triangles. The last value is provided for convenience only. It allows setting the
percentage of the original mesh size.
Error thresholds
Two error thresholds can be set. Both thresholds are angle thresholds and have a range between -1
and 1. If the error threshold is 1, no changes are allowed, because each remeshing will violate this
threshold. If the value is -1, no error will be taken into account. Since the thresholds are given as
the cosines of angle thresholds, their range is -1 to 1.
The smoothness error measures the difference between the vertex normals of neighboring vertices.
Hence, a vertex can only be moved if the smoothness criterion is preserved. As result, regions of
the original surface that are not smooth will usually stay as they are.
RemeshSurface
175
The distance error measures the distance between the original and the modified surface in terms
of normal distance. Hence, a remeshing step can only get accepted, if the distance between the
normals of the original and the remeshed surface is smaller than the given threshold.
Density contrast
The density contrast determines the influence of the density field or the surface curvature on the
triangle area in certain regions of the surface. It is used as exponent of the values of the density
field, so be careful when choosing a value. A value between 0 and 2 might be appropriate.
Density range
This is the density range to be taken into account. Values below and above will be clipped.
Interpolate orig. surface
When the first option, smoothly, is selected, the original surface will be smoothed internally, and this
smoothed surface will be used to move the vertices. If the second option is chosen, no interpolation
is done and the vertices of the remeshed surface will be exactly on the original piecewise linear
surface.
Remesh options (1)
Contours can either be given by surface paths or implicitly at non-manifold edges. With the first
option, these contours can be fixed, which means that no changes are allowed for contours. With
the second option, one enables contraction of edges on the contours. Note that this option will only
be considered if the first option is not set.
Surface path options
The remeshing algorithm can be used in conjunction with surface paths, i.e. the user can specify
surface paths which will be considered separately. If the second option is selected, control points,
i.e. distinguished vertices on the surface path, will not be moved.
Remesh options (2)
This option lets the user decide whether the whole surface should be remeshed or whether the
remeshing should be restricted to the area around contours, where contours are the borders of
patches.
176
Chapter 1: Avizo
Contour layers
If the surface should only get remeshed around contours, this parameter enables the user to determine how large the area in number of triangles should be.
Modify result
This button allows modifying the result. If one has already remeshed the surface but would like
to improve the result, hitting this button allows modifying the surface starting with the previously
computed result. This functionality might save a lot of time if only minor changes are desired.
Examples
1.99
Resample
This module works on any 3-dimensional field with regular coordinates, e.g., complex and noncomplex scalar or vector fields or RGBA color fields. It lets you resample the data, i.e., enlarge or
shrink the dimensions of the regular grid while recalculating the data according to it. The first port
displayed is Input Resolution which indicates the resolution of the incoming data field to be resampled. If the input field has uniform coordinate the voxelsize is also displayed. The other ports depend
on whether the input field contains ordinary numbers or labels as used in image segmentation (see
LabelField).
For non-labeled data fields you see the Filter, the Mode, the Resolution port and if the input field has
uniform coordinates you will see the Voxel Size port. In case of a labeled data field you see the Average
port. Depending on the existence of labeled data the resampling operation is performed differently.
1.99.1
For non-labeled input data the ports denoted Filter, Mode, Resolution and Voxelsize will be shown.
Filter provides an option menu allowing you to specify the filter kernel for the resampling operation.
Usually the default kernel, Lanczos, yields sufficiently good results for both minifications and magnifications. The following filters are supported:
Resample
177
178
Chapter 1: Avizo
Resample
179
180
Chapter 1: Avizo
The Minimum and Maximum filters can only be used to downsample non-complex data fields.
Port Mode gives you choices how to specify the resolution of the output field. If you select dimensions the port Resolution will be enabled to take your input. if you select voxel size port voxel size
is enabled.
If you connect a second field to the Reference connection the behavior will be a little bit different. If
you select dimensions the output field will have the same dimensions as the reference field. If you
select voxel size the voxel size will be taken from the reference. Additionally the choice reference
is enabled which resamples directly onto the lattice that is provided by the reference field.
Press the Apply button to start the resampling.
1.99.2
Labeled data fields can only be down-sampled. Instead of Filter and Resolution a port denoted Average
appears. This port allows you to enter the number of cells to average in every dimension. Note, that
no enlargement is possible.
As above, the Apply button initiates the resampling.
1.99.3
Resampling can be performed on any 3-dimensional field with either uniform, stacked, rectilinear, or
curvilinear coordinates. The resampling operation does not change the coordinate type. If you want to
convert a data set with stacked, rectilinear, or curvilinear coordinates into one with uniform coordinates
you should use the Arithmetic module instead of Resample. The coordinates of the resampled data set
are obtained by a resampling operation on the coordinates of the input data set.
Note that in general the bounding box of the resampled data set will be different from the one of the
input data set. In particular, for uniform coordinates the bounding box will extend from the center of
the first voxel to the center of the last one.
1.99.4
Resampling in Progress
While resampling, the progress bar at the bottom of the Properties Area indicates the percentage of
resampling that is done. You may cancel the resampling calculation any time by pressing the stop
button on the right of the progress bar.
Resample
181
Connections
Data [required]
The underlying data field to be resampled.
Reference [optional]
A reference lattice. It can provide the new resolution, the new voxelsize or the new lattice.
Ports
Input Resolution
This lets you select one of the resampling filters mentioned above. This will only be visible if the
input data set does not contain labels.
Mode
This lets you select whether you want to specify the new resolution or the new voxelsize. If a
reference lattice is connected the values a taken from there. Additionally there is the option enabled
to sample directly onto the points of the reference lattice.
Resolution
Specifies the resolution of the output data set. This port will only be visible if the input data set does
not contain labels.
Voxelsize
Specifies the voxelsize of the output data set. This port will only be visible if the input data set does
not contain labels and has uniform coordinates.
182
Chapter 1: Avizo
Average
Specifies how many labels should be averaged during down-sampling. This port will only be visible
if the input data set contains labels.
1.100
Scale
This module displays a 2D coordinate system on top of the rendering area. The coordinates are calculated on a plane perpendicular to the viewing direction located at the focal distance of the camera.
The focal distance is the point about which rotations are performed. In orthogonal projections the displayed distances are valid for all parts of the picture; in perspective projections only for the mentioned
plane. The location and size of the coordinate system can be controlled by the ports. The module
scales things to get nice numbers (no fractions). Create an instance with the Create menu.
Ports
PosX
The position of the origin (fraction of horizontal size of the viewing area).
PosY
The position of the origin (fraction of vertical size of the viewing area).
SizeX
Scale
183
SubTicks
Units label (e.g., meters, mm, etc.) that is displayed at the axes.
Color
1.101
ScanConvertSurface
This module computes a volumetric representation of closed manifold and non-manifold surfaces. The
result is a 3D uniform LabelField, whose bounding box and dimension can either be specified by filling
in the corresponding ports or by a connecting a reference field. Each voxel on the inside of the surface
is labeled according to material index of the surface. The user can choose to label all or pick out single
materials.
Press the Apply button to start the computation.
Connections
Data [required]
Surface to be converted.
Field [optional]
Reference regular 3D field, whose dimensions and bounding box are used to define the resulting
field.
Ports
Bbox
184
Chapter 1: Avizo
Materials
If a reference LabelField was connected, the volume overlap of the materials of the resulting field
with the reference field can optionally be computed. Its value will be written to the console window.
1.102
SelectLines
This module extracts a subset of lines or line segments from a given line set object. The lines can be
selected by one or more regions of interest SelectROI, by one to three materials in a connected label
field, or by an expression which is evaluated on the data values of the vertices of the lines.
Press the Apply button to start the computation and generate a new line set object.
Connections
Data [required]
The lines set to be filtered.
Label field [optional]
A label field with a number of materials. You can select up to three materials from the label field
and only lines that connect all three materials will be copied to the output.
Region of interest01 [optional]
A region of interest. Lines need to go through this region to be copied to the output.
Region of interest02 [optional]
A second region of interest. More region of interest ports will be added to the model at run-time as
long as new SelectROIs are connected.
Ports
Info
This port appears if the statistics check box is marked. The port presents minimum and maximum
values for each data dimension per vertex.
SelectLines
185
Options
Select Expressions to make the Expression port visible. Select Input statistics to make the Info port
visible. The values displayed in the Info port will be evaluated each time, so disabling this option
will speed up the computation of the line sets.
Materials
This port is visible if a label field is connected to the module. It allows the user to select up to three
materials from the label field. Only lines that touch each material are copied to the output.
Expression
Enter an expression which is evaluated on the data per vertex of each line. Only vertices for which
the expression returns true are copied to the output. This will increase the number of lines as one
line of the input may be split into several line fragments of the output.
The variable for each data dimension is named dataN where N is the number of dimension starting
with 0. An expression like data00.5 will therefore copy only line segments to the output where the
first data value of a point along the line is greater than 0.5.
1.103
SelectRoi
This module defines a region-of-interest with the shape of an axis-aligned 3D box. This box can be
used to restrict the output of many visualization modules like Voltex, ProjectionView, or all modules
derived from ViewBase, e.g., Isosurface or HxSurfaceView.
Connections
Data [required]
Connection to a 3D data object which defines the maximum size of the region-of-interest. Only the
bounding box of the data object but not the data itself is interpreted by this module.
Ports
Minimum
186
Chapter 1: Avizo
Maximum
If the option show dragger is enabled a tab-box dragger is shown which allows you to interactively
adjust the region-of-interest in the 3D viewer.
Draw
After pressing the restrict button you can draw a contour in the viewer window in order to restrict
the region-of-interest. However, note that although you can draw an arbitrary contour the region-ofinterest itself still remains a box. The reset button resets the box so that is covers the full bounding
box of the connected data set.
Size
1.104
SequenceController
This module allows to change/animate time step values of connected data. It will be created automatically by some Avizo readers if the data are time stepped. This is the case for example with Avizo Wind
Edition readers like Ensight, IDEAS... This module will be automatically deleted when the connected
data are removed from the pool.
Ports
Time mode
This port allows to switch between two time modes: time steps and physical times. This port will
be shown only if connected data have physical times associated to each time step. By default, the
time mode will be time steps.
Time step
SequenceController
187
This port allows to change/animate time step values of connected data. This port will be shown only
if time mode is time steps.
Physical time
This port allows to change/animate physical time values of connected data. This port will be shown
only if time mode is physical times.
1.105
Shear
This module shears a uniform scalar field by shifting each xy-slice in y direction. The shift is proportional to the z-coordinate of the slice, resulting in a shear-operation. The angle between the original
and the sheared z-axis can be specified.
Press the Apply button to start the computation.
Connections
Data [required]
Connects to uniform scalar fields.
Ports
Info
The output field will be larger than the input field. This port gives the details.
Angle
Specifies the angle between the input z-axis and the sheared z-axis. Positive and negative values are
allowed.
1.106
ShowViewerSpreadSheet
This module uses a connected spreadsheet and displays the content of a selected row in the 3D viewer.
Position and color of the text can be specified by the user.
Connections
Data [required]
The spreadsheet object which contains the information to be displayed.
188
Chapter 1: Avizo
Ports
Row number
Texts background color. If the transparent toggle is off, the annotation text will be drawn inside a
filled rectangle. The background color of this rectangle can be set via the color button of this port.
Position type
Radio box defining whether the text position should be specified in absolute coordinates (screen
pixels) or in relative coordinates ranging from (0,0) in the lower left corner to (1,1) in the upper
right corner.
In both cases when the x coordinate is negative the right side of the text is placed relative to the right
side of the viewer. Likewise, if the y coordinate is negative the top side of the text is placed relative
to the top side of the viewer.
Absolute position
This port enables to select and tune the font used by the displayed text.
1.107
SmoothSurface
This module smoothes a surface by shifting its vertices. Each vertex is shifted towards the average
position of its neighbors. Special care is taken in the case of boundary vertices, for which not all the
SmoothSurface
189
neighbors are considered, but only those that are also on the boundary. In this way sharp boundaries
are preserved.
The smoothing operation is controlled by two tunable parameters: the number of iterations to be
performed and a lambda coefficient which should be in the range 0...1 and describes the step for each
iteration.
Press the Apply button to start the smoothing operation. Pressing Apply button once again causes the
result to be smoothed further. The input is only accessed if no result is present. This behavior is
different from most other modules but it allows better interactive control of the smoothing operation.
Connections
Data [required]
The surface to be smoothed.
Ports
Parameters
Contains two parameters: Iterations specifies the number of steps for the smoothing, lambda is a
shifting coefficient which should be in the range (0..1)
Operation
Pressing the Reset button restores the original surface, i.e., the input is copied to the output.
1.108
Sound
On Microsoft Windows, the underlying multimedia system is used; only WAVE format sound
files are supported.
On X11, the Network Audio System is used if available, otherwise all operations work silently.
NAS supports WAVE and AU files.
On Macintosh, all QuickTime formats are supported.
Ports
Sound file
190
Chapter 1: Avizo
Sound
Starts or stops the sound playing. Depending on the platform audio facilities, other sounds may stop
or may be mixed with the new sound. The sound can be played again at any time, possibly mixing
or replacing previous plays of the sound.
Loop
1.109
SpatialGraphStats
This module displays a tabbed spreadsheet providing some basic statistic information on the SpatialGraph data object it is attached to. The content of the spreadsheet refers to the selected Segments of a
SpatialGraph object. If no segments are selected, the module shows the quantitative information for all
the segments included in the attached SpatialGraph. The values are shown in a separate spreadsheet:
by clicking the rows, the corresponding Segments are highlighted in the 3D viewer, by selecting a
graph in the Graph area the graph object is highlighted.
All rows of a spreadsheet can be sorted with respect to a certain column by clicking the column header.
Clicking the column header again, toggles between ascending and descending order.
In some cases you might want to select more than one row at once. You can do this by selecting the
first row and then shift-selecting the last row. Then all intermediate rows will be selected as well.
Moreover, you may ctrl-click a row in order to toggle its selection state individually.
If you select a segment while the spreadsheet is visible, the correspondent table row is highlighted. In
this case multiple selection is not allowed.
The average values of the selected rows are shown in the lower part of the spreadsheet.
Line Statistics tab.
Line ID. Unique line ID in SpatialGraph data structure.
Length. Sum of the Euclidean distances between paired Points framing the Segment.
Mean Thickness. For each Point in the Segment, a certain thickness can be associated with it
according to the skeletonization procedure, which generated it. The skeletonization procedure
extracts the thickness directly from the gray values using a user-specified threshold . In this
case, therefore, the thickness is calculated as the average thickness across all the Points framing
the Segment.
Volume. The sum of all the the volumes assuming a cylinder geometry between paired Points.
Rank. The branching level of the segment with respect to the root segment. If no root segment
has been specified the Rank of the segment is undefined and set to 0.
SpatialGraphStats
191
Connections
Data [required]
The SpatialGraph input data object.
1.110
SpatialGraphView
This module visualizes data objects of type SpatialGraph. Individual Segments may be displayed in
wireframe mode, in Point-mode or alternatively as true three-dimensional tubes. In the case of Pointmode, the Points framing the Segment are shown; Nodes are displayed as spheres. Additional features
of SpatialGraphView are pseudo-coloring and scaling of Points, Nodes and Segments. In order to
colorize and scale the displayed items, it is possible to use one of the scalar data or labels stored in the
data structure of the connected SpatialGraph object.
Connections
Data [required]
The SpatialGraph object to be displayed.
Node Colormap [optional]
Colormap used for pseudo-coloring the Nodes.
Segment Colormap [optional]
Colormap used for pseudo-coloring the Segments.
192
Chapter 1: Avizo
Ports
Items to show
If data variables are available, this menu allows you to select the variable that will be used to scale
the diameter of the spheres. If no additional data values are present, only Constant scaling will be
available.
Node scale factor
If data variables or label sets are available, this menu allows you to select the variable or label
that will be used to look up Node colors. If Constant has been selected, the lines or tubes will be
displayed in a uniform color.
Node Colormap
Controls how the Segments are displayed. Select Lines for the wireframe mode, Points for the
Points-frame mode, Tubes for true three-dimensional tubes. When Points is selected, the Points
defining the Segments are shown.
Tube scale
Optional connection to a scalar field, which can be used to influence scaling of the Tubes.
SpatialGraphView
193
If data variables are available, this menu allows you to select the variable that will be used to scale
the diameter of the tubes. If no additional data values are present, only Constant scaling will be
available.
Segment coloring
If data variables or label sets are available, this menu allows you to select the variable or label that
will be used to look up Segment colors. If Constant has been selected, the lines or tubes will be
displayed in a uniform color.
Label Coloring
If label sets are selected, this menu allows you to select how the segments will be colored. If Labels
is selected, the lines or tubes will be displayed using the label-coded colors. The colors are selected
automatically according to the color of the labels specified in the SpatialGraph object. If Colormap
is selected, a colormap is used.
Segment Colormap
Commands
setLineWidth <width>
Specifies the width of width of lines in wireframe mode for Segments.
1.111
SplineProbe
194
Chapter 1: Avizo
1.112
StandardView
The StandardView module displays a 3D image data set or, more precisely, a 3D scalar field with either
uniform or stacked coordinates in three different 2D windows at once. The windows show xz, yz and
xy views of the data, respectively. Note, that for the xy view the origin is in the upper left corner. In
each 2D view the position of the two other slices is indicated by a colored cross hair. You may click
at any point in a 2D view in order to reposition the two other slices. The upper left part of the viewer
window shows the usual 3D view.
Connections
Data [required]
The 3D scalar field to be visualized.
OverlayData [optional]
If this port is connected to a second 3D image data set, an overlay of both images is shown in the
2D windows.
Ports
Info
This port gives some information about the value of the 3D scalar field at the point where the three
2D slices intersect, as well as its coordinates.
Range
Controls the mapping of input data to gray values. Values below min are mapped to black, values
above max are mapped to white. Values between min and max are mapped linearly.
SliceX
StandardView
195
Zoom
Allows you to decrease, reset, or increase the current image magnification factor. You may also
press [Ctrl][z] to zoom down or [Ctrl][Shift][z] to zoom up.
Overlay mode
This port is only visible if a second image data set has been connected to input port OverlayData.
You can choose one of four overlay modes: in blend, add, and maximum mode a blending, the sum,
or the maximum of both images is shown, respectively. In checkerboard mode the 2D windows are
divided like a checkerboard showing both image data sets alternately.
Overlay range
This port is only visible if a second image data set has been connected to input port OverlayData. It
controls the mapping of the second image data set to gray values, similar to port Range for the first
image data set.
Blend factor
This port is only visible if overlay mode blend has been selected. It controls the blending of both
image data sets. Blend factors 0 and 1 mean that only the first or only the second data set is shown,
respectively. For values between 0 and 1 a linear interpolation is done.
Pattern size
This port is only visible if overlay mode checkerboard has been selected. It controls the size of the
checkerboard tiles.
1.113
Statistics2D
This module compute statistics from an uniform scalar field inside a 2D shape. During computation, a
field corresponding to the 2D shape is extracted.
Computed statistics are:
- minimum - maximum - mean - Variance - Deviation (square root of variance) - Number of used pixels
- Area - Perimeter
The area value is computed with a pixel based area computation. It will not be exactly equal to the 2D
shape area.
196
Chapter 1: Avizo
Connections
Data [required]
The input data set (uniform scalar field).
Shape [required]
The 2D shape needed for the computation. Currently only line sets are supported.
1.114
SurfaceArea
This module calculates the area of the individual patches of a surface (patch mode). The results are
stored in a spread sheet data object.
In an alternative mode the area and the enclosed volume of the different regions defined in the surface
are computed (material mode). In this mode the total surface area is twice as large since every triangle
contributes to two regions. Note that for this mode it is required that the surface be closed, i.e., that all
regions are completely enclosed by triangles. Otherwise, the computed volumes will be incorrect.
Actually, the volume computation simply sums the signed volumes of all of the tetrahedra joining
surface triangles to the origin (point with coordinates x=0, y=0, z=0). The sign of the volumes depends
on triangle orientation relative to the origin, so volumes are computed correctly even for non convex
surfaces. In the case of a closed surface, the result is the volume of the enclosed surface. If the surface
is not closed, then the result can be considered as the volume comprised between the surface (triangles)
and the origin, which can be still useful depending on your purpose.
Press the Apply button to start the computation.
Connections
Data [required]
The surface to be investigated.
Ports
Mode
SurfaceArea
197
In patch mode the resulting spread sheet object contains one row for every patch of the surface.
Each row contains the patch id, the patchs inner region name, the patchs outer region name, the
number of triangles of the patch, and the surface area of the patch. In the following columns the
total number of triangles and the total surface area are printed. If the surface data structure also
contains the surface contour, the surface perimeter is displayed. Note that you might have to use the
recompute command of the Surface module, to obtain the contour information.
1.115
SurfaceCut
The SurfaceCut displays a filled cross-section through a surface generated by the SurfaceGen module.
The surface is supposed to separate different volumetric regions from each other without any holes.
Within the cross section the different materials are indicated by their respective colors. If the surface
does not form closed loops in the intersection plane these parts will not be shown. The module is
derived from ArbitraryCut and thus provides the same methods for manipulating the position and
orientation of the cross section as this base class. An analog module GridCut exists for displaying
cross-sections in a tetrahedral finite-element grid.
Connections
Data [required]
The surface to be visualized.
Ports
Plane definition
198
Chapter 1: Avizo
Frame
This port is used to display or hide the frame, set the frame width and color.
Orientation
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Options
If the adjust view toggle is set, the camera of the main viewer is reset each time a new slice orientation is selected.
With the rotate toggle you can switch on the rotate handle for the cutting plane and off again.
If the immediate toggle is set the slice is updated every time you drag it with the mouse in the 3D
viewer. Otherwise only the bounding box of the cutting plane is moved and the update takes place
when you release the mouse button.
The fit to points toggle lets you reset the plane by clicking on at least 3 different points in the scene.
After enabling this toggle, you should switch to interaction mode by pressing the ESC-key inside
the viewer. Then click 3 times at different points on any geometry in the scene. The plane then will
be automatically adjusted to match these points. The virtual trackball - visible when rotate toggle
is active - will be moved to the center of the picked points. After 3 points have been picked, this
toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking allows you to
select more than 3 points. In this case the plane that best fits the selected points will be computed.
Translate
This slider allows you to select different slices. The slices may also be picked and dragged directly
in the 3D viewer.
Selection
This port maintains a list of materials to be displayed within the cross section. With the selection
menu one can select a single material. The Add button adds the currently selected material to the
list so the that is becomes visible and the Remove button removes the material so that it becomes
invisible.
SurfaceCut
199
Commands
Inherits all commands of ArbitraryCut.
selectMaterial <id1> [<id2> ...]
Selects the materials with the specified ids so that intersections of these materials with the cutting
plane will be shown. You need to call fire before changes take effect.
unselectMaterial <id1> [<id2> ...]
Unselects the materials with the specified ids so that intersections of these materials with the cutting
plane will not be shown. You need to call fire before changes take effect.
1.116
SurfaceDistance
This module computes several different distance measures between two triangulated surfaces. For each
vertex of one surface it computes the closest point on the other surface. From the histogram of these
values the following measures are computed:
mean distance
standard deviation from the mean distance
root mean square distance
maximum distance (Hausdorff distance)
medial distance
area deviation: percentage of area that deviates more than a given threshold
By using an oct-tree structure the computation is sped up, but may fail when two surfaces are too
different in their shape or location.
Press the Apply button to start the computation.
Connections
surface1 [required]
Any triangulated surface
surface2 [required]
Any other triangulated surface
ROI [optional]
Connection to a module defining a region of interest.
200
Chapter 1: Avizo
Ports
Direction
The distance measures are asymmetric. Thus one can compute them from surface 1->2 or vice
versa 2->1. One way to get symmetric measures is to join the histograms from both directions
into a single histogram (Two-sided option). Note that the two-sided option takes twice as long to
compute as its one-sided counterparts.
Consider
When computing the closest points, one can chose to respect either patches or patches and contours. This means that closest points from any patch/contour will be restricted to lie on the same
patch/contour of the other surface. Isolated points can be considered or not in the surface computation.
Maximal distance
Value for the distance to be used when no closest point could be computed. This can happen when
surfaces are too far apart or too different in their shape.
AboveThreshold
Threshold value for the computation of the area deviation.
Output
Optional output of the vectors from each point on one surface to their associated closest points on
the other surface, or only their magnitude (distance option).
Info
Resulting distance measures will be displayed here: mean, standard deviation, root mean square,
and maximum.
Info2
Resulting distance measures will be displayed here: median, area deviation. If the connected surfaces have the same number of nodes, the root mean square distance between two vertices with the
same index will be computed as well. This is of interest when you have computed correspondences
by some other method than the closest points computation.
SurfaceDistance
201
1.117
SurfaceField
This module computes a SurfaceField from a Surface and a UniformScalarField. One can choose
between encoding on nodes, on triangles, or on triangle nodes.
Press the Apply button to start the computation.
Connections
Surface [required]
A surface that is the domain of the surface field to be generated.
Data [required]
A 3D scalar field.
Ports
Encoding
1.118
SurfaceGen
This module computes a triangular approximation of the interfaces between different material types in
a LabelField with either uniform or stacked coordinates. The resulting surfaces can be non-manifold
surfaces. In earlier releases of Avizo this module was called GMC.
Depending on the resolution of the incoming LabelField the resulting triangular surface may have a
huge amount of triangles. Therefore it is often recommended to start with a downsampled version of
the LabelField, e.g., with a resolution of 128x128 pixels per slice. During the resampling process the
Resample module will create or update the probability information of the LabelField. This way the
loss of information caused by the resampling process will be minimized. The SurfaceGen module can
use the probability information to generate smoother surfaces.
Press the Apply button to start the surface extraction. Depending on the size of the LabelField the
algorithm requires up to a minute to finish.
202
Chapter 1: Avizo
Connections
Data [required]
LabelField from which the interfaces should be extracted.
Ports
Smoothing
This port controls the way in which the module generates a smooth surface. If set to none, no subvoxel weights are used and the resulting surface will look staircase-like. If set to existing weights,
then pre-computed weights are used; such weights can be generated with the resample module
or the smoothing filter in the image segmentation editor. The options constrained smoothing and
unconstrained smoothing generate sub-voxel weights, such that the surface is naturally smooth;
in the constrained smoothing mode, the module guarantees that no label be modified: any two
voxel centers that have been labeled differently before the smoothing are separated by the generated
surface afterwards. This is not necessarily the case for every small detail in the unconstrained case.
The amount of smoothing can be controlled via the Tcl interface. Type
SurfaceGen setVar SmoothKernelSize <value>
into the Avizo console, to change the default, which is 5 for the unconstrained and 4 for the constrained case. The values currently cannot be larger than 9 but are not limited to integer variables.
Note that setting this variable only applies to the actual SurfaceGen module. For further modules
SurfaceGen2 etc the command has to be repeated.
Options
This port will only be visible if add border has been selected. It provides two toggle buttons labeled
adjust coords and extra material.
SurfaceGen
203
It the first option is selected points belonging to triangles adjacent to boundary voxels will be moved
exactly onto the nearest boundary face of the bounding box. In this way the resulting surface appears
to be sharply cut off at the boundaries.
The second toggle indicates that triangles adjacent to boundary voxels will be inserted into separate
patches. The outer region of these patches will be called Exterior2. If the toggle is off no such
extra material will be created. Instead, the boundary is assumed to be labeled with 0, which usually
corresponds to Exterior.
Minimal edge length
A non-vanishing value indicates that short edges of the final surface should be contracted in order
to increase triangle quality as well as to decrease the number of triangles. The value of the port
indicates the minimal allowed edge length relative to the size of a unit grid cell. By default, values
between 0 and 0.8 can be entered. Typically, a value of 0.4 already yields good results. However,
note that intersections may be introduced during edge contraction. If you want to avoid this try to
use the simplification editor. The editor applies some special strategies in order ensure topological
consistency.
1.119
SurfaceIntersector
This module intersects two surfaces, computes a path along the intersection and attaches it to each of
the surfaces.
Connections
Surface1 [required]
The first surface to be intersected.
Surface2 [required]
The second surface to be intersected.
Ports
DoIt
1.120
SurfacePathView
204
Chapter 1: Avizo
Connections
Data [required]
The module must be connected to a surface path set.
Ports
Point size
This port allows the user to change the size of the displayed control-points in the paths.
Line width
This port allows the user to change the width of the line segments connecting the nodes in the paths.
Control Point Shape
This port allows you to choose a display mode for the control points. Two modes are supported:
cubes and spheres.
Control Point Color
This port allows changing the color of the displayed control points.
Path Color
This port allows changing the color of the displayed surface paths.
Rendering
This port allows the user to influence the rendering of the lines and the control points of the surface
paths. The Lineset offset offsets the lines in viewing direction such that the lines are visible even
though they are exactly on the surface. The second value, the CP scale, scales the cubes or spheres
representing the control points by the given value. This value is multiplied by the value given by
the Point size port.
SurfacePathView
205
1.121
SurfaceStatistics
This module takes a surface as its input and computes the statistics of that surface. The resulting data
is displayed ina spreadsheet. Data computed with this module:
Connections
Data [required]
The surface to be investigated.
1.122
SurfaceThickness
This module computes the thickness of a thin surface based on the shortest distance of each vertex in
the direction of its normal with all triangles of the same material. The result is exported as a surface
scalar field with a distance measure per vertex. Press the button Apply to start the computation of the
surface scalar field.
Connections
Data [required]
Connect this port to a surface object.
Ports
Data
206
Chapter 1: Avizo
Enables to specify the material which will be used to compute the thickness.
1.123
SurfaceView
This module allows you to visualize triangular surfaces, i.e., data objects of type Surface. Derived from
the generic ViewBase class, the module provides an internal buffer of visible triangles. You can add
triangles to this buffer by means of two special option menus. For example, if your surface contains
regions R1 and R2, you may first highlight all triangles separating these two regions by choosing R1
and R2 in port Materials. Highlighted triangles are displayed in red wireframe. By pressing button
Add of port Buffer highlighted triangles can be added to the internal buffer, which causes them to be
displayed in their own colors. You may restrict highlighting by means of an adjustable box. In order
to resize the box pick one of the green handles at the corners of the box. Highlighted triangles may
also be removed from the buffer by pressing button Remove. In addition, individual triangles may be
removed from the buffer by shift-clicking them.
Connections
Data [required]
The surface to be visualized.
ColorField [optional]
In conjunction with a colormap an optional field can be visualized on top of the surface in pseudocolor mode. The field may be either of type HxScalarField3 or of type HxSurfaceScalarField. In
addition to scalar surface fields also 3 and 4-component surface fields are supported. In this case,
the field components are directly interpreted as RGB or RGBA values. The values should range
from 0 to 1.
Colormap [optional]
The Colormap is used to visualize the data values of a scalar field connected to port ColorField.
Texture [optional]
The texture field must be an HxUniformColorField3 2D slice. When connected, the texture is
mapped onto the surface geometry along the texture normal axis. A transformation can be applied
to the data to change the texture projection axis and texture coordinates scale. Note that texture
projection override pseudo-color mode.
ROI [optional]
Connection to a SelectRoi module defining a region of interest.
SurfaceView
207
Ports
Draw Style
This port is inherited from the ViewBase class and therefore the description will be found there.
Culling mode
This port becomes visible only if a scalar field has been connected to the ColorField port.
Buffer
This port lets you add and remove highlighted triangles (being displayed in red wireframe) to an
internal buffer. For a further description and for the functionality of each of the port buttons see
ViewBase.
Selection mode
This port lets you specify whether you want to highlight triangles
on the the basis of their associated material, their patch ID,
or their boundary ID.
Patch
208
Chapter 1: Avizo
This port is visible if transparent has been chosen as the draw style. It allows you to modify
the transparency of the surface. For each material an own transparency value can be defined in
the surfaces parameter section. If base transparency is 0.5, exactly this default transparency is
taken. Larger values make all parts of the surface more opaque, smaller values the surface more
transparent.
SurfaceView
209
VR-Mode
This port is only available in VR mode (see Avizo XScreen Pack documentation). It allows you
to choose how to interact with the surface using the 3D wand. In query mode information about
the clicked point is displayed similar to what is displayed in standard Avizo when clicking onto a
surface with the middle mouse button. The other modes are select patches, highlight patches, select
triangles, and highlight triangles.
TextureWrap
Wrap mode used for the texture projection on the surface when a texture is applied to the surface.
There are two wrap modes: Repeat: The texture is repeated outside its 0-1 texture coordinate range.
Clamp: Clamps texture coordinates to lie within 0-1 range. This port is hidden if there is nothing
connected to the Texture connection port.
1.124
TimeHistoryPlot
This module can be used to display time-history data stored in a SpreadSheet data object. The first
column of the spreadsheet that contains float values is used as a time for the abscissa. This module creates a plot window displaying one curve for each other column containing float values. Only columns
containing float values are considered.
Connections
Data [required]
The spread sheet to be visualized.
Ports
Time
The Time port can be used to control a marker line showing the current time step.
Plot Buffer
The Plot buffer can be used to add or remove curves from the plot.
210
Chapter 1: Avizo
1.125
TimeSeriesControl
This module is created automatically if files are imported via the Open Time Series Data... option of
the main windows File menu. The module assumes that all files selected in the file browser represent
the same data object at different time steps. Instead of loading all files at once, a slider is provided
allowing the user to select the current time step. Whenever a new time step is loaded data, objects
associated with a previous time step are replaced. The replacement is performed in such a way that
connections to down-stream modules are retained.
The time series module is also able to linearly interpolate between subsequent time steps. However,
this only works for certain types of data objects, namely surfaces, tetrahedral grids, hexahedral grids,
fields defined on surfaces, tetrahedral or hexahedral grids, and data objects derived from the vertex
set base class. In addition, it is required that for each time step the same number of data objects
be created, that corresponding data objects are created in the same order in all time steps, and that
corresponding data objects have the same number of vertices or elements. For example, you cannot
easily interpolate between surfaces with a different number of triangles (Avizo provides other modules
to support this). If multiple data objects are created for each time step, interpolation of particular
objects can be suppressed by switching off the orange viewer toggle of these objects.
In addition to the step number, the module can also display the physical time associated with each time
step, provided the physical time is specified as a Time parameter for each data object. It is required
that the physical times of subsequent time steps be monotonically increasing. In order to use physical
time mode, the relevant time steps must be loaded in index mode first.
Connections
Time [optional]
Connection to a global time object.
Ports
Info
This port displays the total number of time steps. If the data objects provide a physical time in
a Time parameter, the physical time range is displayed too. If the last time step has not yet been
loaded, a question mark is printed instead of the maximum time value. In addition, if a physical
time is provided, the current physical time or the current time step index is displayed, depending on
the value of the physical time toggle.
Cached steps
Allows you to adjust the cache size. By default every time step is cached, i.e., the number of cached
TimeSeriesControl
211
steps is equal to the total number of time steps. If the number of cached steps is zero the cache is
disabled. Data objects associated with a previous time step are deleted before a new time step is
loaded. Interpolation mode requires a cache size of two, i.e., in addition to the current interpolated
time step, at least two additional time steps have to be stored in memory.
Options
The first toggle is used to activate interpolation mode. In this mode, fractional time steps can be
specified and a linear interpolation between two subsequent time steps is performed. Note that
interpolation can only be performed if certain requirements are met (details are described above).
The second toggle is used to activate physical time mode. Physical time mode is only available if
the loaded data objects provide a Time parameter. In physical time mode the time slider displays
the physical time instead of the current time step.
The third toggle is used to apply to the data of the next (or previous) timestep the geometric transformation(s) applied to the data open at the current time step.
The fourth toggle is used to copy all the parameters of the current time step data to the parameters
of the data of the next (or previous) timestep.
Time
Specifies the current time step or the current physical time. The port provides a popup menu (right
mouse button click) which can be used to configure settings like animation mode or subrange interval. The two outer buttons allow you to automatically animate the time step or the physical time
forwards or backwards. Animation speed in physical time mode can be controlled via the increment
value in the configure dialog.
1.126
Trajectory
This module can control position and orientation of an HxArbitraryCut sliding it along a given curve or
lineset. The Trajectory can be activated from an HxObliqueSlice, for instance. Typical usage scenarios
are 1) show a slice at a fixed position while sliding, 2) use a stencil mask to visualize only a circular
region around the trajectory.
Connections
Data [required]
The lineset where the trajectory is part of.
Module [required]
The HxArbitraryCut modules whose slice position and orientation will be adjusted.
212
Chapter 1: Avizo
Ports
Line
The number of the line within the lineset that should be used as trajectory.
Position
Position on the trajectory. Can be the vertex number or line-segment number depending on the
toggle Use Line Segments
View
If Up front is selected, the camera of the actual viewer is adjusted to the position and tangent of the
trajectory position.
If Frame is selected, the border frame of the connected HxArbitraryCut module is switched on,
otherwise it is switched off.
If Orthographic is selected, the camera is switched into orthographic projection mode.
If Use Line Segments is not selected, the slice position is set to the vertex positions of the trajectory.
The normal direction for the plane is defined by the predecessor and the successor vertex of the line.
If the option is set, the plane is positioned at the center of a line segment, and the line segment is
used as plane normal.
1.127
TransformAnimation
This module allows you to control and animate the transformation of a spatial data object. This means
translating, rotating, scaling and shearing an object without changing the camera. It is possible to define complex transformations consisting of an arbitrary number of basic transformations (translations,
rotations, etc.) in an arbitrary order. Note, that the order of transformations is important: Translating
an object after a rotation yields a different result than the other way around.
The module has two modes:
Edit Transformation: In this mode you can create a complex transformation by editing a set
of basic transformations (translations, rotations, etc.). New basic transformations can be added,
existing transformations can be reordered and removed.
Edit Animation: This mode assumes that a complex set of transformations exists and only its
parameters can be changed. This means the degrees of a rotation or the size of a scale operation.
Basic transformations can not be added, reordered or removed. However, a set of parameters
can be saved as a so-called animation key. This allows you to create an animation.
TransformAnimation
213
Connections
SpatialData1 [required]
Connection to the spatial data object to be transformed.
SpatialData2 ... SpatialDataN [optional]
Additional spatial data objects to be transformed in the same way as the first one. This becomes
handy if you want to control a group of objects belonging to each other. You can connect an arbitrary
number of objects.
Time [optional]
Connection to other time modules.
Ports
Mode
Only available in animation mode. Controls the current time of the animation sequence.
Keys
Only available in animation mode. Allows you to select a previously defined animation key.
Action
Only available in animation mode. Allows you to add, remove, or replace animation keys.
Info
Only available in transformation mode. Allows you to add, remove, or reorder basic transformations.
214
Chapter 1: Avizo
Add
Only available in transformation mode. Allows you to add a new basic transformation and give it a
name.
1.128
TriangleDistortion
This module computes metric distortions of triangles of two different surfaces, both having with the
same connectivity (same number of points/triangles). Metric distortions quantify the amount of deformation of two triangles in terms of angles, areas or lengths. The result output is a surface scalar
field.
Connections
Data [required]
any triangulated surface of type HxSurface
Template [optional]
any other triangulated surface of type HxSurface
Ports
Distortion
Type of distortion measure: choose from angle, area or stretch (= length distortion)
Encoding
Encoding of the output field. Values on nodes are averages over all triangles adjacent to the node.
Options
Automatically adjusts the colormap used in the connected SurfaceView module. Distortion values
can optionally be weighted by the area of the triangle.
1.129
VRML-Export
This module enables you to export a triangular surface and optionally the 3D data set from which the
surface is derived into a VRML scene. The scene consists of a coordinate system and some animations:
TriangleDistortion
215
the 3D data set is displayed by three orthoslices. To get an idea how the basic 3D data set is related
to the derived surface you can set the orthogonal slices via sliders, scrolling through the triangular
surface. Moreover, the materials of the surface are clickable objects, which means that they can be
hidden or shown by a mouse click.
You can publish such a VRML scene directly on the web, just put a link to it into your homepage. To
view the file by yourself, make sure that a VRML viewer plugin like Cosmo Player (version 2.1 or
newer) from SGI is installed for your web browser.
If connected to the SurfaceView module, a special simple export mode becomes available which produces a VRML scene containing only a single IndexedFaceSet node. This is necessary for some 3D
printers with limited VRML parsing abilities.
If no surface is connected, only the slices may be exported to VRML.
Press the Apply button to start the export.
Connections
Data [required]
The surface to be inserted into the VRML scene. It can either be an Avizo Surface data set or the
SurfaceView module.
Image [optional]
A scalar field of type UniformScalarField3 or of type UniformColorField3 is needed to export the
orthoslices. If omitted, no slices are displayed in the VRML scene.
Ports
Tabbar
Tab bar to navigate through the user-interface sections. The Slices tab remains disabled as long no
image data is connected.
Info
In simple export mode, the coloring mode and the number of primitives is shown here. (only
available in simple mode).
Selected
This port shows the selected materials (not available in simple mode).
216
Chapter 1: Avizo
Material
With this port you can choose a material in order to add or to remove it from the current selection
(not available in simple mode).
Buffer
With this port the selection of materials can be modified. To remove a material from the list, choose
this material from the Material menu and press Remove. Similarly you can use Add. Clear clears
the selection list. Initially, all materials are selected (not available in simple mode).
Mask
If the simple export mode was chosen, no selection by material is provided. Instead one can use
the selection mechanism of the connected SurfaceView module. Toggle Selected to export only the
primitives selected there, i.e., the visible ones (only available in simple mode).
Simple mode
If connected to the SurfaceView module, a special simple export mode becomes available which
produces a VRML scene containing only a single IndexedFaceSet node. This is necessary for some
3D printers with limited VRML parsing abilities.
Render specular
Adding a specular color to the scene which makes the surface more look like plastic.
Render smooth
If clicked, the slices will actually be moved through the volume when the sliders are operated.
Otherwise, only the textures mapped onto the slices are cycled.
Static switches
VRML-Export
217
If clicked, the small objects used to switch on and off the surface parts will be fixed on the screen.
Note that this requires at least Cosmo Player 2.1 or similar.
Labels
Toggle this for displaying the material names near the material toggles in the VRML scene.
Export slices
If toggled, the slice images taken from the image data are exported. If no image data is connected,
no slices are exported regardless of this toggle.
Data window
Needed to map data values of input field to gray values. See module OrthoSlice for details.
Slice numbers
Enter the numbers of slices per direction you want to be selectable in the VRML scene. Only
available on SGI and when image data is connected.
Filename
Name of the file the VRML code is written to. If export of slices is selected, the slice images are
stored to the same directory.
1.130
Vertex Morph
This module takes two Vertex Set objects as input, e.g. two surfaces or two tetrahedral grids, and
computes an output surface by linearily interpolating the vertex positions. This can be used to create a
smooth transition between the two objects. Note, that the two input data sets must be related in order
to produce meaningful results. For example, the second input could actually be a copy of the first one
with an applied transformation.
Connections
Input1 [required]
First input data set. This data set is duplicated to produce the output.
Input2 [required]
Second input data set, must have at least as many points as the first input.
218
Chapter 1: Avizo
Ports
t
Interpolation parameter. For t=0 the output will be identical to the first input. For t=1 output will be
second input.
1.131
VertexDiff
The module computes the displacement field. A vector field on a surface is computed by the difference
of the vertex positions of corresponding vertices in both surfaces.
Press the Apply button to start the computation.
Connections
Data [required]
Surface 1
Surface2 [required]
Surface 2
1.132
VertexShift
The module displaces the vertices of a surface. The displacements are given by one or more vector
fields. The vector field(s) might be assigned a multiplicative coefficient. The computed vector fields
automatically connect to the domain surface.
Press the Apply button to start the computation.
Connections
Data [required]
The surface to be displaced.
Vector field [required]
The displacement vector field. If a vector field is connected, then the Lambda 1 multiplicative factor
port appears as well as a second vector field port in order to connect another optional vector field
and so on.
VertexDiff
219
Ports
Info
Multiplicative factor to modify the contribution of the first vector field to the surface displacement.
1.133
VertexView
This module allows you to visualize arbitrary vertex sets. Vertex sets occur as part of objects of other
types, such as Surfaces, Tetrahedral Grids, Line Sets, or Molecules. The vertices can be displayed in
three different modes: spheres, plates, and points. The vertices may be colored according to a scalar
field and a colormap. Alternatively, colors may also be defined via the command interface of the
VertexView module. Furthermore an internal buffer exists that allows you to view only those vertices
that are of interest to you.
Connections
Data [required]
The data object from which the vertex set is read.
ColorField [optional]
3D scalar field which is used along with a colormap to color the vertices according to the value of
the scalar field at the position of a vertex.
Colormap [optional]
Used to color the vertices in connection with the ColorField.
Ports
Colormap
220
Chapter 1: Avizo
Specifies unique radius for all spheres. This port is only visible if Spheres or Plates is chosen as the
draw style.
Point Size
Size of points for draw style Points. Only visible in Points mode.
Complexity
Set complexity of displayed spheres. Reducing the complexity leads to coarser spheres and improved rendering performance. If draw style is set to plates, the complexity controls the size of
the texture maps containing the spheres images. The smallest texture size is 32x32, the biggest is
512x512. The port is not visible for draw style points.
Options:
VertexView
221
Transparency
A list of buttons for manipulating the internal buffer. In order to actually see the buffer content,
activate the buffer only option.
Commands
setHighlightColor <red> <green> <blue>
Set the color that is used to highlight selected spheres.
setDefaultColor <red> <green> <blue>
Set default color.
setColorHighlighted <red> <green> <blue>
Color all highlighted spheres.
setColor [<first-vertex-number> [<last-vertex-number>]] <red>
<green> <blue>
Set color for all spheres from first-vertex-number to last-vertex-number. If last-vertex-number is
omitted, the color is set for the sphere with index first-vertex-number. If first-vertex-number is
omitted too, the color for all spheres is set. Red, green, and blue range from 0 to 1.
highlight <first-vertex-number> [<last-vertex-number>]
Highlight spheres from first-vertex-number to last-vertex-number.
getHighlighted
Returns a list of all currently highlighted spheres.
unhighlightAll
Unhighlight all spheres.
222
Chapter 1: Avizo
1.134
ViewerPlot
You may connect this module tightly to a module that provides a plot window in order to display the
plot within Avizos viewer. If that module creates more than one plot window, it may be useful to
connect one ViewerPlot module for each plot window.
Connections
PlotModule [required]
This port must be connected to a module providing a plot window and an interface to access this
window. Histogram and LineProbe are examples for such modules.
ViewerPlot
223
Ports
Which Plotwindow
This port is only shown if there are more than one plot window created by the module it is connected
to. Use it to select which plot to display in the viewer.
Options
A value of 1 produces a completely transparent plot background, while 0 results in a fully opaque
background.
Absolute Position
Position of plot in viewer in absolute pixels relative to the lower left corner. If one of the numbers
is negative, it is interpreted relative to the upper right corner.
Relative Position
Position of plot in viewer in normalized coordinates (0..1) relative to the lower left corner. If one of
the numbers is negative, it is interpreted relative to the upper right corner.
Size
224
Chapter 1: Avizo
Actions
Pressing the Edit button opens the object editor window of the plot. If you press the Show plot
window button, the extra plot window is shown on the screen. Pressing the same button again, the
plot window vanishes.
1.135
VolPro-1000
This module is available for Windows 32-bit, Windows XP x64-edition, and Linux 32-bit only. If you
need it on other platforms, contact us at [email protected] or hotline [email protected].
Note that this module requires special hardware.
This module provides high quality real time volume rendering by exploiting the TeraRecon VolumePro 1000 board (compare www.terarecon.com). The volume rendering algorithm is implemented in
hardware on the VolumePro board. Hence, the rendering can be performed at interactive frame rates
even on low-end machines. For general information about volume rendering see the description of the
Voltex module.
The VolPro-1000 module exploits most of the features provided by the VolumePro 1000 system, such
as transfer functions, lighting, super sampling, several blend and modulation modes, cropping and cut
planes in the three main orientations. Rendering can be combined with other polygonal geometry, as
long as no transparent polygons are involved.
Press the Apply button to reload the volume to the VolumePro 1000 board(s). This may be necessary
after changing some crucial ports. As long there is no need to reload the volume, the button is disabled.
The default behavior of this module at its creation time is to load the volume into a single board. This
can be stopped by pressing the stop button in the work area beside the progress bar. Then one could
change the multiboard parameters and press this button to reload the volume.
Connections
Data [required]
The scalar field to be visualized. The module is also able to handle objects of type LargeDiskData.
Colormap [optional]
The transfer function represented by a colormap.
Ports
Tabbar
This port facilitates the navigation in the user interface by grouping the ports.
VolPro-1000
225
Colormap
This port allows you to select one of the predefined colormaps and to specify a range of the scalar
values which the colors of the colormap should be mapped to.
Alpha scale
Supersampling is a technique for improving the quality of the rendered image. This port allows
you to choose among two supersampling spaces, i.e. camera and object space. Supersampling
in object space is especially useful if the distance between the voxels varies strongly along the
three main axes. At rendering time object space supersampling factors are transformed into camera
space factors. Supersampling in camera space in the x and y directions results in more samples in
the base plane. This is done by multipass rendering, which drastically decreases the performance.
Supersampling in the z direction results in more slices in the viewing direction, which is supported
by the hardware and, hence, hardly influences performance.
Super sampling factors
This port allows to specify the degree of supersampling in the x, y and z direction.
Blend mode
226
Chapter 1: Avizo
GMOM (Gradient Magnitude Opacity Modulation): The original opacity is scaled by the
magnitude of the sample gradient. Thus only surfaces will be perceived.
GMIM (Gradient Magnitude Illumination Modulation): Multiplies the computed diffuse or
specular color with the magnitude of the sample gradient. As a result the illumination from
non-surfaces, which have small gradients, is reduced. GMIM is only effects the image if light
is applied to the scene.
Light
Material coefficient.
Specular
Material coefficient.
Emissive
Material coefficient.
Shininess
Material coefficient.
Light options
Light intensity.
Crop dragger
A dragger box can be used to crop parts of the volume. With the show toggle you hide or show
VolPro-1000
227
the box, which can then be scaled and translated in the viewing window. With the enable toggle
cropping is switched on or off.
Crop mode
With the help of the cut plane slices of varying thickness can be cut out of the volume. Either
the part of the volume defined by this slice or the rest of the volume except this slice might be
visualized separately. Apart from slices half spaces can be clipped. The Cut Plane port has three
toggle buttons, which determine how clipping is done. The first button enables or disables the
cut plane. If the second toggle button, halfspace, is pushed, not a plane is selected, but a whole
halfspace, i.e. the volume on one side of the plane is clipped, the other one is shown. The toggle
invert inverts clipping, e.g., if it is off and halfspace is off too, a slice with a certain thickness is
shown. If you then switch the invert toggle on, the slice that could formerly be seen is now clipped
and the rest of the volume can be seen.
Slice number
Determines the thickness of the cut plane. Notice, that the thickness grows only into one direction.
Slice orientation
With this port you can specify the plane which the cut plane should be parallel to.
Draft render
228
Chapter 1: Avizo
If checked the rendering process gets simplified during object animation. The desired effect is to
increase the rendering speed. The loss of quality is the price for the more of interactivity. If the
objects stops to transform a maximum quality still picture is rendered.
Draft render quality
With this slider one can adjust the amount of simplicity or quality loss when draft rendering is
enabled. The lower the value the faster but messier the render result. No matter which value was
chosen, the depth buffer feature (providing correct occlusion with polygonal objects) is always
turned off during draft rendering.
Multiboard mode
A volume buffer can be replicated or spread over multiple VolumePro 1000 boards. This port can
be either set to single, replicate or split.The default is single disabling multiboard rendering for that
volume. Multiboard mode replicate replicates the volume data onto all boards in the system. Each
board will render the entire volume for one horizontal band of the output image buffer. This will
speed up rendering when the slowest part of the rendering process is the ray casting process, but
will slow down volume updates because each update must go to all boards. Multiboard mode split
splits the volume into pieces and loads one piece onto each board in the system. This allows very
large volumes to be rendered, since two boards will be able to support a volume greater than one
board. However, the images from each hardware rendering operation are full size images that must
be blended together in a separate rendering process; this adds extra overhead for rendering.
Multiboard min size
For multiboard rendering mode split, this specifies how much overlap there will be between the split
volume data. The minimum is 2, which is fine for non-mipmap volumes. The larger the overlap,
the more mipmap levels can be generated correctly. For example, an overlap of 64 will allow levels
1 through 5 even with the mipmap shrink factor set to 50
Mip map min level
Range of mipmap levels to use when rendering. Valid values are 0 to 32.
Mip map max level
VolPro-1000
229
Range of mipmap levels to use when rendering. Valid values are 0 to 32.
Mip map min volume size
Shrink factor (in percent) to be used for automatic mipmap level generation. The valid range is 50
1.136 Voltex
Direct Volume Rendering is a very intuitive method for visualizing 3D scalar fields. Each point in
a data volume is assumed to emit and absorb light. The amount and color of emitted light and the
amount of absorption is determined from the scalar data by using a colormap which includes alpha
values. Default colormaps for volume rendering are provided with the distribution and can be edited
using the colormap editor. Then the resulting projection from the shining data volume is computed.
This module provides you with a hardware accelerated implementation, which uses 2D or 3D texture
hardware, to allow for real-time rendering. Note that this currently is not supported by all graphics
hardware.
Currently hardware acceleration for 2D and 3D textures is available on e.g., SGI Octane, SGI Reality
and InfiniteReality, SGI High/Max Impact, HP fx/4, fx/6, and fx/10. The SGI O2 supports 2D texturing. Most PC graphics cards support 2D texture mapping. Older SGI systems, like Indigo2 Extreme,
and many Linux drivers currently do not offer hardware texture acceleration. Using this module on the
latter platforms can be extremely slow.
Note that on some systems a significant slowdown can occur if the data set is larger than the available
texture memory (which typically is 4 - 16 MB).
Press the Apply button to start the computations necessary to display the volume. Most parameter
changes require pressing this button again.
Connections
Data [required]
The 3D scalarfield to visualized. Alternatively an RGBA data volume (Colorfield) can be connected.
In this case no colormap is used, but the color and opacity values are taken directly from the data.
As a third mode the module can operate on multi-channel fields. Here the transfer function for each
channel is computed automatically based on the channels native color, the channels data range, and
the value of the Gamma port (see below).
230
Chapter 1: Avizo
ROI [optional]
Connection to a module providing a region-of-interest, like SelectRoi. If such a module is connected, only the selected part of the volume will be displayed.
Colormap [optional]
Colormap used to visualize the data.
Ports
Options
mip stands for maximum intensity projection. When this option is selected, the brightest data value
along each ray of sight is displayed instead of the result of the emission absorption model described
above. This mode is especially useful for very sparse data sets, for example: angiographic data
or images of neurons.
color table enables a transfer function lookup for monochrome data when RGBA lookup mode is on.
When this option is activated only a quarter of the texture memory is needed for RGBA rendering
and the color table and its range can be modified in real-time (i.e. without pressing Apply). Note
that due to incomplete OpenGL implementations some graphics boards which claim to support color
tables, they do not. If you see artifacts or only plain white cubes, disable this option.
Range
This port is only available if the module operates on a 3D scalar field and no colormap is connected.
In this case data values are mapped according to this range. Values smaller than the minimum are
mapped to completely transparent (no absorption and no emission). Values larger than the maximum
appear completely opaque and emit the maximum amount of light. Values in between are mapped
proportionally.
Lookup
Only available if a colormap is connected. In Alpha mode, the colormaps alpha value is used for
both absorption and emission. In LumAlpha mode, the colormaps alpha value is used for absorption, while the luminance is taken for (uncolored) emission. In RGBA mode, colored images are
generated by using all four channels of the colormap.
Colormap
Voltex
231
Gamma
Controls the shape of the transfer function when multi-channel fields are visualized. The opacity
value is taken to be = x , x = 0 . . . 1 (proportional to data values). The smaller the gamma value
is, the more prominent regions with small data values will be.
Alpha scale
A global factor to change the overall transparency of the object independent of the data value.
Number of slices
Only available in 3D texture mode. The larger this number, the better the image quality and the less
the rendering performance.
Texture mode
2D texture mode requires some precomputation time but also works on machines which do not
support hardware accelerated 3D texturing, e.g., SGI O2. 3D mode needs less setup time and
sometimes provides superior quality on high-end machines.
Downsample
You can specify integer downsample factors to reduce the size of the data set on-the-fly. e.g.,
downsampling by 2 in each direction would decrease the size of the data set by a factor of 8. This
can dramatically improve rendering performance.
Commands
showSlices {0|1}
If set to 1, the slices used to display the volume are drawn outlined instead of full textured. This
mode is mainly useful for debugging.
setInterpol {0|1}
Enables or disables linear interpolation of texture values. If linear interpolation is disabled a nearest
neighbor lookup is performed. By default, linear interpolation is enabled.
getInterpol
Checks if linear texture interpolation is enabled or not.
232
Chapter 1: Avizo
setColorTableInterpol {0|1}
Enables or disables linear interpolation within the color table. The setting will be ignored if color
table mode is off or if color table rendering is done using paletted textures. The default value is on.
getColorTableInterpol
Checks if linear color table interpolation is enabled or not.
setColorTableMode {0|1|2|3|4}
Sets the type of OpenGL extension used for color table mode. The modes are encoded as follows:
0 = Dont use any extension, turning off color table mode.
1 = GL SGI texture color table.
2 = GL EXT paletted texture.
3 = GL NV fragment program.
4 = GL ARB fragment program.
getColortableMode
Returns the type of OpenGL extension used for color table mode.
doBricking {0|1}
Enables or disables bricking in 3D texture mode. If bricking is enabled the volume is rendered
in smaller blocks even if its size exceeds predefined size. The predefined size is by default 0.8
times the assumed texture memory size which depends on the hardware and operating system and is
obtained by Avizo on program startup. The texture memory size assumed by Avizo can be modified
by setting the environment variable AVIZO TEXMEM (in megabytes). To alter the predefined size
factor of 0.8, one may set a different value in the Tcl variable voltexTextureAmount.
verbose {0|1}
If value is 1 additional message for debugging are printed.
1.137
VolumeEdit
This module provides tools for the interactive modification of 3D image volumes. This is particularly
useful for removing noise or undesired objects in a 3D image before applying isosurfaces, volume
rendering or other image segmentation tools.
The module takes a scalar field as input and produces a new data set as output which can be modified
iteratively. The module does not display any geometry in the viewer. It is typically used in conjunction
with a Voltex or an Isosurface module.
Connections
Data [required]
The input data set to be edited (uniform scalar field).
VolumeEdit
233
Ports
Tool
The module provides two different types of tools: a lasso or draw tool and 3D dragger tools.
The lasso or draw tool lets you encircle a specific region in the 3D viewer which then can be cleared
in the output data set. Alternatively the part not encircled (exterior) can be cleared (cut away), or
the original data values can be restored in the encircled region. In order to use the draw tool, first
press one of the action buttons cut interior, cut exterior, or restore. Then draw a line around the
specific region in the 3D viewer.
The dragger tools let you specify a region to be modified by dragging, rotating and resizing a 3D
shape (box, ellipsoid, cone, or cylinder). A cut or restore operation can then be applied to the
interior or exterior part of that shape.
Specifying the axis is useful to orient the shape in its local coordinate system in the case of a cylinder
or a cone.
Padding value
This port specifies by which data value voxels in selected regions are replaced when either cut
interior or cut exterior is pressed.
Cut
If the button interior is pressed, voxels inside the region selected by a dragger shape are replaced by
the zero level port. If the button exterior is pressed, voxels outside this region are replaced. If the
draw tool is active, you have to encircle the region to be replaced after pressing one of the buttons.
Restore
If the button interior is pressed, voxels inside the region selected by a dragger shape are replaced
by the original data values. If the button exterior is pressed, voxels outside this region are replaced.
If the draw tool is active, you have to encircle the region to be replaced after pressing one of the
buttons.
If the button all is pressed, the entire volume is reset to its original state.
Edit
This port provides two buttons for undoing or redoing the last cut or restore operation. The create
mask button creates a binary label field in which all voxel with a modified data value are set.
234
Chapter 1: Avizo
1.138
VolumeEdit2D
This module extracts a field from a 2D shape and a uniform scalar field. The extracted field will be
contained in the bounding plane of the 2D shape. The 2D shape behaves as a selection in the original
field. All the voxels out of this selection will be replaced by the fillValue.
The input scalar field is resampled during data extraction. A size is then needed to compute the
extraction.
Connections
Data [required]
The input data set to be edited (uniform scalar field).
Shape [required]
The 2d shape needed for the extraction.
Ports
Size
The extraction size. If use input resolution is checked, the size for the extraction will be adjusted
automatically to the input field voxel size.
FillValue
The value used to fill the output field. This value will be set as undefined for the output field.
applyTransform
If checked, the output field will store a transformation corresponding to the 2D shape one related to
the original field.
1.139
VoxelView
This module can be attached to an OrthoSlice module. It allows you to visualize contiguous 3D regions
of a LabelField or of some other uniform scalar field with integer values. The regions are selected by
clicking onto the OrthoSlice with the middle mouse button. Starting from the selected pixel a 3D flood
fill process is performed. Multiple regions can be selected by shift-clicking multiple seeds.
VolumeEdit2D
235
By default the regions to be visualized are taken from the same input object the OrthoSlice module
is attached to. However, optionally an independent scalar field may be connected to the VoxelView
module. For example, an OrthoSlice module may be used to visualize a stack of CT images, while a
VoxelView attached to it is used to display segmented regions defined in a label field.
Press the Apply button to hide all selected 3D regions.
Connections
Slice [required]
The OrthoSlice module which provides the slice where seed points have to be selected using the
middle mouse button.
Data [optional]
Optional scalar field. If set contiguous regions of this field will be displayed instead of regions of
the field the OrthoSlice module is attached to.
Colormap [optional]
The colormap used to color the 3D regions.
Ports
Colormap
This port limits the region growing process. At most the given number of slices are considered in
upward or downward direction. May be useful on slow machines in order to limit the number of
triangles.
Draw Style
Three different draw styles are provided, filled, lines, and points. Due to the regular structure of the
voxel data only three different face orientations occur. Thus only three different colors will be used
to render the voxel regions.
Floodfill Type
Specifies the kind of flood fill algorithm to be applied (neighbors at faces, faces and edges, or faces,
236
Chapter 1: Avizo
edges, and corners). If take all is selected all voxel with the same value as the seed voxel will be
selected and displayed.
VoxelView
237
238
Chapter 1: Avizo
Chapter 2
2DLine
This module is used to display 2D survey. Datum are taken from Seismic2DLineData.
Connections
Data [required]
The 2D survey to be visualized. See Seismic2DLineData.
Colormap [optional]
Colormap used to visualize the data.
(Amplitude BlueBrownRed.am)
By default,
Ports
Options
This option menu lets you select between the three different mapping methods, namely a linear gray
ramp, histogram equalization, and colormap mode.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
mapped to white.
Contrast Limit
This port is displayed if histogram equalization is selected. The number determines the contrast of
the resulting image. The higher the value, the more contrast is contained in the resulting image. A
value of zero means that contrast will not be limited at all.
2.2
BoundingBox (seismic)
The seismic BoundingBox module is a specialized BoundingBox module provided for convenience
in seismic visualization. It can be connected to any seismic volume data object in order to visualize
its bounding box. UTM or Crossline/Inline/Time coordinates are displayed according to the current
coordinate system selected via the Coordinate system port of the SeismicSettings module.
Connections
Data [required]
Any seismic volume data object.
Ports
Text
Shows or hides the coordinates of the lower left front and upper right back corner of the box.
2.3
CroppedVolume
The seismic CroppedVolume module is a specialized VoltexHighQuality module provided for convenience in seismic visualization. This module can be attached to a seismic volume data object in order
to do texture-based direct volume rendering. The render style is set by default to volume skin and a
seismic colormap is used (Amplitude BlueBrownRed.am by default).
240
Connections
Data [required]
The seismic volume data object to be visualized. See SeismicVolumeDataObject.
ROI [optional]
Connection to a module providing a region-of-interest, like SeismicSelectRoi. If such a module is
connected, only the selected part of the volume will be displayed.
Colormap [optional]
Colormap used to visualize the data.
(Amplitude BlueBrownRed.am)
By default,
Ports
Render style
Volume rendering consists of drawing slices from back to front and compositing them according to
the Composition port. Volume skin (the default value) is a cubic shape made of textured polygons
whose textures are computed using the data. Both use a colormap for rendering.
Options
Lighting indicates if lighting is required. The default is false. Note that activating or deactivating
lighting when using 2D/3D texture rendering will usually force the textures to be recreated, which
may be slow.
Aligned slices indicates if slices must be drawn in a view-aligned manner. This value is used for 3D
texturing only. Default is true.
Color table enables a transfer function lookup for monochrome data when RGBA lookup mode
is on. When this option is activated, only a quarter of the texture memory is needed for RGBA
rendering and the color table and its range can be modified in real-time (i.e., without pressing the
Apply button). Note that due to incomplete OpenGL implementations, some graphics boards which
claim to support color tables do not. If you see artifacts or only plain white cubes, disable this
option. Default is false.
Options2
Move low resolution: if checked, a lower texturing resolution will be set in order to increase rendering performance when the user is interacting with the scene.
CroppedVolume
241
Composition
Specifies the color composition type. Alpha composes the slices by blending the R, G, B components for each pixel based on their alpha values. Sum adds slice colors along the viewing axis. (Not
available on VolumePro hardware.) Max draws the maximum intensity for each pixel drawn along
the viewing axis. Min draws the minimum intensity for each pixel drawn along the viewing axis.
Interpolation
This port is only available if the module operates on a 3D scalar field and no colormap is connected.
In this case data values are mapped according to this range. Values smaller than the minimum
are mapped to fully transparent (no absorption and no emission). Values larger than the maximum
appear completely opaque and emit the maximum amount of light. Values in between are mapped
proportionally.
Lookup
Only available if a colormap is connected. In Alpha mode, the colormaps alpha value is used for
both absorption and emission. In LumAlpha mode, the colormaps alpha value is used for absorption, while the luminance is taken for (uncolored) emission. In RGBA mode, colored images are
generated by using all four channels of the colormap.
Colormap
By
default,
seismic
colormap
is
used
Gamma
Controls the shape of the transfer function when multi-channel fields are visualized. The opacity
value is taken to be = x , x = 0 . . . 1 (proportional to data values). The smaller the gamma value
is, the more prominent regions with small data values will be.
Alpha scale
A global factor to change the overall transparency of the object independent of the data value.
242
Texture mode
2D texture mode requires some precomputation time but also works on machines which do not
support hardware-accelerated 3D texturing, e.g., SGI O2. 3D mode requires less setup time and
sometimes provides superior quality on high-end machines.
Number of slices
Only available in 3D texture mode. The larger this number, the better the image quality and the less
the rendering performance.
2.4
CroppedVolumeAttributes
Connections
Data [required]
Data set on which the attribute is to be computed.
Ports
Attribute
Hilbert
Amplitude
Argument
Frequency
Cosine Phase
Amplitude 1st Derivative
Amplitude 2nd Derivative
Envelope Weighted Phase
Envelope Weighted Frequency
Phase Acceleration
CroppedVolumeAttributes
243
2.5
Crossline
The Crossline module allows for the visualization of crossline slices in a seismic volume. This is a
specialized OrthoSlice module provided for convenience in seismic visualizations (see also Inline and
TimeSlice). The mapping type is set by default to colormap (an external seismic colormap is used) and
the orientation is fixed. The Slice number port allows you to select a slice of interest and to animate
slices.
Connections
Data [required]
The seismic volume to be visualized. See SeismicVolumeDataObject.
Colormap [optional]
The colormap used for mapping (Amplitude BlueBrownRed.am by default). See also Colormap.
Ports
Options
If the adjust view toggle is set (unset by default), the camera of the main viewer is reset each time
a new slice orientation is selected. Equal resolution is false by default. When it is set, all slices are
drawn using the same resolution. When lighting is set (set by default), the display appears lit. When
color table is set (set by default), when editing the colormap, the rendering speed is faster and the
color interpolation is better. This option uses shaders so it may be very slow on old graphic boards.
Interpolation
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode. The mapping type is set by default to colormap.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
244
mapped to white. In order to quickly change the data window a ContrastControl module can be
attached to the OrthoSlice (LDA).
Colormap
Choose
colormap
if
mapping
type
is
Amplitude BlueBrownRed.am by default).
set
to
colormap
(connected
to
Slice number
This slider allows you to select and animate different slices. The slices may also be picked with the
mouse and dragged directly in the 3D viewer. The two outer buttons allow you to automatically animate the slice number forwards or backwards. The port provides a popup menu (right mouse button
click) that can be used to configure settings like animation mode or sub-range interval. Animation
speed can be controlled via the increment value in the configure dialog.
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization, opacity
values are taken from there.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled and specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
2.6
Crossline
The Crossline module allows for the visualization of crossline slices in a seismic volume. This is a
specialized OrthoSlice module provided for convenience in seismic visualizations (see also Inline and
Crossline
245
TimeSlice). The mapping type is set by default to colormap (an external seismic colormap is used) and
the orientation is fixed. The Slice number port allows you to select a slice of interest and to animate
slices.
Connections
Data [required]
The seismic volume to be visualized. See SeismicVolumeDataObject.
Colormap [optional]
The colormap used for mapping (Amplitude BlueBrownRed.am by default). See also Colormap.
Attributes [optional]
The attribute used for computation. See HxSeismicAttributesModule.
Ports
Options
If the adjust view toggle is set (unset by default), the camera of the main viewer is reset each time
a new slice orientation is selected. Equal resolution is false by default. When it is set, all slices are
drawn using the same resolution. When lighting is set (set by default), the display appears lit. When
color table is set (set by default), when editing the colormap, the rendering speed is faster and the
color interpolation is better. This option uses shaders so it may be very slow on old graphic boards.
Interpolation
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode. The mapping type is set by default to colormap.
Data Window
This port is displayed if linear mapping or an attribute is selected. It allows you to restrict the range
of visible data values. Values below the lower bound are mapped to black, values above the upper
246
bound are mapped to white. In order to quickly change the data window a ContrastControl module
can be attached to the OrthoSlice (LDA).
Colormap
Choose
colormap
if
mapping
type
is
Amplitude BlueBrownRed.am by default).
set
to
colormap
(connected
to
Slice number
This slider allows you to select and animate different slices. The slices may also be picked with the
mouse and dragged directly in the 3D viewer. The two outer buttons allow you to automatically animate the slice number forwards or backwards. The port provides a popup menu (right mouse button
click) that can be used to configure settings like animation mode or sub-range interval. Animation
speed can be controlled via the increment value in the configure dialog.
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization, opacity
values are taken from there.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled and specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
2.7
FaultSticksView
Draws the specified fault sticks as a lineset. Its color is randomly initialized on creation of the module
FaultSticksView
247
Connections
Data [required]
Fault stick data set.
Ports
Scale Factor
Displayed line color. To change the color, click on the Color button. A color editor will appear
which you can use to choose the desired color.
2.8
FenceSlice
The FenceSlice module lets you display 3D scalar field along a fence slice. The fence geometry is the
result of the extrusion of the fence control points along a given axis. You can adjust either the extrusion
axis, or the fence control points in order to change the fence geometry.
Connections
Data [required]
The 3D field to be visualized. 3D scalar fields are supported.
Colormap [optional]
The colormap used to map data values to colors. This port is ignored when linear mapping is
selected.
Ports
Axis
This port provides three radio buttons for resetting the slice extrusion axis.
248
Control points
This port lists the control points of the fence slice. In the options menu, you can show/hide the
dragger, add or remove points.
Options
If the immediate toggle is set, the slice is updated every time you drag a control point with the
mouse in the 3D viewer. Otherwise only the dragger of the control point is moved and the update
takes place when the mouse button is released.
If the lighting toggle is set, the slice is lit.
Interpolation
This option menu controls how scalar values are mapped to screen colors. In the case of a linear
mapping a user-defined data window is mapped linearly to black and white. A colormap can be
used to activate pseudo-coloring.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible data
values. Values below the lower bound are mapped to black, while values above the upper bound are
mapped to white.
Colormap
This port is displayed if colormap is selected. Choose a colormap to map the data to colors.
2.9
FreeSlice
The FreeSlice module enables display of arbitrarily oriented slices in a seismic volume. This is a
specialized ObliqueSlice module provided for convenience in seismic visualizations (see also Inline,
Crossline, and TimeSlice). The mapping type is set by default to colormap (an external seismic colormap is used).
FreeSlice
249
Connections
Data [required]
The seismic volume data object to be visualized. See SeismicVolumeDataObject.
Colormap [optional]
The colormap used for mapping (Amplitude BlueBrownRed.am by default). See also Colormap.
Ports
Orientation
This port provides three buttons for resetting the slice orientation.
Options
If the adjust view toggle is set (set by default), the camera of the main viewer is reset each time a
new slice orientation is selected.
With the rotate toggle you can switch the rotate handle for the free slice on and off.
If the immediate toggle is set, the slice is updated every time you drag it with the mouse in the 3D
viewer. Otherwise only the bounding box of the free slice is moved and the update takes place when
the mouse button is released.
The fit to points toggle lets you reset the free slice plane by clicking on at least 3 different points in
the scene. After enabling this toggle, you should switch to interaction mode by pressing the ESCkey inside the viewer. Then click 3 times at different points on any geometry in the scene. The free
slice will then be automatically adjusted to match these points. The virtual trackball - visible when
the rotate toggle is active - will be moved to the center of the picked points. After 3 points have
been picked, this toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking
allows you to select more than 3 points. In this case the plane that best fits the selected points will
be computed.
If the lighting toggle is set, the slice is lit.
Slice Options
If equal resolution is set (unset by default), all slices are drawn using the same resolution. You can
toggle lighting on or off.
Interpolation
250
Mapping Type
This option menu controls how scalar values are mapped to screen colors. In the case of a linear
mapping a user-defined data window is mapped linearly to black and white. A colormap can be
used to activate pseudo-coloring. The mapping type is set by default to colormap.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible data
values. Values below the lower bound are mapped to black, while values above the upper bound are
mapped to white.
Colormap
This port is displayed if colormap is selected. Choose a colormap to map data to colors (connected
to Amplitude BlueBrownRed.am by default).
Translate
This slider allows you to select different slices. The slices may also be picked with the mouse and
dragged directly in the 3D viewer.
Transparency
This radio box port determines the transparency of the slice. None means that the slice is fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is taken as is.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled and specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
FreeSlice
251
2.10
GlobalLogsSetting
This module allows you to set global WellLogDisplay attributes, such as Line Width.
Connections
None.
Ports
Line Width
Used to adjust the diameter of the three-dimensional tubes drawn by the WellLogDisplay module.
2.11
Inline
The Inline module enables visualization of inline slices in a seismic volume. This is a specialized
OrthoSlice module provided for convenience in seismic visualizations (see also Crossline and TimeSlice). The mapping type is set by default to colormap (an external seismic colormap is used) and the
orientation is fixed. The Slice number port allows you to select a slice of interest and to animate slices.
Connections
Data [required]
The seismic volume to be visualized. See SeismicVolumeDataObject.
Colormap [optional]
The colormap used for mapping (Amplitude BlueBrownRed.am by default). See also Colormap.
Ports
Options
If the adjust view toggle is set (unset by default), the camera of the main viewer is reset each time
a new slice orientation is selected. Equal resolution is false by default. When it is set, all slices are
drawn using the same resolution.
Interpolation
252
Mapping Type
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode. The mapping type is set by default to colormap.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
mapped to white. In order to quickly change the data window a ContrastControl module can be
attached to the OrthoSlice (LDA).
Colormap
Choose
colormap
if
mapping
type
is
Amplitude BlueBrownRed.am by default).
set
to
colormap
(connected
to
Slice number
This slider allows you to select and animate different slices. The slices may also be picked with the
mouse and dragged directly in the 3D viewer. The two outer buttons allow you to automatically animate the slice number forwards or backwards. The port provides a popup menu (right mouse button
click) that can be used to configure settings like animation mode or sub-range interval. Animation
speed can be controlled via the increment value in the configure dialog.
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization, opacity
values are taken from there.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
Inline
253
This port is displayed if embossing is enabled and specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
2.12
Inline
The Inline module enables visualization of inline slices in a seismic volume. This is a specialized
OrthoSlice module provided for convenience in seismic visualizations (see also Crossline and TimeSlice). The mapping type is set by default to colormap (an external seismic colormap is used) and the
orientation is fixed. The Slice number port allows you to select a slice of interest and to animate slices.
Connections
Data [required]
The seismic volume to be visualized. See SeismicVolumeDataObject.
Colormap [optional]
The colormap used for mapping (Amplitude BlueBrownRed.am by default). See also Colormap.
Attributes [optional]
The attribute used for computation. See HxSeismicAttributesModule.
Ports
Options
If the adjust view toggle is set (unset by default), the camera of the main viewer is reset each time
a new slice orientation is selected. Equal resolution is false by default. When it is set, all slices are
drawn using the same resolution.
Interpolation
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode. The mapping type is set by default to colormap.
254
Data Window
This port is displayed if linear mapping or an attribute is selected. It allows you to restrict the range
of visible data values. Values below the lower bound are mapped to black, values above the upper
bound are mapped to white. In order to quickly change the data window a ContrastControl module
can be attached to the OrthoSlice (LDA).
Colormap
Choose
colormap
if
mapping
type
is
Amplitude BlueBrownRed.am by default).
set
to
colormap
(connected
to
Slice number
This slider allows you to select and animate different slices. The slices may also be picked with the
mouse and dragged directly in the 3D viewer. The two outer buttons allow you to automatically animate the slice number forwards or backwards. The port provides a popup menu (right mouse button
click) that can be used to configure settings like animation mode or sub-range interval. Animation
speed can be controlled via the increment value in the configure dialog.
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization, opacity
values are taken from there.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled and specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
Inline
255
2.13
Isosurface (seismic)
The seismic Isosurface module is a specialized Isosurface module provided for convenience in seismic
visualizations. This module can be attached to a seismic volume data object in order to generate
isosurfaces that are computed and rendered on the graphics hardware.
This module does not compute geometry on the CPU. Thus, unlike for the standard Isosurface module,
it is not possible to store the results as a surface object or as an Open Inventor format file.
This rendering technique needs more slices than typically used for volume rendering. A low number
of slices will create holes in the surface.
This module provides a hardware-accelerated implementation, which uses programmable shader hardware to allow real-time rendering. On platforms that do not have programmable shader support, no
isosurface will be drawn.
Connections
Data [required]
The seismic volume data object from which the isosurface is generated.
ROI [optional]
Connection to a module providing a region-of-interest, like SelectROI. If such a module is connected, only the selected part of the volume will be displayed.
Colormap [optional]
Colormap used to visualize the data.
Ports
Colormap
The larger this number, the better the image quality and the less the rendering performance. A low
number of slices will create holes in the surface.
Threshold
Isovalue to be rendered.
256
2.14
LogMeasurmentSetting
This module allows you to set global WellLogDisplay attributes, such as the colormap for the particular
measurement represented by this module. This module is always present in the Pool if a Avizo SEG-Y
file reader license is found.
Connections
Colormap [optional]
Optional colormap
Ports
Colormap
Optional colormap.
2.15
SeismicAttributes
Ports
Attribute
Hilbert
Amplitude
Argument
Frequency
Cosine Phase
Amplitude 1st Derivative
Amplitude 2nd Derivative
Envelope Weighted Phase
Envelope Weighted Frequency
Phase Acceleration
LogMeasurmentSetting
257
2.16
SeismicAxis
The SeismicAxis module is a specialized Axis module provided for convenience in seismic visualizations. This module can be attached to a seismic volume data object in order to display a coordinate
frame. In this case, the coordinate frame is adapted to the bounding box of the seismic volume and
displays Crossline/Inline/Time coordinates. Otherwise, global axes centered at the origin of the world
coordinate system are displayed.
Connections
Data [required]
Seismic volume data object the axes should be adapted to.
Ports
Axis
This port lets you select for which direction axes should be drawn.
Options
This port provides three toggles: If arrows is set arrows are drawn at the top of each axis. If text
is set labelled ticks are drawn indicating the coordinate values. If grid is set a coordinate raster is
drawn between every pair of visible axes. By default, the text option is set.
Thickness
Provides buttons for changing the colors of different parts of the geometry.
Font
This port enables to select and tune the font used when displaying text.
258
2.17
SeismicSettings
This module allows you to set global seismic attributes, including the coordinate system type (UTM or
crossline/inline/time), a time (Z) scale factor, a default seismic colormap, and a default surface color
map. This module is always present in the Pool if an Avizo SEG-Y file reader license is found.
Connections
None.
Ports
Coordinate system
The coordinate system type you select here will apply to all values used by modules that work with
3D coordinates. For example, line probes and point probes.
Time scale factor
The Time scale factor specifies a global scaling factor applied to the time axis (Z axis). Default is
5. Setting this value to a different number may make it easier to see seismic features in some data
sets.
Note: This global scale factor applies to all visualizations in the viewer, not just seismic visualizations. Normally seismic and non-seismic data sets are not visualized together so normally this
should not cause a problem.
Default seismic colormap
The colormap specified here will be used as the default shared colormap of subsequently loaded
LDA seismic data sets.
Default surfaces colormap
The colormap specified here will be used as the default colormap used for SeismicSurfaceView
modules.
2.18
SeismicSurfaceView
The seismic SurfaceView module is a specialized SurfaceView module provided for convenience in
seismic visualizations. This module can be attached to a seismic horizon or seismic fault surface on
which a height colormap is mapped.
SeismicSettings
259
Connections
Data [required]
Seismic surface data file.
Colormap [optional]
Choose a colormap to map heights to colors.
Ports
Draw Style
This port is inherited from the ViewBase class and therefore the description will be found there.
Colormap
2.19
SelectRoi (seismic)
The seismic SelectROI module is a specialized SelectROI module provided for convenience in seismic
visualizations. This module can be attached to a seismic volume data object in order to define a regionof-interest with the shape of an axis-aligned 3D box. This box can be used to restrict the output of many
visualization modules e.g. CroppedVolume, Inline, Crossline, TimeSlice... A special port (Coordinate
system) allows the display of UTM or Crossline/Inline/Time box coordinates values.
Connections
Data [required]
Connection to a seismic volume data object which defines the maximum size of the region-ofinterest. Only the bounding box of the data object but not the data itself is interpreted by this
module.
Ports
Controlling
Voxels within the ROI are rendered; voxels outside the ROI are not rendered. The ROI box and the
subvolume box are specified in slice coordinates. The limits are included in the ROI. The region
260
defined by the ROI box always acts upon the region defined by the subvolume, not the entire volume.
For example, in exclusion mode (see the Cropping port), the visible portion of the volume is the
subvolume region minus the ROI box region. You are allowed to set the ROI box region larger
than (or completely outside) the subvolume region, but only the intersection of the two regions is
significant.
Minimum
Minimum x-, y-, and z-coordinates of the region-of-interest. These coordinates can be displayed in
UTM or Crossline/Inline/Time values.
Maximum
Maximum x-, y-, and z-coordinates of the region-of-interest. These coordinates can be displayed in
UTM or Crossline/Inline/Time values.
Options
If the option show dragger is enabled, a tab-box dragger is shown which allows you to interactively
adjust the region-of-interest in the 3D viewer.
Cropping
The crop box is defined by three sets of parallel planes that define three slabs:
Four cropping options are available: Subvolume, Exclusion, Cross, and Fence.
Subvolume Displays voxels inside the ROI.
SelectRoi (seismic)
261
262
Size
2.20
TimeSlice
The TimeSlice module enables visualization of time (sample) slices in a seismic volume. This is a
specialized OrthoSlice module provided for convenience in seismic visualizations (see also Inline and
Crossline). The mapping type is set by default to colormap (an external seismic colormap is used) and
the orientation is fixed. The Slice number port allows you to select a slice and to animate slices.
Connections
Data [required]
The seismic volume to be visualized. See SeismicVolumeDataObject.
TimeSlice
263
Colormap [optional]
The colormap used for mapping (Amplitude BlueBrownRed.am by default). See also Colormap.
Ports
Options
If the adjust view toggle is set (unset by default), the camera of the main viewer is reset each time
a new slice orientation is selected. Equal resolution is false by default. When it is set, all slices are
drawn using the same resolution.
Interpolation
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode. The mapping type is set by default to colormap.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
mapped to white. In order to quickly change the data window a ContrastControl module can be
attached to the OrthoSlice (LDA).
Colormap
Choose
colormap
if
mapping
type
is
Amplitude BlueBrownRed.am by default).
set
to
colormap
(connected
to
Slice number
This slider allows you to select and animate different slices. The slices may also be picked with the
mouse and dragged directly in the 3D viewer. The two outer buttons allow you to automatically animate the slice number forwards or backwards. The port provides a popup menu (right mouse button
click) that can be used to configure settings like animation mode or subrange interval. Animation
speed can be controlled via the increment value in the configure dialog.
264
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization, opacity
values are taken from there.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled and specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
2.21
TimeSlice
The TimeSlice module enables visualization of time (sample) slices in a seismic volume. This is a
specialized OrthoSlice module provided for convenience in seismic visualizations (see also Inline and
Crossline). The mapping type is set by default to colormap (an external seismic colormap is used) and
the orientation is fixed. The Slice number port allows you to select a slice and to animate slices.
Connections
Data [required]
The seismic volume to be visualized. See SeismicVolumeDataObject.
Colormap [optional]
The colormap used for mapping (Amplitude BlueBrownRed.am by default). See also Colormap.
Attributes [optional]
The attribute used for computation. See HxSeismicAttributesModule.
TimeSlice
265
Ports
Options
If the adjust view toggle is set (unset by default), the camera of the main viewer is reset each time
a new slice orientation is selected. Equal resolution is false by default. When it is set, all slices are
drawn using the same resolution.
Interpolation
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode. The mapping type is set by default to colormap.
Data Window
This port is displayed if linear mapping or an attribute is selected. It allows you to restrict the range
of visible data values. Values below the lower bound are mapped to black, values above the upper
bound are mapped to white. In order to quickly change the data window a ContrastControl module
can be attached to the OrthoSlice (LDA).
Colormap
Choose
colormap
if
mapping
type
is
Amplitude BlueBrownRed.am by default).
set
to
colormap
(connected
to
Slice number
This slider allows you to select and animate different slices. The slices may also be picked with the
mouse and dragged directly in the 3D viewer. The two outer buttons allow you to automatically animate the slice number forwards or backwards. The port provides a popup menu (right mouse button
click) that can be used to configure settings like animation mode or subrange interval. Animation
speed can be controlled via the increment value in the configure dialog.
266
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque. Alpha
means that opacity is proportional to luminance. If a colormap is used for visualization, opacity
values are taken from there.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled and specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
2.22
WellData
A data object of type HxWellData stores information about an oil or gas well. The following information is stored for each well
In order to visualize the line segments of a WellData object the module WellDisplay can be used.
A list of X, Y values for the given MD and TVD defines the well path. The well path values are defined
in the path file. The path file can be imported into the well data by right clicking on the mouse button
and choosing Import Well Path.
Without the path, the well is visualized as a straight line since Well Head position values (X and Y)
are used for all values of MD and KB.
When the path is loaded then the true path of the well is displayed.
In addition to well path a WellLog can be added to the well data. This is done by right clicking on the
instance of well data and choosing Import Well Log.
Connections
None.
WellData
267
Ports
None.
2.23
WellDisplay
This module visualizes data objects of type WellData. Individual lines may be displayed in wireframe
mode. Alternatively, simple shapes like triangles or squares may be extruded along the lines. In
this way true three-dimensional tubes are obtained. An additional feature of WellDisplay is pseudocoloring
Connections
Data [required]
The well data to be displayed.
Ports
Data
Determines how the lines will be displayed. If Pipe, Stippled or Dotted is selected, a simple wireframe model will be created. The other menu entries denote 2D objects which will be extruded
along the lines in order to obtain three-dimensional tubes.
Circle complexity
Defines the number of edges of the base of the Tube, when Tube is set as the Line Type.
Line Width
Additional factor used to adjust the diameter of the lines or the three-dimensional tubes.
Color
Optional color.
268
Well type
2.24
WellLog
A data object of type HxWellLogData stores attribute information about oil or gas well. Following
information is defined for each well
A WellLogDisplay module is created automatically for each measurement defined in the HxWellLogData object.
Connections
None.
Ports
None.
2.25
WellLogDisplay
This module visualizes well measurements stored in a WellLog. A circle is extruded along the lines.
In this way true three-dimensional tubes are obtained. The diameter of the tube represents the data
value of the measurement at that depth.
Connections
ROI [optional]
Optional connection to an object providing a region-of-interest. Only line segments inside this
region will be visualized.
ScalarField1 [optional]
Optional connection to a scalar field which can be used to influence coloring, scaling, twisting, etc.
ScalarField2 [optional]
Optional connection to a scalar field which can be used to influence coloring, scaling, twisting, etc.
ScalarField3 [optional]
Optional connection to a scalar field which can be used to influence coloring, scaling, twisting, etc.
WellLog
269
Colormap [optional]
Colormap used for pseudo-coloring.
Alphamap [optional]
Alphamap used for assigning transparency values.
Ports
Circle Complexity
Optional color.
Scale
Additional factor used to adjust the diameter of the lines or the three-dimensional tubes.
2.26
WellTopDisplay
This module visualizes data objects of type WellTops as either a sphere or a cube. Additional information about the well top is displayed as 2D text.
Connections
Data [required]
The well top data to be displayed.
Ports
Data
Determines how the well top will be displayed, either as Sphere or Cube.
270
Symbol Size
Optional color.
Annotations
Optional annotations.
Annotation Options
Annotation options
Text Size
2.27
WellTops
A data object of type HxWellTopsData stores information about oil or gas well tops. An HxWellTopsData data object can store information about one or more well tops. For each well top the following
information is stored:
Note that TWT, MD, Well Name and Horizon Name are optional parameters for a well top.
The X and Y values for given MD and TVD define the well top location.
A WellTopDisplay is created automatically for each well top defined in the HxWellTopsData object.
Connections
None.
Ports
None.
WellTops
271
2.28
WellTopsSettings
This module allows you to set global WellTopDisplay attributes. This module is always present in the
Pool if a Avizo SEG-Y file reader license is found.
Connections
None.
Ports
Symbol Type
Determines how the well top will be displayed, either as Sphere or Cube.
Symbol Size
Optional color.
Annotations
Optional annotations.
Annotation Options
Annotation options
Text Size
2.29
WellsSettings
This module allows you to set global WellDisplay attributes, such as Line Type and Line Width. This
module is always present in the Pool if a Avizo SEG-Y file reader license is found.
272
Connections
None.
Ports
Line Type
Determines how the lines will be displayed. If Pipe, Stippled or Dotted is selected, a simple wireframe model will be created. The other menu entries denote 2D objects which will be extruded
along the lines in order to obtain three-dimensional tubes.
Line Width
Additional factor used to adjust the diameter of the lines or the three-dimensional tubes.
WellsSettings
273
274
Chapter 3
AnimatedParticles
This modules animates particles along the stream lines of a vector field. The particle trajectories are
obtained by integrating the vector field starting from random seed points or from positions given by a
vertex set.
The velocity magnitude or the age of the particles can be used as a colorfield for the particles.
Connections
Data [required]
A 3D vector field.
Particles source [optional]
An explicit VertexSet specifying the 3D positions that will generate particles. In this case the
Frequency port controls how often new particles are generated, but the number of particles generated
is determined by the number of vertices in the VertexSet. Caution: This can produce a very large
number of particles, which may reduce rendering performance.
Seed ROI [optional]
A region of interest specifying where particles will be generated. In this case the Frequency port
controls how often new particles are generated and how many particles are generated at random
positions inside the region.
Ports
Particles
The Clear button removes all particles at the precise moment where the button is pressed (note that
in animation mode, new particles will continue to appear). The Create button adds as many new
particles as specified in the particles text field, in a one-shot emission. In order to seed a specific
number of particles at a specific frequency, use the Frequency and Animate ports.
Shape
Specifies whether the particles should be displayed as points or spheres. If points is selected, the
size field specifies the point size in pixels. If spheres is selected, the size is a ratio applied to control
the size of the spheres which is computed from the bounding box of the data set.
Color
Scalar quantity used to color the particles according to the colormap specified in the Colormap port.
The velocity magnitude option sets the color to the computed velocity magnitude of each particle.
The age of each particle can also be used.
Frequency
The timestep field specifies the frequency at which new particles are added. If the particles are
seeded from an ROI (see port Seed ROI), the particles field specifies the number of particles that
will be added at random positions inside the region. If particles are seeded from a VertexSet (see port
Particles source), the number of particles is determined by the number of vertices in the VertexSet
and the particles field displays this value.
Animate
The animate checkbox can be used to start or stop the animation. For integration, a Runge-Kutta
solver for ordinary differential equations with equi-distant step size is used. The initial step size is
set automatically based on the size of the vector fields bounding box. The value can be adjusted to
get a smoother sampling (by decreasing the step) or a faster animation (by increasing the step).
Set animation
276
Colormap
Colormap used to color the particles according to the scalar quantity chosen in the Color port.
3.2
Arithmetic
The Arithmetic module performs calculations on up to three input data objects according to a userdefined arithmetic expression. The result is stored in a new data object called Result. The calculations
are triggered by the Apply button. The arithmetic expression is evaluated either on the grid of the first
data object (in case of regular, tetrahedral, or hexahedral grids or surfaces) or on a regular 3D uniform
grid for which the number of points can be set by the Resolution port.
The module is able to process input fields with up to 6 different channels. Scalar input fields are
referenced by the variables A, B, and C. The values of multi-component input fields are referenced for
example by Ax, Ay, Az (if input A is a vector field) or Br, Bg, Bb, Ba (if input B is an RGBA color
field).
In any case the expressions are evaluated per point, i.e., the result for a point (X,Y,Z) depends on input
values at the same point only. If the resulting object is based on a regular grid, grid indices I, J, or
K may also appear in the arithmetic expression. This means that for each grid point its associated
I, J, or K index value will be substituted in the arithmetic expression on evaluation. This is useful in
connection with comparison operators which produce a result of either zero or one. Computations may
be confined to a specific sub-grid this way.
An expression consists of variables and mathematical and logical operators. The syntax is basically
the same as for C expressions. The following variables are defined:
A: The values of a scalar field at input A.
B: The values of a scalar field at input B.
C: The values of a scalar field at input C.
Arithmetic
277
Aix:
Ary:
Aiy:
Arz:
Aiz:
Aii:
Aij:
Aik:
Ajj:
Ajk:
Akk:
The same variables as above for fields at input B or C, but with A replaced by B or C.
I: First index of a point (i,j,k) in a regular grid, or index of a point in an unstructured grid.
J: Second index of a point (i,j,k) in a regular grid, undefined for unstructured grids.
K: Third index of a point (i,j,k) in a regular grid, undefined for unstructured grids.
R: The radius r = X 2 + Y 2 + Z 2 .
+ - / *
The basic mathematical operators.
!
Unary negation.
Unary minus.
%
The modulo operator.
> < <= >= != ==
The comparison operators greater, less, less or equal, greater or
equal, not equal, and equal. If the comparison is true the result is 1, otherwise it is 0.
&& || The logical operators and, or, and xor. A non-zero operand is interpreted as true,
while a zero operand is false. The result is either 1 (true) or 0 (false).
& |
The bitwise operations and and or. For bitwise and, the bits in the result are set to 1 if
the corresponding bits in the two operands are both 1. For bitwise or, the bits in the result are
set to 1 if at least one of the corresponding bits in the two operands is 1.
There are also some built-in functions:
pow(x,a)
278
Power function. Note that there is no power operator (the o perator exists but
For better understanding some examples of how to use the Arithmetic module follow:
Expression: A
The result is a copy of input object A. If A is defined on a tetrahedral or hexahedral grid and the result
type is set to regular together with an appropriate resolution, the expression leads to a conversion from
an unstructured grid to a structured regular grid. The same trick can also be used to resample a regular
field with stacked coordinates onto a uniform grid.
Expression: A-B
The result is the difference between input objects A and B. This expression is sometimes useful in
order to compare to different data sets.
Expression: 255*(A>127)
Simple thresholding: For every value of A the result is set to 255 if the value is greater than 127.
Otherwise the result is 0.
Expression: A*(B>0)
Simple masking operation: If B is zero, the result is also set to zero. Otherwise, the result is set to A.
For example, if A is a 3D image and B is a corresponding label field, the exterior parts of the object
(where B is zero) are masked out by this expression.
Connections
Input a [required]
The input is an UnstructuredModelDataSet containing an arbitrary dataset.
Input b [optional]
Second input, can be any 3D data field.
Arithmetic
279
Input c [optional]
Thrid input, can be any 3D data field.
Ports
Output data type
This port determines the number of channels of the result. By default, the result has the same
number of channels as input A. Alternatively, you can specify that the result should have 2 channels
(complex scalar field), 3 channels (vector field), 4 channels (RGBA color field), 6 channels (either
a complex vector or a symmetric tensor field of second order) or 9 channels (a generic tensor field).
Output grid type
With this radio box the grid type of the result can be set either to either the same as input A or
to a regular grid with uniform coordinates. Resampling onto a regular grid is useful in order to
use display modules that take only regular inputs, such as the VoltexHighQuality volume rendering
module.
Expr
This port specifies the mathematical expression used to compute the result. If the result has more
than one channel, more expression ports will be shown.
Resolution
If port Result Type is set to regular, the resolution of the regular field to be generated is set to the
values given here.
Min box
Port to set the minimum x-, y-, z-coordinates of a bounding box around the output data object. If
one or more input data objects are connected, the bounding box of the first input data object is also
taken as the output bounding box.
Max box
Port to set maximum x-, y-, z-coordinates of the bounding box around the output data object.
280
3.3
BoundaryFlux
The aim of this modules is to compute three different types of flux through a boundary:
the mass flow rate is the total mass flux on the boundary,
the total heat transfer is the total heat flux on the boundary,
the radiation heat transfer is the total heat flux radiation on the boundary.
Depending on the format of your solvers result, two different computations are done:
if the input is a scalar field, it is assumed to contain the flux on each face of the boundary. Then
a simple sum is computed. Example for the mass flow rate: the scalar field S contains the mass
~ f , where f and ~vf are the density and the velocity at the
flux across each face Sf = f ~vf .A
~
center of face f and Af is the normal area vector of face f. Then the mass flow rate is computed
P
P
~f .
as f Sf = f f ~vf .A
if the input is a vector field, it is assumed that the product with the normal area vector of each
face of the boundary should be computed before computing the sum. Example for the mass flow
~ contains the product of the density and velocity on each face V
~f = f ~vf .
rate: the vector field V
P ~ ~
P
~
Then the mass flow rate is computed as f Vf .Af = f f ~vf .Af .
Connections
Data [required]
A 3D unstructured model.
Boundary flux [required]
A 3d unstructured scalar or vector field corresponding to the mass flux, heat flux or heat flux radiation, depending on the flux computed.
Ports
Spreadsheet
The computation results are written in a spreadsheet. Choose append to append the existing spreadsheet, or new to open a new one.
Compute
Choose globally to get one result corresponding to the surface composed of all the selected boundaries. Choose per boundary to compute the result on each selected boundary.
BoundaryFlux
281
Boundaries filter
3.4
BoundaryView
This module displays one or more boundaries of a model and optionally maps a data field, specified in
the colorfield port, onto the selected boundaries.
Ports and connections which are common to all display modules of the Avizo Wind edition are described in Unstructured mesh display properties.
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The connection to the model containing the boundaries to be displayed.
Colorfield [optional]
282
Color the displayed boundaries using given scalar field. If the selected field is not present on a
boundary to be displayed, the boundary is colored depending on its type (see model color editor).
Ports
Boundaries
Creates a surface using displayed boundaries. This surface can then be used as a seed region for
ISL distribution (see displayISL module).
3.5
ComposeVectorField
The ComposeVectorField module is a specific HxArithmeticModule provided for convenience to compose a vector field from 3 scalar fields. When creating a ComposeVectorField on a scalar HxUnstructuredModelDataSet object, you only have to select the second and the first scalar fields before
generating the output vector field.
Connections
Input A [required]
Scalar field representing the first component of the output vector field.
Input B [required]
Scalar field representing the second component of the output vector field.
ComposeVectorField
283
Input C [required]
Scalar field representing the third component of the output vector field.
3.6
ConvertToUnstructuredModel
This module converts legacy Avizo grids to Avizo Wind Editions unstructured grids. It handles:
RegScalarField3
RegVectorField3
TetraScalarField3
TetraVectorField3
HexaScalarField3
HexaVectorField3
The result is an unstructured grid object named originalName.model and a data object named originalName.dataset.
Connections
Data [required]
The data to be converted.
3.7
CrossSection
Displays a plane slice of a scalar field. The plane slice is colored using the connected scalar field.
Ports and connections which are common to all display modules of the Avizo Wind edition are described in Unstructured mesh display properties.
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The scalar field to extract the slice from. Used for slice coloring.
Ports
Options
284
The rotate toggle controls the visibility of a rotation handle on the cross section plane. Drag this
handle with the mouse in the 3D viewer to rotate the cross section to any desired orientation.
If the immediate toggle is set, the cross section is updated every time you drag it with the mouse in
the 3D viewer. Otherwise only the bounding box of the cross section is moved and the update takes
place when the mouse button is released.
The exact plane def. toggle lets you to show/hide exact plane ports.
Orientation
This slider controls the position of the cross section. The cross section may also be dragged with
the mouse in the 3D viewer in the direction perpendicular to the plane.
Plane definition
CrossSection
285
3.8
DisplayCriticalPoints3D
This modules displays the first order critical points of a 3d vector field.
If v is the 3d vector field under study, a first order critical point x0 is a point where v(x0 ) = 0 and
det(J(x0 )) 6= 0, where J is the Jacobian matrix of v. First order critical points can be classified by an
eigenvalue/eigenvector analysis of the Jacobian matrix J.
Let 1 , 2 , 3 be the eigenvalues of J(x0 ) ordered according to their real parts. The sign of the real
part of an eigenvalue denotes, together with the corresponding eigenvector, the flow direction: positive
values represent an outflow and negative values an inflow.
This leads to the following classification of first order critical points:
Thus, sources and sinks consist of complete outflow/inflow, while saddles have a mixture of both. A
repelling saddle has one direction of inflow behavior (called inflow direction) and a plane in which a
2d outflow behavior occurs (called outflow plane). Similar to this, an attracting saddle consists of an
outflow direction and an inflow plane.
Each of the 4 classes above can be further divided into two stable subclasses by deciding whether or
not imaginary parts in two of the eigenvalues are present (1 , 2 , 3 are not ordered):
Foci: Im(1 ) = 0 and Im(2 ) = Im(3 ) 6= 0
Nodes: Im(1 ) = Im(2 ) = Im(3 ) = 0
286
Connections
Data [required]
A 3D vector field.
Ports
Show icons
Several iconic representations of critical points have been proposed in the literature and we follow
the design approach of Weinkauf & Theisel (see references below) and color the icons depending
on the flow behavior: attracting parts (inflow) are colored blue, while repelling parts (outflow) are
colored red.
Repelling Node (Source)
DisplayCriticalPoints3D
287
288
References:
H. Theisel, T. Weinkauf, H.-C. Hege, and H.-P. Seidel. Saddle connectors, an approach to visualizing the topological skeleton of complex 3D vector fields. In Proc. IEEE Visualization 2003, pages
225-232, 2003.
T.Weinkauf, H. Theisel, H.-C. Hege, and H.-P. Seidel. Boundary switch connectors for topological
visualization of complex 3D vector fields. In Data Visualization 2004. Proc. VisSym 04, pages
183-192, 2004.
Icons size
Use this port to set the length of the ISLs and the step size of the integration method. Decrease the
step size to get smoother lines, increase it to get coarser ones.
ISLs motion
Critical points are retrieved by exploring the cells of a regular grid. In case the vector field is not
defined on a regular grid, the Resolution port is displayed and indicates the resolution of the probing
regular grid on which the critical points will be searched for.
DisplayCriticalPoints3D
289
3.9
DisplayLegend
This module allows you to position a legend in the 3D viewer. The legend displays the data fields
name, units, data range and colormap. This is useful, for example, to produce snapshots that contain
an explanation of what a specific field means.
Connections
Data [required]
The data field to be displayed.
This port is automatically initialized if you created the legend from a field data module. You can
also use the pulldown to choose a field. The arrow button allows you to conveniently select the
current field (displaying its properties in the Properties area).
Ports
Options
fontSettings
This port lets you edit font name, size and color of the text.
Position
Position of the legend in the viewer, relative to the lower left corner. If one of the numbers is
negative, it is interpreted relative to upper right corner.
Size
290
Length and width of the legend in pixels. If the option relative size has been selected, the length and
width are interpreted relative to a window size of 1000x800. If the actual viewer window is smaller
(or larger), then the displayed legend will be smaller (or larger).
3.10
Force
This module computes the pressure force vector and the pressure moment vector generated on a surface
or a set of surfaces of an object when this object is subject to a fluid flow. In numerical terms, the force
is the integral of the product of the pressure and the surface area vector:
F~ =
Nf aces
~=
pdA
~f
pf A
f =1
~ (resp. A
~ f ) are the pressure and area vector (resp. at a face center). The
where p (resp. pf ) and A
pressure moment is the moment of the pressure force F~ at the force origin C about the moment center
P:
Nf aces
~ = P~C F~ =
M
~f )
P ~Cf (pf A
f =1
Connections
Data [required]
A 3D unstructured model.
Pressure [required]
A 3D unstructured scalar field containing pressure values. If one and only one pressure field is
found, it is suggested by default.
Force
291
Ports
Moment center
Coordinates of the moment center (see P in the above pressure moment formula).
Lift and drag computation
Plane in which the drag and lift will be computed. This port is only displayed when Lift and drag
computation is enabled.
Angle of attack
Angle in degrees between the flow direction and the x (resp. y, resp. z) direction when the flow
plane is xy (resp. yz, resp. xz). This port is only displayed when Lift and drag computation is
enabled.
Spreadsheet
The computation results are written in a spreadsheet. Choose append to append the existing spreadsheet, or new to open a new one.
292
Compute
Choose globally to get one result corresponding to the surface composed of all the selected boundaries. Choose per boundary to compute the result on each selected boundary.
Boundaries
Select the type of boundaries where the computation should be done. Effectively select/deselect all
boundaries od specific type.
3.11
GridView
GridView
293
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The grid to display.
3.12
Isosurface
This module computes and displays an isosurface from a connected scalar field. The isosurface can be
colored using another scalar field.
Ports and connections which are common to all display modules of the Avizo Wind edition are described in Unstructured mesh display properties.
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The scalar field to extract the isosurface from.
Colorfield [optional]
A scalar field to be mapped onto the extracted isosurface. Coloring is done using the colormap
associated with this scalar field.
294
Ports
Isovalue
Determines the value used for isosurface computation. The slider is automatically set to span the
whole range of data values.
3.13
LineIntegrals
This module performs calculation of integrals or sums on LineSets. The computation might involve
3d unstructured scalar or vector fields.
The results of the computation are written in a spreadsheet.
Press the Apply button to start the computation.
Connections
Data [required]
A LineSet.
Field [optional]
A 3d unstructured scalar or vector field for which an integral or a sum will be computed.
This port is only displayed when a field is required for the selected computation (all computations
except arc length computation).
Density [optional]
An unstructured scalar field containing density values.
This port is only displayed when density is required for the selected computation (mass-weigthed
computations).
The density has to be connected to the same model as the field in the Field port. Avizo tries to
retrieve such a density field and if one and only one is found, it is suggested by default.
Ports
Line integral
We denote by the unstructured scalar or vector field. The following quantities can be computed:
LineIntegrals
295
arc length
Z
L=
dl '
N
1
X
d(Pi , Pi+1 )
i=0
where P0 , ..., PN are the (N+1) points of the line and d is the distance.
linear integral
Z
N
1
X
1
dl '
d(Pi , Pi+1 ) ((Pi ) + (Pi+1 ))
2
i=0
where P0 , ..., PN are the (N+1) points of the line and d is the distance.
arc length-weighted average
Z
1
dl
L
where L is the arc length (see above).
mass-weighted integral
Z
dl '
N
1
X
i=0
1
d(Pi , Pi+1 ) ((Pi )(Pi ) + (Pi+1 )(Pi+1 ))
2
where is the density, P0 , ..., PN are the (N+1) points of the line and d is the distance.
mass-weighted average
R
dl
R
dl
where is the density.
minimum
maximum
sum
N
X
(Pi )
i=0
296
If the field is a vector field, the results will be given component per component, except for minimum
and maximum which will be equal to the vectors magnitude scalar field minimum and maximum.
Field values are probed at line points.
Spreadsheet
The computation results are written in the tables of a spreadsheet. Choose append table to append
the current table, or new table to open a new table.
Table
If this box is checked, a new table will be opened everytime the integral type changes. The new
tables will be named after the integral names.
Compute
A LineSet data object stores independent line segments of variable length. Choose globally to get
one result corresponding to the global LineSet composed of all the lines selected in Lines port.
Choose per line to compute the result on each selected line.
Lines
A LineSet data object stores independent line segments of variable length. Select the line(s) where
the computation should be done. The field(s) will be probed at the selected line(s) points in order to
compute the chosen integrals.
3.14
Magnitude
The Magnitude module computes the magnitude of the vectors of a vector field, i.e.,
|V | =
The result of Magnitude is a field of scalars, defined on the same grid as the input data and with the
same binding.
Press the Apply button to start the computation.
Magnitude
297
Connections
Data [required]
A real 3d vector field.
3.15
Outline
Displays the outline of a 3D mesh. The outline is constructed from all the edges that belong to exactly
one cell. As a consequence, it is not surprising to see some holes in the outline of some 3D models.
These holes correspond to edges that belong to more than one cell even though they are located on the
border of the mesh.
Ports and connections which are common to all display modules of the Avizo Wind edition are described in Unstructured mesh display properties.
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The grid to display.
3.16
SecondaryVariables
This module computes secondary CFD/CAE variables from the data connected to the model.
The resulting field is defined on the same grid as the input data and with the same binding. It can
written to an AmiraMesh file when saving the grid it maps onto.
Here is the list of all secondary variables that can be computed by this module.
Density related variables
density (compressible):
p
RT
where p is the pressure, R the specific gas constant and T the temperature.
stagnation density (compressible):
=
1 2
s = 1 +
M
2
1
1
where is the density, the ratio of specific heat and M the Mach number.
298
1+
1 2
M
2
1
1
where s is the stagnation density, is the density, the ratio of specific heat and M the Mach
number.
Pressure related variables
pressure (compressible):
p = RT
where is the density, R the specific gas constant and T the temperature.
total pressure (compressible): also called stagnation pressure
1 2
ps = p 1 +
M
2
1
where p is the static pressure, the ratio of specific heat and M the Mach number.
total pressure (incompressible):
1
pt = p + ||U ||2
2
where p is the static pressure, is the density and U the velocity vector field.
pitot pressure (supersonic):
p02 = p
+1
2
2 M
2
2
+1 M
1
1
+1
1
1
where p is the static pressure, the ratio of specific heat and M the Mach number. The pitot
pressure equals the total pressure in subsonic flows.
dynamic pressure:
1
pd = ||U ||2
2
where is the density and U the velocity vector field.
pressure coefficient:
p p
Cp = 1
2
2 ||U ||
where p , , U are reference or free-stream pressure, density and velocity that can be set in
the References port.
SecondaryVariables
299
ps p
1
2
2 ||U ||
where p , , U are reference or free-stream pressure, density and velocity that can be set in
the References port.
isentropic pressure ratio:
pt
1 2 1
= 1+
M
p
2
where pt is the total pressure, p is the static pressure, the ratio of specific heat and M the Mach
number.
pitot pressure ratio:
+1
2 1
M
p02
2
=
1
1
p
2
2 1
M
+1
+1
where p02 is the pitot pressure, p the static pressure, the ratio of specific heat and M the Mach
number.
shock for compressible flow:
U.p
c||p||
where p is the pressure, U is the velocity and c is the speed of sound that can either be a constant
or computed from the temperature with the formula that you will find below in the Velocity
related variables section. Note that by connecting an isosurface to the generated shock variable,
you can plot the Shock Surfaces.
filtered shock: shock variable previously discribed but set to zero on elements where ||p|| is
smaller that a superior limit that can be set in the References port.
Temperature related variables
temperature (compressible):
T =
p
R
where is the density, R the specific gas constant and p the pressure.
stagnation temperature (compressible):
1 2
Ts = T 1 +
M
2
where T is the temperature, the ratio of specific heat and M the Mach number.
300
1
||U ||2
2
p
p
+ cp ln
where p and are reference or free-stream pressure and density that can be set in the References port, as well as the heat capacities cv and cp .
SecondaryVariables
301
entropy measure:
p
s1 =
p
1
where p and are reference or free-stream pressure and density that can be set in the References port, as well as the ratio of specific heat .
Velocity related variables
velocity magnitude:
||U ||
where U is the velocity.
Mach number:
M=
||U ||
c
where U is the velocity and c is the speed of sound that can be set as a constant or computed
from the temperature according to the following formula.
speed of sound:
p
c = RT
where is the ratio of specific heat, R is the specific gas constant and T is the temperature.
cross flow velocity: if the free-stream velocity direction is x,
||U ||cf =
Uy2 + Uz2
where U is the velocity. Choose the free-stream direction x, y or z from the Direction port.
potential velocity:
s
2(pt, p)
||U ||p =
where pt, is the reference or free-stream total pressure, p is the static pressure and is the
density.
equivalent potential velocity ratio:
||U ||
||U ||p
momentum:
m = U
where is the density and U is the velocity .
Vorticity related variables
302
vorticity:
= curl(U )
where U is the velocity. High-vorticity regions are sometimes used to identify vortices.
vorticity magnitude:
|||| = ||curl(U )||
enstrophy:
||||2 = ||curl(U )||2
velocity cross vorticity:
U
helicity:
H = U.
Regions with non zero helicity might have vortices.
relative helicity:
U.
Hrel =
||U ||||||
filtered relative helicity: relative helicity previously discribed but set to zero on elements where
|U.| is smaller that a superior limit that can be set in the References port.
swirl:
U.
||U ||2
where is the density.
Turbulence related variables
lambda2: 2 is the second largest eigen value of the symmetric tensor 2 + S 2 where and S
are the anti-symmetric and symmetric parts of the velocity gradient U . Regions where 2 0
identify vortices.
second invariant: Q is the second invariant of the velocity gradient U . Regions where Q > 0
identify vortices.
discriminant: is the discriminant of U . Regions where > 0 identify swirling flows.
eigen helicity density: He = nswirl ./(|nswirl |||) where nswirl = (e1 e2 )i/2, e1 and
e2 being the conjugate complex eigenvalues of the gradient U . The range of He is [0,1] and
values close to 1 identify regions with vorticity.
Okubo-Weiss criterion: also called Q-criterion of Hunt QHunt = (||2 |S|2 )/2. Regions
where QHunt < 0 identify vortices.
Derivatives computation
gradient: computes the gradient of scalar and vector fields.
SecondaryVariables
303
T 3/2
T + C2
where T is the temperature, C1 (kg.m1 .s1 .K1/2 ) and C2 (K) are constants that can be set in
the References port.
The message A mathematical error occured indicates that the requested secondary variable could
not be computed on one or several elements of the grid. This might be due to null denominators, exponentiation of negative numbers, and so on. If this happens, the variable is set to 0 on the problematic
element.
No units are displayed in the module though it is assumed that the inputs are in the SI unit system.
For example, default constants are in SI units. Outputs are assumed to be in SI units and are saved
accordingly (see the outputs Properties area).
Press the Apply button to start the computation.
Connections
Data [required]
A 3D unstructured model.
Pressure [optional]
The pressure scalar field (in Pa). It is required for some computation, otherwise the port is hidden.
If one and only one pressure field is found, it is suggested by default.
304
Ports
Category
This port provides a list of the main categories the secondary variables belong to. When a category is
chosen, the Variable port is updated and displays the list of the variables that belong to the specified
category.
Variable
This port provides the list of the secondary variables that belong to the category chosen in the
Category port. All the secondary variables that can be computed are listed above.
Direction
Space direction x, y or z.
Mach number source
Some secondary variable expressions require the Mach number. It can be retrieved from the corresponding scalar field or set to a constant.
SecondaryVariables
305
Density source
Some secondary variable expressions require the density. It can be retrieved from the corresponding
scalar field (e.g. for compressible flows) or set to a constant (e.g. for incompressible flows).
Speed of sound source
This port contains different reference or constant values. The constant(s) displayed depends on the
secondary variable selected in the Variable port. They can be identified in the above formula. For
example, the constant(s) might be :
306
R: the specific gas constant set by default to 287 J.kg1 .K1 (air),
gamma: the ratio of specific heat set by default to 1.4 (air),
c v: the heat capacity at constant volume c v set by default to 1005 J.kg1 .K1 (air),
c p: the heat capacity at constant pressure c p set by default to 718 J.kg1 .K1 (air),
mu: the dynamic viscosity set by default to 18.10e-6 Pa.s (air),
reference pressures, temperatures, velocities... in SI units,
...
3.17
SurfaceIntegrals
Connections
Data [required]
An unstructured model or an unstructured scalar or vector field.
If the data is a 3D unstructured model, surface integrals can be computed on the boundaries
of the model.
If the data is a 3D unstructured field, field integrals can be computed on the boundaries of
the 3d model the field is connected to and on any surface that intersects at least partly the 3d
model.
If the data is a 2D unstructured model, surface integrals can be computed on this 2D unstructured surface.
If the data is a 2D unstructured field, field integrals can be computed on the 2D unstructured
surface the field is connected to.
Density [optional]
An unstructured scalar field containing density values.
This port is only displayed when density is required for the selected computation, for example mass
flow rate.
If the data is an unstructured model, Avizo tries to retrieve a density connected to this model. If the
data is an unstructured scalar or vector field, Avizo tries to retrieve a density connected to the same
model as the data field. If one and only one density field is found, it is suggested by default.
Velocity [optional]
A 3D unstructured vector field containing velocity vectors.
This port is only displayed when velocity is required for the selected computation, for example
volumetric flow rate.
If the data is an unstructured model, Avizo tries to retrieve a velocity connected to this model. If
the data is an unstructured scalar or vector field, Avizo tries to retrieve a velocity connected to the
same model as the data field. If one and only one velocity field is found, it is suggested by default.
SurfaceIntegrals
307
Ports
Surface integral
This port is displayed when the data is an unstructured model. The following quantities can be
computed:
total area
Nf aces
Z
A=
dA =
Af
f =1
Nf aces
~=
~v .dA
~f
f ~vf .A
f =1
where ~v and are the velocity and the density, ~vf and f are their value at the center of face
~ f is the normal area vector of face f.
f and A
Field integral
This port is displayed when the data is an unstructured scalar or vector field (denoted by here).
The following quantities can be computed:
surface integral
Nf aces
Z
dA '
f Af
f =1
308
flow rate
Z
Nf aces
~'
~v .dA
~f
f f ~vf .A
f =1
where f is the value of the field at face f and Af is the area of face f.
mass-weighted average
PNf aces
~f |
~
f f |~vf .A
|~v .dA|
f =1
' PNf aces
R
~
~f |
|~v .dA|
f |~vf .A
f =1
where f , f and ~vf are the values of the field , of the density and of the velocity ~v at face
~ f is the normal area vector of face f.
f and A
minimum
maximum
sum
Nf aces
X
f
f =1
Nf aces
f =1
Nf aces
where f is the value of the field at face f.
standard deviation
v
u PNf aces
u
2
t f =1 (f 0 )
Nf aces
where f is the value of the field at face f and 0 is the mean value of .
Notes:
If the field is a vector field, the results will be given component per component, except for
minimum and maximum which will be equal to the vectors magnitude scalar field minimum
and maximum.
SurfaceIntegrals
309
If data is bound per node, an interpolation is performed to get the values at face centers.
Integrals can be computed on boundaries only if data are stored at the boundary faces center.
It is normal to get a different result by integrating a data set on boundaries and on a surface
created through the BoundaryView module. Actually in the first case, a weighted sum of
values stored at the center of the faces of a boundary surface is computed. In the second case,
a weighted sum of values probed at face centers of a triangulated surface is computed.
Spreadsheet
The computation results are written in the tables of a spreadsheet. Choose append table to append
the current table, or new table to open a new table.
Table
If the box is checked, a new table will be opened everytime the integral type changes. The new
tables will be named after the integral names.
Info
This port is displayed when the data is a 3D unstructured model or field. Choose globally to get one
result corresponding to the global surface composed of all the boundaries and surfaces selected in
Boundaries and Surfaces ports.
Choose per surface to compute the result on each selected boundary and surface.
310
Boundaries
This port is displayed when the data is a 3D unstructured model or field at the same time as the
Boundaries port.
Select the type of boundaries where the computation should be done. This effectively selects/deselects all boundaries of specific type in the Boundaries port.
Surfaces
This port is displayed when the data is a 3D unstructured field. All the unstructured surfaces and
display modules that compute a surface are listed in this port. If no such surface or module exist,
then the port is hidden. Notice the ParametricSurface macro button in the upper side of the Explorer:
use this module to create arbitrary parametric surfaces in 2D and 3D.
Select the surfaces where the computation should be done. The data will be probed on the selected
surface(s) cell centers in order to compute the chosen integrals.
Tip: this port can be convenient for example to compute integrals on several parallel cuts of a 3d
model. Create a CrossSection, connect it to an Animate module. Select the CrossSection in the
Surfaces port, set the computation mode of the SurfaceIntegrals module to auto-refresh. Launch
the animation: the current table is appended at every step of the animation with the value of the
integral on each successive cut.
SurfaceIntegrals
311
3.18
SurfaceView
Displays a 2D mesh.
Ports and connections which are common to all display modules of the Avizo Wind edition are described in Unstructured mesh display properties.
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The grid to display.
3.19
UnstructuredMeshDisplayProperties
Most Avizo Wind Edition display modules share a common set of display abilities. Those properties
are described below and apply to most Avizo Wind Edition visualizations.
This picture shows an example of simulation. The visualized model is made of a single region (composed of tetrahedral cells, ie. the air - an example of cell material - around the plane). This region
contains the isosurface. We can see some boundaries - a triangle surfaces separating two regions (ie.
the plane and the air), colored by the pressure.
312
Connections
ROI [optional]
When applicable, the connected ROI (Region Of Interest) is used to discard cells that are not fully
contained inside the region. Discarded cells are not displayed.
Ports
Options
When applicable, the cell filtering toggle enables filtering by region and by material. When the
grid contains regions and/or materials, cell filtering can be enabled for all visualizations except the
boundary viewer.
The radio buttons specify if the display should use per node or per cell values. If per cell is selected,
each cell will have a constant value (either vector, scalar or tensor depending on field type) taken
from the input field. If per node is selected, a value (scalar, vector or tensor) will be affected to each
node of the cell and will be interpolated along the cell.
Binding type defaults to connected field binding (that can be found in properties area of the said
field). If input field is not of the selected binding type, a conversion is done (average value weighted
by distance cell center).
On left mouse click
When the display cell info toggle is enabled, a left mouse click on the model in the 3D viewer gathers
and/or displays information about the picked cell. Cell information is gathered in a spreadsheet that
can be displayed either in its own window or directly in the viewer. The spreadsheet stores:
cell topology
cell type
cell id
cell region
cell material
cell volume/area
cell contained data if any
Rendering
UnstructuredMeshDisplayProperties
313
This port controls the opacity of the surface. A value of 1 is completely opaque. A value of 0 is
completely transparent.
Isovalues Distribution Type
Control how isovalues thresholds are being defined. In uniform a certain number of isovalues are
distributed equidistantly within a user-defined interval. In explicit mode the threshold for each
isovalues has to be set manually.
Uniform Distribution
In uniform mode this port contains three text fields allowing the user to define the lower and upper
bound of the isovalues interval as well as the number of isovalues being used in this interval.
Explicit Distribution
314
In explicit mode an arbitrary number of blank-separated threshold values can be defined in this text
field. For each threshold a corresponding isovalue is used.
Uniform color
This port specifies the color used to draw the shape (IsoSurface, GridView...) when the Coloring
option is set to Uniform in the Rendering port.
Regions Filter
This port is displayed when the cell filtering option is enabled. Only cells belonging to the selected
regions will be rendered.
Materials Filter
This port is displayed when the cell filtering option is enabled. Only cells with the selected material
types will be rendered.
Culling Mode
3.20
VectorField
Displays a vector field representing vectors using arrows. This vector field can be colored using another scalar field.
VectorField
315
Ports and connections which are common to all display modules of the Avizo Wind edition are described in Unstructured mesh display properties.
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The 3D vector field to be visualized.
Colorfield [optional]
A scalar field to be mapped onto the vectors. Coloring is done using the colormap associated with
this scalar field.
Ports
Scale
3.21
VectorPlane
Displays a set of vector mapped on a plane. This vector field can be colored using another scalar field.
Ports and connections which are common to all display modules of the Avizo Wind edition are de-
316
Connections
See Unstructured mesh display common ports and connections.
Data [required]
The 3D vector field to be visualized.
Colorfield [optional]
Color the displayed vectors using this scalar field. Coloring is done using the colormap associated
with this scalar field.
Ports
Frame
This port is used to display or hide the frame, set the frame width and color.
Options
The rotate toggle controls the visibility of a rotation handle on the cross section plane. Drag this
handle with the mouse in the 3D viewer to rotate the cross section to any desired orientation.
VectorPlane
317
If the immediate toggle is set, the cross section is updated every time you drag it with the mouse in
the 3D viewer. Otherwise only the bounding box of the cross section is moved and the update takes
place when the mouse button is released.
The exact plane def. toggle lets you to show/hide exact plane definition ports.
Orientation
This slider controls the position of the plane. The plane may also be dragged with the mouse in the
3D viewer in the direction perpendicular to the plane.
Scale
318
3.22
VolumeIntegrals
This module performs calculation of integrals or sums on a 3d unstructured grid or on a region or a set
of regions of it. The computation might involve scalar or vector fields.
The results of the computation are written in a spreadsheet.
Press the Apply button to start the computation.
Connections
Data [required]
A 3D unstructured model, or
an unstructured scalar or vector field.
Density field [optional]
A 3D unstructured scalar field containing density values.
This port is only displayed when density is required for the selected computation, for example mass
weighted integral. If one and only one density field is found, it is suggested by default.
Ports
Volume integral
When the data is an unstrutured model, the only computation available is the volume:
Z
V =
dV =
NX
cells
Vc
c=1
When the data is a field (scalars or vectors), these quantities can be computed:
volume integral
Z
dV '
NX
cells
c Vc
c=1
VolumeIntegrals
319
volume-weighted average
1
V
Ncells
1 X
c Vc
V c=1
Z
dV '
mass-weighted integral
Z
dV '
NX
cells
c c Vc
c=1
c=1
mean
PNcells
c=1
Ncells
standard deviation
PNcells
c=1
(c 0 )2
Ncells
The computation results are written into a spreadsheet. Choose append table to append to the
current table, or new table to open a new table.
Table
320
If the box is checked, a new table will be opened every time the integral type changes. The new
tables will be named after the integral names.
Compute
Choose globally to get one result corresponding to the volume composed of all the selected regions.
Choose per region to compute the result on each selected region.
Regions Filter
3.23
VortexCoreline
Although there are a number of studies devoted to vortex identification, there is no agreement on a
formal definition. In the absence of a formal characterization of vortical structures, swirling motion
around some central region is used as a working definition. Depending on the chosen approach, this
leads to features that are either lines, surfaces or volumes (see vorticity and turbulence related variables
in SecondaryVariables).
The VortexCoreline algorithm focuses on determining the centers of rotation of vortices: the vortex
core lines. To this end, it explores all the faces of the grid and searches for core points on those faces.
Core points are then connected in core lines.
The output of this module is a LineSet object that can be displayed by connecting a LineSetView
display module.
Press the Apply button to start the computation.
Connections
Data [required]
A 3d velocity vector field.
ROI [optional]
Restrict the search for core points to a SelectRoi.
VortexCoreline
321
Ports
Parallel vector
To extract vortex core lines, an implementation of the Parallel Operator method by Peikert et al. is
used. In this implementation, core lines are defined as 3d curves where the velocity u is parallel to
some vector that we will call the criterion. On each face the algorithm searches for points where
the norm of the cross product between the velocity vector and the criterion vector is null.
The criterion vectors are:
the vorticity vector = curl(u), or
the convection vector u.u.
Pre-filtering
Before searching for core points, a pre-filtering check can be performed in order to determine the
faces where a core point is likely to be present or not. Faces that fail the check are skipped in the
rest of the algorithm. This not only improves the efficiency of the search, but can also significantly
reduce the noise and the number of points not associated with vortices (also called false positive
points). The available filters are:
Discriminant: Regions where the discriminant of u is positive correspond to swirling
flows.
Velocity: Noise and detection of false positive points can occur in regions where either the
velocity or the criterion is null (like boundaries). This filter discards faces that have nodes
where either the velocity or the criterion is null.
Post-filtering
Post-filtering is similar to pre-filtering but performs tests that require more computation. This is
why it is performed on the list of computed core points and not on the whole domain. When a filter
is selected an additional port will appear (if necessary) to allow setting its parameter value. The
available filters are:
Core points with low rotation strength values can be discarded.
Core points where 2 > 0 can be discarded, 2 being the second largest eigen value of the
symmetric tensor 2 + S 2 where and S are the anti-symmetric and symmetric parts of the
velocity gradient u.
322
Sets the threshold for rotation strength post-filtering. The threshold is the fraction of the maximum
rotation strength at all core points. The range is [0,1] and core points with a rotation strength fraction
smaller than the threshold are discarded.
He threshold
Sets the threshold for 2 post-filtering. Core points with 2 bigger than the threshold are discarded.
He threshold
Sets the threshold for eigen helicity density post-filtering. The range is [0,1] and core points with
an eigen helicity density smaller than the threshold are discarded.
Minimum line size
The size of a core line is defined as the number of core points in the line. An additional filter based
upon the size of the core lines can be applied to remove the small lines and thereby improve the
clarity of the results.
LineSet
Smooths the core lines by replacing the coordinates of each vertex by a weighted average of its
neighboring vertices. If you press smooth multiple times, the lines get smoother and smoother. To
get back to the original lines, press Apply.
3.24
VorticityIdentification
This module is now deprecated. Please use SecondaryVariables for the same computational features
and more.
Although there are a number of studies devoted to vortex identification, there is unfortunately no
agreement on any formal definition. In the absence of formal characterization of vortical structures,
VorticityIdentification
323
swirling motion around some central region is used as a working definition. Depending on the chosen
approach, this leads to features that are either lines (see VortexCoreline), surfaces or volumes.
This module computes different vorticity-related data fields, which might be useful to find vorticity
regions, by ploting Isosurfaces for example.
Press the Apply button to start the computation.
Connections
Data [required]
A 3d velocity vector field.
Ports
Vorticity criterion
Result binding
By default the output data is bound per cell, regardless of whether the input data was bound per
324
node or per cell (except for Mach number which always has the same binding as the input). If the
inputs are bound per node, it might be interesting to get outputs per node too. If the per node box is
checked, then a cell-to-node interpolation is performed to get outputs bound per node.
Speed of sound
Speed of sound in a fluid substance in m/s. By default it is set to the speed of sound in the air: 340
m/s.
VorticityIdentification
325
326
Chapter 4
Earth
This module provides the visualization of the Earth with a resolution of around 10 km. Terrain and
texture are displayed, depending of the visualization mode, related to camera pointing location. This
allow to have well defined Earth patch on the location of main sight.
Connections
Data [optional]
Port to connect data to be displayed globally on the Earth instead of the default texture. This means
that the data size must match the global Earth surface.
Colormap [optional]
Colormap used to display data globally on the Earth.
Projection [optional]
Port to change current Earth visualization projection.
Ports
Z Scale
Port to change the Z scale factor for the terrain. This allows to increase the visualization of relief.
Display Mode
This port allows to define the type of visualization of the Earth. The default is Adaptative Resolution
but it is possible also to force the Low Resolution (for VR usage for example) or hide the terrain
(None).
Low Mode - Texture Resolution
Define the texture resolution for the rendering of the forced low terrain resolution.
Display Mode
This port allows to select only Continental borders or also Countries borders.
Z Scale
Port to change the size of the line set representing the borders.
Color
Port to change the color of the borders. This is only applied in LineSet visualization mode. For
texture mode, black is the fixed color.
Continental Borders
Port to change the input data for the mixed continental and countries borders.
328
Colormap
4.2
NetCDFControl
Connections
Time [optional]
Master time connection.
Ports
Time
This slider specifies the current time value. Additional settings can be modified via a popup menu
which is activated by pressing the right mouse button over the slider. The inner buttons proceed one
step in backward or forward direction, respectively. The outer buttons activate animation mode. The
popup menu lets you choose between simple animation (play once) and two endless modes (loop
and swing). Animation is always restricted to a subrange of the whole time interval. The subrange
can be controlled graphically via the two upper arrow buttons. All settings can also be adjusted in a
configure dialog which can be activated via the popup menu, too.
Animation rate
This radio port specifies the animation rate. If user selects the afap mode, the animation rate is
driven by Avizo, trying to play animation as fast as possible. If user selects the delayed mode, the
specified animation rate will be taken. Notice that if time to compute and display current time step is
greater than the specified delay, the delay will be ignored. It is possible to obtain a fastest animation
when specifing a delay rather than choosing afap mode if time to compute and display a time step
is smaller than default delay.
NetCDFControl
329
Loading mode
This radio port specifies the loading mode. If user selects the synchronous mode, the load of data
will be executed by the main thread. Default is asynchronous. In this case a dedicated thread is created to load data. If multiple plays occurs, only one NetCDFControl module can be multithreaded
for loading.
Caching mode
Prefetching
Controls the number of prefetched time steps when an animation occurs. This number do not include
current loaded time step. Default value is three. If a too large number is specified, the real number
of prefetched time steps will be adpated according the Memory management port.
Memory management
Controls the memory allocated to netCDF datasets. Prevents from loading too many prefetched
time steps that will not fit into memory.
Longitude roi
Controls the region of interest in longitude (X axis). This region is applicable to all datasets controlled by the module. Not applicable to curvilinear grids.
Latitude roi
Controls the region of interest in latitude (Y axis). This region is applicable to all datasets controlled
by the module. Not applicable to curvilinear grids.
Height roi
Controls the region of interest in height (Z axis). This region is applicable to all datasets controlled
by the module.
Global subsampling
330
Controls the subsampling for each axis. The subsampling is applicable to all datasets controlled by
the module.
Misc
Offers user the possibility to copy the first lomgitude in order to have a closed data when using with
projections.
Compute min/max
Computes the min/max of all datasets controlled by module over all timesteps. Notice that this
operation can take a long time to achieve. The operation can be canceled with the stop button of
working area. Once achieved, results are stored in the Global data window port of each datasets.
NetCDFControl
331
332
Chapter 5
2DHistogramSegmentation
Using the 2DHistogramSegmentation script module, you can make the segmentation of your CT or
MR gray level images data composed of two or more phases in a semi-automatic way.
Introduction
Consider a multiphase material like the tutorial data motor.am, a CT scan of the cylinder head sample.
There are many discrete phases, but the histogram shows that the peaks from the differing phases
overlap. In cases like this, thresholding the image based on intensity will fail because any threshold
will result in some pixels being incorrectly assigned.
The approach used here, called 2DHistogram segmentation, relies on the Gradient Magnitude versus
Image Intensity histogram.
This segmentation process includes two major steps: an initial classification of some voxels into two or
more phases, and then a expansion step where that classification is expanded so that all voxels become
labeled.
Classification: For this routine the initial classification of voxels is performed based on those
voxels intensity and their gradient magnitude. The input to this routine is the intensity map of a
3D volume. From that input, the gradient magnitude is computed. Once the gradient magnitude
is computed, the user is presented with a 2D scatterplot that shows Gradient Magnitude vs Image
Intensity. The user will use this plot to determine the initial classification (this is described in
Use the histogram to initialize the classification).
Expansion: Expansion is computed by the marker-seeded watershed transform (see Principle
of the watershed algorithm). The watershed transform requires two inputs, a set of seed markers
and a landscape function. The seed markers will be determined by classification (see Interpreting
the histogram), and the gradient magnitude will be used for the landscape function.
The 6 steps of the 2D histogram segmentation:
Step 1 - Compute gradient magnitude to begin - see detail in Computing the gradient
magnitude:
Choose between precise computation of the gradient magnitude or a faster approximation of
the gradient magnitude.
Hit Next: Compute Gradient Magnitude to continue.
Step 2 - Plot histogram see details in Interpreting the histogram:
Hit Next: Plot Histogram to continue.
Step 3 - Draw windows - see details in Use the histogram to initialize the classification:
Use gamma correction to visualize peaks on the 2D histogram. Use drawing tools at top of plot
window to draw windows directly on the plot. Generally, you want to select regions that have
very low gradient-magnitude (peaks close to the x axis).
Hit Next: Compute Seed to proceed to the next step.
Step 4 - Review seed labels:
Use weight factor to update the view to show the greyscale data, the seeded labelfield, or a
weighted fusion of the two datasets.
Use the Hide/Show Histogram button to toggle the display of the histogram so that it is easier
to view the results in the Viewer. Use slice number to adjust the slice index plane that is being
displayed. If you are not satisfied with the seeds computed from your chose windows, hit Delete
Last Window to delete windows one at a tie (in the reverse order from which they were added).
Then you can draw new windows. After you have drawn new windows, hit Recompute Seed.
You can iterate until you are satisfied with the seed.
Hit Next: Apply Watershed to proceed (see details in Use watershed to expand)
Step 5 - Confirm watershed results:
If the results are not satisfactory, draw new regions, and then reapply watershed with hitting
Previous: Recompute Seed.
Hit Next to proceed to the final step, which is optional.
Step 6 - [Optional] Delete a channel:
lIf one of the assigned labels corresponds to void space, you may choose to delete that label
from the labelfield.
You should delete this module when you are done.
Computing the gradient magnitude - details of step 1
When you connect this module to an input data, you will have to choose for a precise or approximate
334
(but faster) computation of the gradient magnitude. After the gradient magnitude is computed, a scatterplot will be generated that shows the Gradient Magnitude vs Image Intensity (see Figure 1). This is
done automatically for you, but you can compute the gradient manually using the Quantification commands rgradient3d and gradient magnitude3d (or gradient cany3d for the approximation). The
scatterplot is computed and plotted using the CorrelationPlot modules.
2DHistogramSegmentation
335
Figure 5.2: Same 2D Histogram as before, after adjusting the gamma function. Note the potential phase clusters (A, B, C, D)
and the two phase interface arcs (AC and CD).
Consider the histogram for motor.am. motor.am has three distinct materials: air, low-density metal,
and high-density metal. The histogram shows four potential phases (A,B,C, and D), and it also reveals
information about the boundaries between phases where you can see at least two connecting arcs (AC
and CD). The absence of any arcs connecting B suggests that the B cluster may not be a real phase.
Use the histogram to initialize the classification - details of step 3
Use the drawing tools to draw windows. Draw one window for each material (include A, B, C, and D).
After you have drawn one window corresponding to each material, hit Next: Compute Seed to visualize
the voxels corresponding to the windows you have selected. The classification results are visualized
on an Orthoslice and its coupled Colorwash. The slider in the Weight factor port (on the Colorwash
module) will allow you to adjust the weighting factor so you can slide between seeing the classified
pixels or the greyvalue pixels.
The first window you chose will be colored light blue, the second window royal blue, the third red, and
336
Figure 5.3: Four windows have been drawn to select the four prospective phase clusters.
2DHistogramSegmentation
337
Figure 5.4: Left: Classification result of windows for A, B,C and D.Right: Classification results for windows A, C, and D.
the fourth green. By visual inspection, you can see that the royal blue pixels (corresponding to region
B) are not a separate phase, but instead a region of blurred density connecting phases A and C; these
are probably imaging artifacts related to the instruments modulation transfer function.
This process of visual inspection allows us to review the classification results, and then, if necessary,
remove and recreate windows (use the Delete Last Window button to delete windows). The classification by the new windows can then be visualized. This iterative procedure is continued until you are
satisfied by the classification results.
Use watershed to expand - details of step 4
The second step is to perform a watershed transform. The watershed transform will expand the
classified pixels and the result will be that all of the pixels will be classified according to one of the
phases.
This is done by applying the Quantification commands catchbasin and dilatebasin. This is done for
you automatically when you click on Next: Apply Watershed button.
Connections
Data [required]
Image data to be segmented.
338
Figure 5.5: Left: Results window-based classification.Middle: Results after watershed expansion.Right: Initial grey-value
image.
Ports
Intensity
This port is only displayed at the step 3, step 4, step 5 and step 6.
Controls the visibility of the histogram.
Slice number
2DHistogramSegmentation
339
This port is only displayed at the step 4, step 5 and step 6 and chooses the colormap to use for
displaying seeds and segmented image.
Next action
Displays information concerning the next action to come and the current step.
Gradient method
This port is only displayed at the step 1 and chooses the method to use to compute the gradient
magnitude.
Gamma correction
This port is only displayed at the step 3, step 4, step 5 and step 6.
Chooses the gamma correction to apply to the histogram.
Delete channel
This port is only displayed at the step 6 and enables to delete a specific channel which corresponds
to void space.
Action
Proposes the different actions to apply. At each step, the list of actions is updated.
340
5.2
ConvertToIM6
0:
1:
2:
3:
Note that current conversion behavior can be interrogated with the following Tcl command:
LDAToIM6Converter getBehavior
Connections
Data [required]
The LDA data to be converted.
ConvertToIM6
341
5.3
Quantification
This module provides access to the Visilog software. The full range of Visilog filters can be accessed
in a way that Visilog users are used to. Input and output images are connected to Visilog as in any
other Avizo network. See Avizo XQuant Pack Users Guide for more information.
Connections
Data [required]
Initial input image.
Ports
Action
Pressing the first button launches the Visilog result viewer. The two following buttons bring up the
Visilog documentation within the Adobe Reader PDF viewer. If Adobe Reader is not installed on
your system, you can download it here: http://www.adobe.com.
click on the first button to launch the Visilogs Users Guide,
click on the second button to get context sensitive help on the current Visilog command (also
accessible when clicking the F1 button on the Visilog port).
Options
This port enables to automatically export analyses generated by Visilog into Avizo spreadsheets.
Visilog
342
This port is identical to the Visilog user interface, in which the command is chosen from the command tree.
Some of these commands are now parallelized as you can see in the following list:
absval: 2D 3D
add: 2D 3D
apply morph lut: 2D
area: 2D
blend: 2D 3D
closing: 2D 3D
compare: 2D
Quantification
343
344
compass3d 3: 3D
convert: 2D 3D
createkernel3d: 3D
deblur: 2D
dilate: 2D 3D
distance: 2D 3D
dist557: 2D
distxxx: 3D
divide: 2D 3D
eraseimg: 2D 3D
erode: 2D 3D
exp: 2D 3D
expofilter: 2D
gaussianfilter: 2D
gradient mag: 2D
gradient mag3d: 3D
gradient cany3d: 3D
high tophat: 2D 3D
highpass 3x3: 2D
highpass 5x5: 2D
highpass 7x7: 2D
highpass3d 3: 3D
highpass3d 5: 3D
highpass3d 7: 3D
I analyse: 2D 3D
I tophat: 2D 3D
I tophat2: 2D 3D
image kernel: 2D
kernel 2d: 2D
kernel 3d: 3D
kernel 3x3: 2D
kernel 5x5: 2D
kernel 7x7: 2D
kernel3d 3: 3D
kernel3d 5: 3D
kernel3d 7: 3D
label: 2D
laplacian 3x3: 2D
laplacian 5x5: 2D
laplacian 7x7: 2D
Laplacian3d 3: 3D
Laplacian3d 5: 3D
Laplacian3d 7: 3D
lclosing: 2D
ldilat: 2D
lerode: 2D
lightness: 2D
log: 2D 3D
logical *: 2D 3D
lopening: 2D
mask: 2D 3D
maxabs: 2D 3D
maximum: 2D 3D
medianfilter: 2D
medianfilter3d: 3D
minimum: 2D 3D
multiply: 2D 3D
negative: 2D 3D
normalize: 2D
number: 2D
opening: 2D 3D
random: 2D 3D
randomgauss: 2D 3D
rgradient: 2D
shade: 2D
shading cor: 2D 3D
skeleton: 3D
skiz: 2D 3D
square: 2D 3D
square root: 2D 3D
substract: 2D 3D
threshold: 2D 3D
Quantification
345
tophat: 2D 3D
unionlclosing: 2D
unionlopening: 2D
Commands
analyse2Spreadsheet <AnalyseName>
Export a given Visilog analyse into Avizo spreadsheet.
setCommand <Command>
Initialize the Visilog module with a command.
Will return the new modules name as this last will be modified according to the current command.
To apply the command, you will have to call Quantification:algo doIt hit and
Quantification:algo fire.
getCommand
Return the Tcl command associated with current Visilog command.
exeCommand <Command>
Execute a Visilog command.
Example:
Quantification:algo exeCommand "cmd=threshold input=grey ima
param=0,100 output=bin ima"
Quantification:algo exeCommand "cmd=I analyze input=grey ima
param= outanl=label ima"
createObject <DataName> <DataType> <Param>
Create a Visilog data object (array, polynome, analyze...).
removeObject <DataName> <DataType>
Remove a Visilog data object (array, polynome, analyze...).
addField <DataName>, <DataType> <FieldName> <Size>
Add a field to a Visilog object.
printText <Text>
Print text in a notepad of ResultViewer.
setDspOutput <DataType> <Display>
Lock or unlock display object after command (Display = 0 or 1).
setPlaneMode <ZLoop> <ColorLoop> <SequenceLoop>
Lock or unlock a loop process (0 for lock and 1 for unlock).
setCurPlane <ZPlane> <ColorPlane> <SequencePlane>
Set a specific plane for a locked loop process.
346
closeDiskImage <DiskImageName>
Close a disk image (but dont delete the file).
Example:
Quantification:algo closeDiskImage input=c:/tmp/image1 bin.im6
exeIp <IpFunctionAndParameters>
Execute a Visilog Ip function.
Example:
Quantification:algo exeIp "ip=IpCreateImage input=grey ima
output=ima2 param=4"
Quantification:algo exeIp "ip=IpCopy input=grey ima output=ima2"
getFieldCountX <DataName> <Datatype> <FieldName>
For a Visilog data object, get the size of the field FieldName.
Possible values for DataType:
Quantification
347
348
5.4
Quantification-Analysis
Quantification-Analysis
349
The dragger can be moved either by selecting one of its handles and moving it to the target position or
by clicking on the target position with the middle mouse button. If the user selects a field in the result
viewer, the dragger is set to the corresponding position.
Connections
Data [required]
Field to be analyzed.
Ports
Dragger
5.5
Quantification-Threshold
This tool allows thresholds to be selected interactively. The current selection is displayed in an orthoslice representation. This tool is used by the Visilog I threshold command. When the tool is not
called from Visilog, it can create a label field itself.
Press the Apply button to create the binary image. A new field is created that is 1 for each value within
the threshold interval and 0 for all other field values. The Data input port is not visible when the tool
is called from Visilog.
Connections
Data [required]
Image data the thresholds are applied to.
Mask
Optional image data used as a mask for thresholding. The image data must be a binary HxUniformScalarField3 with the same dimensions as the input image data. If such a mask is connected,
threshold will only be evaluated where mask value is equal to 1.
350
Ports
Orientation
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Data Window
This port allows you to restrict the range of visible data values. Values below the lower bound are
mapped to black, values above the upper bound are mapped to white.
Slice Number
This port allows you to restrict the range of visible data values. Values below the lower bound are
mapped to black, values above the upper bound are mapped to white.
Render
5.6
WatershedSegmentation
This module performs an accurate segmentation of different phases by applying a watershed on high
gradients.
For technical information please refer to Example 6: segmentation of rocks using watershed and gradient thresholding
After having specified the number of phases to segment, click on the Next button and follow the
instructions.
WatershedSegmentation
351
If only one phase is specified, the eroded negative will be automatically created as a fake label for the
watershed.
Actions to perform are:
352
Gradient computation
Gradient masking
Phases thresholding
Watershed computation
Chapter 6
CreateVRConfig
Utility script module for creating configuration files for Avizo XScreen Pack.
This module supports flat screens matrices with optional overlaping and optional edge blending, which
can be set independently on vertical or horizontal periods. The Avizo XScreen Pack configuration file
is generated when pressing the Apply button. The display can be configured either as tiles or using
coordinates for immersive viewing and interaction - however all screens lay on plane z=0, arbitrary
position is not handled by this script. For clusters, multiple screens can be distributed equally on each
slave nodes. This may not cover all configuration possibilities supported by Avizo: you can repeat slave
nodes in the list, or tune specifically the configuration for your need by combining different output files
using different screen layouts. You can also list for each screen its cluster nodes and X display id. See
Avizo XScreen Pack users guide for more information.
Ports
Output filename
Sets the output configuration filename. It is a good idea to put it in Avizo XScreen Pack configurations path (which is the default value).
Number of screens
Defines if the configuration is tiled (i.e. flat) or immersive. You may choose immersive display for
use with tracking system. You can then choose world coordinates for the corners of full display
with the port Screen set coords. Depth/z coordinate is set to 0. A SoTracker node is added to config
file with a centered default position for object and camera.
Note: Even if Avizo XScreen Pack supports any immersive configurations, when choosing this
option, you can only configure a flat display wall.
Screen set coords
This option is visibled only if Display mode is immersive. It enables to set the world coordinates for
the 4 corners of full display. left, bottom, right and top are respectively used to compute lowerLeft,
lowerRight, upperRight and upperLeft of each SoScreen in the configuration file.
Testing options
354
overlap shift: shift channels to compensate overlap and check display consistency.
Parallel mode
This port is visible only if the port Parallel mode is set to single display (test). It defines the scale
applied to each screen when testing a configuration.
Options
This port is visible only if the port Parallel mode is set to local (multi-pipe) or cluster. The first
option master screen enables to keep the display on the master screen in addition to screens defined.
The second option display ids, active only in cluster mode, enables to define the X display identifiers
used by each screen.
Node hostnames
This port is visible only if the port Parallel mode is set to cluster. Enables to define the list of cluster
slave nodes hostnames. This list is assumed to be given by screen rows (left then right eye).
Display names
This port is visible only if the port Parallel mode is set to cluster. Enables to define the list X display
ids corresponding to the nodes. This list is assumed to be given by screen rows (left then right eye).
You just need to repeat a node in Node hostnames port for setting more than 1 display per node.
CreateVRConfig
355
This port is visible only if the port Parallel mode is set to cluster. Enables to define the number of
screens per cluster node. Screen layout is identical for each node.
Overlap (pixels)
Enables to choose an overlap in pixels (0 means no overlap). It could be usefull for instance for
projection with edge blending.
Tips: Negative overlap can be useful for displays separated by solid frames.
Overlap period
Chooses overlap period, i.e. overlaping may occur every n screens horizontally and/or vertically.
For instance a high resolution wide display system might include 3 projectors overlaping for edge
blending, each projector gathering 4 channels/screens inputs that do not overlap. Overlap period is
meaningless if overlap value is 0 pixels.
Soft edge overlap (%)
Sets optional soft edge overlap, for instance if edge blending is not supported by projection hardware
or graphics driver. Usually the values correspond (in percentage) to the screen overlaps.
Soft edge options
Chooses soft edge gamma to control fading of intensity towards screen edge.
356
On Apply
Defines when the button Apply is pressed if the configuration file is saved only or saved and loaded.
Tips: you can use the auto-refresh mode for configuration update upon any change.
6.2
ShowConfig
This module displays a model of the currently loaded Avizo XScreen Pack configuration. Its intended
to give the visual feedback needed during the configuration process and for easier error detection. It
shows the projection planes, camera, sensor and scene positions as well as the button state. Therefore
the fourth viewer is used.
Objects associated with a local coordinate system are drawn with an axis consisting of three colored
line segments. The x axis is red, y is green, and z is blue.
The camera position is marked with a red cone and two small gray spheres, one for each eye. The eye
spheres are translated according to the configured eye offset value. One eye sphere is marked with the
letter R which means that this is the sphere for the right eye.
ShowConfig
357
Blue spheres represent sensors (3D-tracker), one for every sensor. If one of the buttons is pressed, the
blue sphere of the first sensor turns white until all buttons are released.
358
If the camera is bound to one of the 3D sensors, which means that head tracking is turned on, the
red cone representing the camera is glued to the blue sensor sphere and follows its movement. At the
moment the head-tracking feature is turned off, the camera model snaps back to the default camera
position.
Finally the projection planes are drawn at the positions and dimensions specified in the configuration
file. The following two images are showing an environment with a single projection plane. The front
side looks blue and a projection plane observed from its back side appears red. By observing the color
one can verify that the edge points were specified in the right order.
front view
ShowConfig
359
rear view
The user-defined name of the plane is drawn in its center. Since projection planes are given as a set
of four edge points it is possible to produce a non-planar polygon. This misconfiguration leads to a
clearly visible edge crossing the plane.
Connections
Data [required]
Connect the VRSettings control module.
6.3
VRSettings
The VRSettings module is the central control module of the Avizo XScreen Pack Virtual Reality
Extension. It allows you to activate different screen configurations specified in config files located
360
Ports
Config
This port provides a list of all config files found in $AVIZO ROOT/share/config/vr and
$AVIZO LOCAL/share/config/vr. This is the same as in the Config menu of the Avizo
main window. Note that valid config files are only searched once. It is not possible to add a config
file when Avizo is running. However, existing config files may be modified and reloaded using the
reload button. The write button allows you store a modified configuration into a file (for example
after the tracking system has been calibrated). If this button is pressed, the file dialog pops up.
Tracker
Specifies how the connection to the tracking system should be established. In order to connect to a
running trackd daemon, the value of this port should be <id of controller reader>:<id
of tracker reader>, where the two ids are the shared memory ids of the trackd controller
reader and the trackd tracker reader as specified in the trackd.conf file.
In order to activate a simple tracker emulator, you can type in test into the text field.
Action
The connect button allows you to connect to the tracking system. Once you are connected to the
tracking system, the button label changes to disconnect. Pressing the button then disconnects from
the tracking system.
The calibrate button allows you to calibrate the tracking system, i.e., to find the transformation
between raw tracker coordinates and the screen coordinates used in the config file. For more information about the calibration process, please refer to section Calibrating the Tracking System of the
Avizo XScreen Pack users guide.
The pick wand button allows you to change the offset between the 3D input device and the visual
representation of the virtual wand. If you press the button, the wand is displayed half-way between
the current eye position and the default object position. You can then pick the virtual wand in the
way which is most convenient for you.
Mode
VRSettings
361
Option menu allowing you to change between ordinary interaction mode (translate and rotate the
whole scene using the 3D wand), fly mode (navigate through the scene like an airplane), or 2D
mouse mode (control the 2D mouse using the 3D wand). In order to exit 2D mouse mode, doubleclick the 3D wand while the 2D mouse is over an insensitive GUI element.
Options
If the values toggle is activated, the current coordinates of the wand sensor and of the head sensor
are displayed in the upper left corner of the screen. The coordinates are transformed into the screen
coordinate system which was used in the config file. Only during calibration raw tracker coordinates
are displayed.
The menu toggle displays or hides the 3D menu in the scene.
The wand highlighting toggle can be turned off to gain some performance. This is particularly
useful when the scene contains a large number of interactive objects.
Adjust size
This slider allows you to change the overall scaling of the scene.
Stereo
The enable toggle allows you to enable or disable stereo mode. Depending on the camera mode
defined in the config file, either active stereo or passive stereo will be used. This option is the only
one which is provided for flat screen configurations (compare section Flat Screen Configurations of
the Avizo XScreen Pack users guide).
The head tracking toggle allows you to temporarily enable or disable head tracking. If head tracking
is disabled, the default camera position specified in the config file will be used instead of the position
reported by the head sensor. If no head sensor has been configured or if a flat screen configuration
is being used, this button is disabled.
Left eye offset
Define here the center of the left eye relative to the head tracker position. This port is only visible
if stereo mode is enabled for immersive configurations. Its value is initialized with the config file
leftEyeOffset field.
Right eye offset
Define here the center of the right eye relative to the head tracker position. The same remarks as for
Left eye offset apply.
362
This slider allows you to adjust the stereo balance. This port is only visible if stereo mode is enabled
for flat screen configurations.
Camera offset
This slider allows you to adjust the offset between each eye. This port is only visible if stereo mode
is enabled for flat screen configurations.
Commands
start <hostname>
Starts the slave hostname. If hostname is null, starts all slaves.
stop <hostname>
Stops the slave hostname. If hostname is null, stops all slaves.
restart <hostname>
Restarts the slave hostname. If hostname is null, restarts all slaves.
setHeadTrackerId <id>
Changes the head tracker id on-the-fly. Usually the id is defined in the config file. A value of -1
disables the head tracker.
setWandTrackerId <id>
Changes the wand tracker id on-the-fly. Usually the id is defined in the config file. A value of -1
disables the wand tracker.
setSoftEdge -g <gamma> <overlap> [<overlap>...]
Initializes a dual-screen soft-edge configuration with the given overlap percentage <overlap>.
This is a value between 0 (no overlap) and 1 (full overlap). <gamma> defines the gamma value for
the soft-edge blending (exponent controlling the blending curve).
setPanorama <overlap1> [<overlap2> ...]
Initializes a multi-screen panorama configuration with the given overlap percentages. These are
values between 0 (no overlap) and 100 (full overlap). The current configuration must be a flat
screen configuration.
setDefaultCameraPosition <x> <y> <z>
Sets the default camera position for a 3D configuration. The position must be specified in the same
coordinate system as the screens in the Avizo XScreen Pack config file. The default camera position
is used if head tracking is turned off.
VRSettings
363
364
Chapter 7
ArithmeticRendering
The Arithmetic module performs calculations on up to three input data objects according to a userdefined arithmetic expression. This module computes the arithmetic expression on the fly. Slices,
VoltexHighQuality and ROI can be connected to this module to display its result.
Connections
Input a [optional]
The first data set to work with. A value in the user expression.
Input b [optional]
The second data set to work with. B value in the user expression.
Input c [optional]
The third data set to work with. C value in the user expression.
Ports
Expression
This port specifies the mathematical expression used to compute the result.
7.2
CastLattice
This is a computational module that allows you to change the primitive data type of a LDA data
object. A new scalar field will be created having the same dimensions and the same coordinates as the
incoming one, but the data values will be shifted, scaled, and cast to a new data type. As an additional
feature, CastLattice is also able to convert a LDA data object into a label field, which is commonly
used to store segmentation results in Avizo. For each value or label occurring in the incoming field
a corresponding material will be created. Material colors may be defined via an optional colormap.
Press the Apply button to start the computation.
Important note: You should be aware of the size of the LDA data object you wish to convert; the LDA
data objects may exceed the size of available RAM memory, in those cases it will not be possible to
perform the conversion because there will not be enough RAM memory available to store the result of
the conversion.
Connections
Data [required]
The LDA field to be converted.
Ports
Info
Shows how the input data will be mapped during conversion. If no clipping occurs the input range
covers all values between the minimum and maximum data value of the incoming scalar field. This
range will be mapped as indicated. If clipping occurs, the minimum or maximum value of the output
range or both will be equal to the smallest respectively biggest value which can be represented by
the selected output data type. In this case the input range shows which values correspond to these
limits. Data values below the lower limit or above the upper limit will be clamped.
Output Datatype
Lets you select the primitive data type of the output field. The item LabelField is special. If this is
selected the incoming scalar field is converted into a label field.
Scaling
Defines a linear transformation which is applied before the data values are clamped and
cast to the output datatype.
The transformation is performed as follows: output =
SCALE*(input+OFFSET)
366
If you want to convert data with a range inmin ... inmax into a range outmin ...
outmax, SCALE and OFFSET are determined like this: SCALE = (outmax - outmin) /
(inmax - inmin) and OFFSET = outmin / SCALE - inmin
7.3
ConvertToLargeDiskData
This module allows the conversion of large image data to LDA file format (default) or to LargeDiskData.
Conversion to LDA format can be applied to original data of the following formats: AmiraMesh, Raw
Data, Stacked Slices (stacks of SGI, TIFF, GIF, JPEG, BMP, PNG, JPEG2000, PGX, PNM, and RAS
raster files) and SEG-Y.
To create a ConvertToLargeDiskData module, use the Create menus Data submenu. Select the input
files with the Inputs port, specify the output with the Output port. Press the Apply button to start the
conversion process.
Depending on the input format, you may be asked to supply parameters as described in TIFF format
or Raw Data during the conversion process. If the input file is a SEG-Y file, the SEG-Y Wizard will
be displayed.
After a successful conversion, a new data object appears in the Pool.
Ports
Inputs
Commands
forceAmira311Format {0|1}
Provided for compatibility with Amira 3.1 and earlier. Lets you select the output data format.
0 = LDA file format,
1 = LargeDiskData = Avizo 3.1 format.
Note1: The Amira 3.1 format does not support SEG-Y file conversion.
Note2: An Avizo Large Data Pack license is not required to use the Amira 3.1 format conversion.
ConvertToLargeDiskData
367
7.4
IsosurfaceRendering (LDA)
This module generates isosurfaces that are computed and rendered on the graphics hardware. This
module does not compute geometry on the CPU. Thus, unlike for the non-LDA Isosurface module, it
is not possible to store the results as a surface object or as an Open Inventor format file.
This rendering technique needs more slices than typically used for volume rendering. A low number
of slices will create holes in the surface.
This module provides a hardware-accelerated implementation, which uses programmable shader hardware to allow real-time rendering. On platforms that do not have programmable shader support, no
isosurface will be drawn.
If the isosurface is hidden in one viewer it is also hidden in all viewers (the visibility is global to all
viewers)
Connections
Data [required]
The 3D scalarfield from which the isosurface is generated.
ROI [optional]
Connection to a module providing a region-of-interest, like SelectRoi. If such a module is connected, only the selected part of the volume will be displayed.
Colormap [optional]
Colormap used to visualize the data.
Ports
Colormap
The larger this number, the better the image quality and the less the rendering performance. A low
number of slices will create holes in the surface.
Threshold
Isovalue to be rendered.
368
7.5
LDAExpertSettings
The LDA technology is a multi-resolution data manager that allows the loading of extremely large data
sets (hundreds of gigabytes) with interactive navigation. This makes it ideal for interactive exploration
of very large volumes.
The LDAExpertSettings module allows you to control various parameters in order to optimize the
reading and display of the data depending on the capabilities of the hardware being used amount of
system memory, the graphics card, the number of CPUs, etc.
In order to create the LDAExpertSettings module, choose Others/LDAExpertSettings from the main
windows Create menu.
A number of the settings that can be set using this module can also be set using the LDA tab of the
Edit/Preferences dialog. They are:
View culling
Viewpoint refinement
Move low resolution
Loading policy
Main memory amount
Texture memory amount
In the Preferences dialog the corresponding item is identified as Video memory amount.
A change specified in this module will be reflected in the Preferences dialog, and vice versa.
Ports
VisualFeedback1
LDAExpertSettings
369
Texture Front Outline: Draw tile outlines for all primitives. The tile outlines of tiles of full
resolution are drawn with a brighter gray for the volume, and a brighter green for the slices.
Data Front Outline: Show tiles loaded in main memory. This implies showing the multiresolution topology. The tile outlines of tiles of full resolution are drawn with a brighter
yellow.
Valuation Outline: Displays an octree representation showing the status of the octree. Red
dots are tiles that have been valuated. Blue indicates the minimum and maximum resolution
thresholds. Yellow shows the octree itself.
Options1
View Culling: If checked, LDA will not load tiles located outside of the view frustum.
Viewpoint Refinement: If checked, LDA will load tiles of higher resolution close to the
viewpoint.
Screen Resolution Culling: If checked, LDA will only load only load tiles for which the
projection of a voxel is greater than or equal to 1 pixel on screen. This avoids unnecessary
loading of high resolution data.
Options2
Slice Equal Resolution: If checked, all tiles on a slice will be taken from the same resolution
level.
Move Low Resolution: If checked, LDA will use a lower texturing resolution when the user
is interacting with the scene.
Ignore Fully Transparent Tiles: If checked, LDA will not load fully transparent tiles (i.e.,
if all voxels within the tile have an alpha value of 0).
Num loading threads
Number of separate threads used for tile loading. Using more threads can increase performance on
multiprocessor machines.
Loading policy
LDA loads the data asynchronously using separate threads. The loading policy allows you to specify
370
when the loading threads should load the data into main memory. No interaction means the threads
will only load data when there is no user interaction. Always is at any time. Never means no more
data loading will occur.
Fixed resolution
If set, LDA will only load tiles from the specified resolution level (specified using the Fixed resolution level port).
Fixed resolution level
Resolution level for the fixed resolution mode.
Main memory:
Amount in MB
Specifies how much main memory (in MB) LDA can use to cache data.
Notification rate
LDA will redraw after a certain number of tiles are loaded into memory. This slider allows you to
specify this number of tiles.
Texture memory (volumes):
Amount in MB
Specifies how much texture memory (in MB) LDA can use for the volume (3D textures).
Texture load rate
Specifies the maximum number of textures to load into texture memory between two frames.
Texture memory (slices):
Number of textures
Specifies how much texture memory is allowed in MB for slices (2D textures).
Texture load rate
Specifies the maximum number of textures to load into texture memory between two frames.
LDAExpertSettings
371
7.6
ObliqueSlice (LDA)
The ObliqueSlice (LDA) module lets you display arbitrarily oriented slices through a 3D scalar field of
any type, as well as through an RGBA color field or a 3D multi-channel field.
The module is derived from ArbitraryCut. See the documentation of the base class for details about
how to adjust position and orientation of a slice. Like in the OrthoSlice (LDA) module, two different
methods are supported to map scalar values to screen colors, namely linear mapping and pseudocoloring.
Connections
Data [required]
The 3D field to be visualized. 3D scalar fields, RGBA color fields, or 3D multi-channel fields are
supported. The coordinate type of the input data doesnt matter. The data will be evaluated using
the fields native interpolation method (usually trilinear interpolation).
Colormap [optional]
The colormap used to map data values to colors. This port is ignored when linear mapping is
selected, or when the module is connected to an RGBA color field or to a 3D multi-channel field.
Ports
Frame
This port is used to display or hide the frame, set the frame width and color.
Orientation
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, and xz perpendicular to the x-axis.
Options
If the adjust view toggle is set (set by default), the camera of the main viewer is reset each time a
new slice orientation is selected. Please note also that adjust view is enabled by default when the
module is the first planar module in the pool.
With the rotate toggle you can switch the rotate handle for the cutting plane on and off.
If the immediate toggle is set, the slice is updated every time you drag it with the mouse in the 3D
viewer. Otherwise only the bounding box of the cutting plane is moved and the update takes place
when the mouse button is released.
372
The fit to points toggle lets you reset the plane by clicking on at least 3 different points in the scene.
After enabling this toggle, you should switch to interaction mode by pressing the ESC-key inside
the viewer. Then click 3 times at different points on any geometry in the scene. The plane then will
be automatically adjusted to match these points. The virtual trackball - visible when rotate toggle
is active - will be moved to the center of the picked points. After 3 points have been picked, this
toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking allows you to
select more than 3 points. In this case the plane that best fits the selected points will be computed.
The exact plane def. toggle lets you to show/hide exact plane definition ports.
If the lighting toggle is set, the slice is lit.
Slice Options
If equal resolution is set (unset by default), all ortho slices and oblique slices are drawn using the
same resolution. When no color table is not set (default), when editing the colormap, the rendering
speed is faster and the color interpolation is better. This option uses shaders so it may be very slow
on old graphic boards.
Interpolation
Specifies interpolation type (nearest value or linear interpolation). Multi samples computes a
weighted value from 12 neighbors.
Mapping Type
This option menu controls how scalar values are mapped to screen colors. In the case of a linear
mapping a user-defined data window is mapped linearly to black and white. colormap can be used
to activate pseudo-coloring. The port is hidden if the the module is connected to a color field or a
multi-channel field.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible data
values. Values below the lower bound are mapped to black, while values above the upper bound are
mapped to white.
Colormap
This port is displayed if colormap is selected. Choose a colormap to map data to colors.
ObliqueSlice (LDA)
373
Translate
This slider allows you to select different slices. The slices may also be picked with the mouse and
dragged directly in the 3D viewer.
Transparency
This radio box port determines the transparency of the slice. The option is only available if the module is connected to an RGBA color field. None means that the slice is fully opaque. Binary means
that black parts are fully transparent while other parts are opaque when using linear mapping or
that only fully transparent parts are transparent while others are fully opaque when using colormap
mapping.. Alpha means that opacity is taken as is.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled. Specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
Channels
This port is displayed if the module is attached to a 3D multi-channel object. It allows you to toggle
individual channels on or off. Each channel is mapped using a linear intensity ramp. The data
window for each channel can be adjusted in the multi-channel object itself.
Plane definition
374
Commands
All commands described for ArbitraryCut can be applied to ObliqueSlice (LDA) as well.
createImage <image base name>
This command creates a 2D image from the oblique slice and adds it to the Pool. The image base
name can be omitted.
7.7
OrthoSlice (LDA)
The OrthoSlice (LDA) module is an important tool for visualizing scalar data fields defined on uniform
Cartesian grids, e.g., 3D image volumes. Such data are visualized by extracting an arbitrary axisaligned slice out of the volume. The data values can be mapped to colors or gray levels by one of
two mapping methods. The most simple mapping technique uses a linear gray ramp together with two
threshold values. This range determines which data values are mapped to black and which are mapped
to white. As a second mapping method, an external colormap can be used in OrthoSlice (LDA).
The OrthoSlice (LDA) module is also capable of extracting slices of an RGBA color field or of a 3D
multi-channel field. In these cases the slices are displayed as is and no mapping method need to be
chosen.
Connections
Data [required]
The 3D field to be visualized. Currently, regular scalar fields, multi-channel fields, and RGBA color
fields with uniform or stacked coordinates are supported.
Colormap [optional]
Optional colormap used to map scalar data to colors. This port is hidden when linear or histogram
mapping is selected. See also Colormap.
OrthoSlice (LDA)
375
Ports
Frame
This port is used to display or hide the frame and to set the frame color.
Orientation
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Options
If the adjust view toggle is set (unset by default), the camera of the main viewer is reset each time
a new slice orientation is selected. Equal resolution is false by default. When it is set, all ortho
slices and oblique slices are drawn using the same resolution. When lighting is set (set by default),
the display appears lit. When no color table is not set (default), when editing the colormap, the
rendering speed is faster and the color interpolation is better. This option uses shaders so it may be
very slow on old graphic boards. Please note also that adjust view is enabled by default when the
module is the first planar module in the pool.
Interpolation
Controls whether interpolation is nearest or bilinear. Multi samples computes a weighted value
from 12 neighbors.
Mapping Type
This option menu lets you select between two different mapping methods, namely a linear gray
ramp and colormap mode. The port is not available if the OrthoSlice (LDA) module is connected to
an RGBA color field or to a 3D multi-channel field.
Data Window
This port is displayed if linear mapping is selected. It allows you to restrict the range of visible
data values. Values below the lower bound are mapped to black, values above the upper bound are
mapped to white. In order to quickly change the data window a ContrastControl module can be
attached to the OrthoSlice (LDA).
376
Colormap
This slider allows you to select different slices. The slices may also be picked with the mouse and
dragged directly in the 3D viewer.
Transparency
This radio box port determines the transparency of the slice. None means that the slices are fully
opaque. Binary means that black parts are fully transparent while other parts are opaque when using linear mapping or that only fully transparent parts are transparent while others are fully opaque
when using colormap mapping. Alpha means that opacity is proportional to luminance. If a colormap is used for visualization, opacity values are taken from there.
Embossing
Enables/disables embossing. This rendering technique (also known as bump mapping) emphasizes gradient changes in the data on the slice. Note that this feature requires programmable shader
support in the graphics hardware.
Embossing Factor
This port is displayed if embossing is enabled. Specifies the intensity of the embossing effect.
Default value is 0 (no embossing). Values can be positive or negative. Note that this feature requires
programmable shader support in the graphics hardware.
Channels
This port is displayed if the module is attached to a 3D multi-channel object. It allows you to toggle
individual channels on or off. Each channel is mapped using a linear intensity ramp. The data
window for each channel can be adjusted in the multi-channel object itself.
Commands
createImage <image base name>
This command creates a 2D image and adds it to the Pool. The image base name can be omitted.
OrthoSlice (LDA)
377
7.8
SEG-Y Wizard
The SEG-Y Wizard tool allows you to control the import of SEG-Y post-stack data as it is being loaded
into Avizo prior to conversion into LDA file format.
You can use it to:
There are many variations in SEG-Y files, particularly in where key bits of info are stored in the file
header and more importantly in the trace header. Unfortunately, it is not always possible to determine
algorithmically where certain info is stored, and sometimes human intervention is required to provide
information about the data.
With the SEG-Y Wizard, it is possible to provide this info, allowing the SEG-Y data to be correctly
extracted from the file.
Another important capability of the SEG-Y Wizard is the ability to set the coordinates associated with
the corners of the survey. For many purposes, youd like to know where the survey is actually located
with respect to geo-referenced coordinates. Normally there is some information in the file about this,
although not always in the same place, or possibly not interpreted correctly. The Wizards Coordinate
setting panels lets you adjust the coordinates associated with the corners of the survey.
When you start to load a SEG-Y data file, Avizo asks if you want to start the SEG-Y Wizard. If you
click Yes, the SEG-Y Wizard starts up. (If you click No, the older SEG-Y file reader is used.)
If a file with the same name and the extension .lda already exists in the same directory, you will be
asked if you want to overwrite the file. If you answer yes, the file is overwritten and the Wizard is
displayed. If you answer no, the Wizard is not displayed and the file is not loaded.
You can use the Next and Back keys to navigate between the panels of the Wizard, or you can use
the left navigation pane to go directly to a specific panel.
When you click the Finish button on the SEG-Y Wizard, your SEG-Y file will be converted to LDA
format (this may take some time for a large file) and the default seismic visualization modules will
appear in the Pool. These include inline, crossline, and time slices as well as seismic axes.
Textual Header
This panel displays the text header of the SEG-Y file. You can specify the text encoding: ASCII or
EBCDIC. If the displayed text is unreadable (garbage characters) using one encoding, try using the
other.
Binary Header
This panel displays values from the binary file header. By default only the most common values are
378
displayed. However, you can request that all values be displayed by clicking on the All values radio
button.
If the values shown in this panel do not seem reasonable, try switching the byte order from Big Endian
to Little Endian (or vice versa) using the radio buttons at the top of the panel.
You can modify the start byte position for certain information in the file. Sometimes this is necessary
if the file is not interpreted correctly by default.
The tooltip for the data sample format code provides valuable information regarding the format code
values and their meanings.
Trace Header
This panel displays values from the trace header. By default only the most common values are displayed. However, you can request that all values be displayed by clicking on the All values radio
button.
The header for trace 1 is displayed by default. However you can use this panel to display the info for
any trace by using the slider and/or the numeric field to specify the trace number.
You can modify the start byte position for certain information in the file. Sometimes this is necessary
if the file is not interpreted correctly by default.
The Format column allows you to specify the storage format (8-, 16-, or 32-bit integer, IBM float or
IEEE float) for each item in the trace header.
When you click Next, the Wizard will automatically scan all of the trace headers to determine (for
example) the ranges of the inlines and crosslines. Press the Abort Scan button to stop this operation.
Inline/Crossline/TimeLine
This panel allows you to correct the range and step values if they were not interpreted correctly by the
SEG-Y file reader.
Coordinate Setting
This panel allows you to review the surveys geographic coordinates extracted from the file and, if
necessary, correct them.
Preview
This panel displays a 2D preview of your seismic data. You can specify the first trace number as well
as the number of traces to display.
Data Conversion
This panel allows you to convert your data to one of several output formats: 8-bit signed or unsigned,
16-bit signed or unsigned, 32-bit signed or unsigned, or float. The format shown initially is the original
data type of your input data.
You can specify that the minimum and maximum values be determined from the data itself, or you can
supply these values yourself. Normally these values are only important if you are converting to a data
SEG-Y Wizard
379
type that has a smaller fixed range of values. You may find the min and max values in the text header.
The Add Standard Visualization Tools check box allows you to turn off automatic generation of the
default seismic modules. By default, the following modules are connected to your data set: BoundingBox, SeismicAxis, Inline, Crossline, TimeSlice, SelectRoi, and CroppedVolume. These latter two
objects have their visibility in the viewer toggled off initially because volume rendering can be expensive.
TIP: If the slices appear to be low resolution data, the LDA Main Memory may be set too low to allow
loading full resolution data for all slices. You can try turning off some of the slices or adjust the Main
Memory setting higher on the LDA tab of the Edit/Preferences dialog.
7.9
SelectRoi (LDA)
This module defines a region-of-interest with the shape of an axis-aligned 3D box. This box can be
used to restrict the output of many visualization modules like VoltexHighQuality, OrthoSliceLDA, and
ObliqueSliceLDA.
Connections
Data [required]
Connection to a 3D data object which defines the maximum size of the region-of-interest. Only the
bounding box of the data object but not the data itself is interpreted by this module.
Ports
Controlling
Voxels within the ROI are rendered; voxels outside the ROI are not rendered. The ROI box and the
subvolume box are specified in slice coordinates. The limits are included in the ROI. The region
defined by the ROI box always acts upon the region defined by the subvolume, not the entire volume.
For example, in exclusion mode (see the Cropping port), the visible portion of the volume is the
subvolume region minus the ROI box region. You are allowed to set the ROI box region larger
than (or completely outside) the subvolume region, but only the intersection of the two regions is
significant.
Minimum
380
Maximum
If the option show dragger is enabled, a tab-box dragger is shown which allows you to interactively
adjust the region-of-interest in the 3D viewer.
Cropping
The crop box is defined by three sets of parallel planes that define three slabs:
Four cropping options are available: Subvolume, Exclusion, Cross, and Fence.
Subvolume Displays voxels inside the ROI.
SelectRoi (LDA)
381
(Xmin, Xmax), or
(Ymin, Ymax), or
(Zmin, Zmax).
382
Size
7.10
VoltexHighQuality
Direct Volume Rendering is a very intuitive method for visualizing 3D scalar fields. Each point in a
data volume is assumed to emit and absorb light. The amount and color of emitted light and the amount
of absorption is determined from the scalar data by using a colormap which includes alpha values.
Then the resulting projection from the points in the data volume is computed. Default colormaps for
volume rendering are provided with the distribution and can be edited using the colormap editor.
This module provides you with a hardware-accelerated implementation, which uses 2D or 3D texture
hardware, to allow for real-time rendering. Using this module on platforms without this acceleration
can be extremely slow. Rendering consists of drawing slices from back to front and compositing them
according to the composition port. These slices are textured polygons, whose textures are computed
by using the data and the current colormap.
Connections
Data [required]
The 3D scalarfield to be visualized. Alternatively an RGBA data volume (Colorfield) can be connected. In this case no colormap is used, but the color and opacity values are taken directly from the
data. As a third mode, the module can operate on multi-channel fields. Here the transfer function
VoltexHighQuality
383
for each channel is computed automatically based on the channels native color, the channels data
range, and the value of the Gamma port (see below).
ROI [optional]
Connection to a module providing a region-of-interest, like SelectRoi. If such a module is connected, only the selected part of the volume will be displayed.
Colormap [optional]
Colormap used to visualize the data.
Ports
Render style
Volume rendering consists of drawing slices from back to front and compositing them according to
the Composition port. Volume skin is a cubic shape made of textured polygons whose textures are
computed using the data. Both use the colormap for rendering.
Performance
Move low resolution enables rendering at a lower resolution when moving, resulting in a smoother
animation. Full optimizations discards completely transparent volume area and enables some more
advanced fragment discarding (early-z...)
Rendering
384
Composition
Specifies color composition type. Alpha composes the slices by blending the R, G, B components
for each pixel based on their alpha values. Sum adds slice colors along the viewing axis. (Not
available on VolumePro hardware.) Max draws the maximum intensity for each pixel drawn along
the viewing axis. Min draws the minimum intensity for each pixel drawn along the viewing axis.
Interpolation
Specifies volume data interpolation type (nearest value or linear interpolation or cubic interpolation).
Range
This port is only available if the module operates on a 3D scalar field and no colormap is connected.
In this case data values are mapped according to this range. Values smaller than the minimum are
mapped to completely transparent (no absorption and no emission). Values larger than the maximum
appear completely opaque and emit the maximum amount of light. Values in between are mapped
proportionally.
Lookup
Only available if a colormap is connected. In Alpha mode, the colormaps alpha value is used for
both absorption and emission. In LumAlpha mode, the colormaps alpha value is used for absorption, while the luminance is taken for (uncolored) emission. In RGBA mode, colored images are
generated by using all four channels of the colormap.
Colormap
VoltexHighQuality
385
Controls the shape of the transfer function when multi-channel fields are visualized. The opacity
value is taken to be = x , x = 0 . . . 1 (proportional to data values). The smaller the gamma value
is, the more prominent regions with small data values will be.
Alpha scale
A global factor to change the overall transparency of the object independent of the data value.
Texture mode
2D texture mode requires some precomputation time but also works on machines which do not
support hardware-accelerated 3D texturing, e.g., SGI O2. 3D mode requires less setup time and
sometimes provides superior quality on high-end machines.
Number of slices
Only available in 3D texture mode. The larger this number, the better the image quality and the less
the rendering performance.
Illumination
Lighting indicates if lighting is required. Default is false. Note that activating or deactivating
lighting when using 2D/3D texture rendering might force the textures to be recreated, which may
be slow. limitations: Underlying VolumeViz rendering engine does handle only a single light. So
only the first light (ie. the headlight if enabled or the first created light if not) will be used. More
over only directional lights are supported.
Edge enhancement fakes lighting by detecting edge.
Boudary opacity fakes lighting by darkening volume boundaries.
Illumination options
Illumination quality goes from low to high, it is used by illumination rendering (lighting, edge
enhancement and boundary opacity). Computational cost increase with chosen quality.
Bright lighting enables brighter lighting model (enable only when using lighting).
Edge coloring
Gradient threshold controls whether or not a voxel is darken. Areas facing the camera will have an
386
unmodified color, whereas areas where the normal is more perpendicular to the view direction will
tend towards black. Lower gradient threshold gives stronger edges.
Boundary opacity
Boundary opacity increases opacity depending on the length of the gradient vector. Areas with
large gradient changes (greater than threshold) will have their opacity increased according to given
intensity.
Edge 2D
Apply an image space filter to the renderer volume in order to detect edges, which will be highlighted.
Commands
verbose {0|1}
If value is 1, additional messages for debugging are printed.
VoltexHighQuality
387
388
Chapter 8
AlignSurfaces
This module computes a rigid transformation (6 degrees of freedom) to align two triangulated
surfaces. Several different alignment strategies are implemented:
Minimization of the root mean square distance between the points of the model surface to corresponding points on the reference surface (often referred to as Procrustes method):
the corresponding points will be the closest points on the reference surface in the Euclidean
measure. The iteration of this process is called the iterative closest point algorithm (ICP). If
fixed correspondences have been pre-computed by some other method, these can be used alternatively.
Alignment of the centers of mass: all nodes of the triangulations are assigned the same mass.
Alignment of the principal axes of the inertia tensor: since the principal axes are defined modulo
orientation (see also AlignPrincipalAxes), the final solution is the one with the minimum root
mean square distance.
Connections
Data [required]
Surface to be transformed onto the reference.
Reference surface [required]
Reference surface to be aligned to.
ROI [optional]
Connection to a module defining a region of interest.
Ports
Options
Offers the possibility to iterate the process of finding the closest points on the reference surface
(ICP) and to use pre-determined correspondences, if existent.
Trafo
Changes the number of degrees of freedom to be optimized. AlignSurfaces performs linear alignment between two surface meshes x and y. The expression |y (Ax + b)| is minimized over all
transformations (A,b) where A is a matrix and b the translation vector.
rigid: A is a rotation matrix only
rigid + uniform scale: A contains rotations and a uniform scale factor
affine: A is an arbitrary matrix (includes non-uniform scaling)
Stop
Stopping criteria for the ICP algorithm: either a given value for the root mean square distance
relative to its value in the first iteration, or a maximum number of iterations.
Align
8.2
BoundaryConditions
The Boundary Conditions module visualizes boundary conditions defined in a tetrahedral grid for a
finite elements simulation.
Visible faces are stored in an internal buffer similar to the GridVolume module. Likewise, the selection
domain can be restricted interactively by adjusting a selection box. Ctrl-clicking on a face makes it
invisible.
Connections
Data [required]
The tetrahedral grid to be visualized.
390
Ports
Bound.cond.id
This port provides a menu where all boundary condition ids occurring in the input grid are listed.
Faces belonging to the selected id are displayed using a red (highlighted) wireframe in the viewer.
You may crop the faces by turning the viewer into interactive mode and move the green handles of
the selection box. Only the faces inside the bounding box can be added to the buffer.
Buffer
The Buffer buttons give you some control of the internal face buffer of the BoundaryConditions
module. Only the faces present in the buffer are displayed according to the current drawing style.
The Add button adds the highlighted faces to the buffer. The Remove button removes highlighted
faces from the buffer. The Clear button removes all faces from the buffer. The Hide button deselects
all faces but does not change the buffer.
Draw Style
This option menu lets you select between different drawing styles:
8.3
ComponentField
This class is a special data object which helps you to analyze uniform complex scalar fields. The
class itself is a uniform real scalar field. However, it can be attached to a complex scalar field like
an ordinary display module. The component field provides an option menu allowing you to select
which real quantity should be computed from the complex input values. These real quantities may be
visualized using standard modules like OrthoSlice, Isosurface, or Voltex.
Connections
ComplexField [required]
Complex scalar field for which a real quantity should be computed. Only float and double are
supported as primitive types. Consider using CastField to convert your data first.
ComponentField
391
Ports
Component Field
Specifies the real quantity to be computed. Possible choices are Real Part, Imaginary Part, Magnitude, and Phase. The phase is defined in radians ranging from to .
Shared colormap
In case a colormap is connected to the scalar field, this colormap will be shown here. If no colormap
is connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
8.4
ComputeTensor
This module computes a symmetric second order (diffusion) tensor from a set of N (N 7) diffusion
weighted images. The images must be loaded into memory first and are connected as inputs to this
module.
The gradient information must be entered into the gradient ports for each attached gradient measurement. The first connected data object is assumed to be the data object without gradient information.
If the number of data objects that need to be loaded is a limiting factor because of limited memory,
consider using the ComputeTensorOutOfCore module.
Connections
S0 [required]
This port must be connected to the data set representing the measurement without Gradient.
S1,...,S7 [required]
Further ports attached to data will enable a corresponding gradient information port.
Ports
Diffusion weighting factor
392
smoothing
If enabled, two more ports will allow you to request a Gaussian filtering of the raw data prior to the
computation of the tensor field.
Size
Port allows you to supply a user defined Gradient which is used for the computation of the diffusion
tensor. The order of these ports corresponds to the order of the data objects connected to the module.
8.5
ComputeTensorOutOfCore
This module computes a symmetric second order (diffusion) tensor from a set of N (N 7) diffusion
weighted images. The images must be available on disk as AmiraMesh files. The module will load
them in using Avizos LargeDiskData format, which can handle data sizes above the maximum size of
available main memory.
The gradient measurements and the gradients for a data set are specified by the parameter section of
an AmiraMesh file.
# AmiraMesh3D BINARY 2.0
# define a dummy lattice to make this AmiraMesh valid
define Lattice 1 1 1
Lattice { byte Data } @1
@1
a
Parameters {
BoundingBox -1 1 -1 1 -1 1,
CoordType "uniform",
Data {
ComputeTensorOutOfCore
393
directory "C:/MyData/",
gradients "MyGradients",
# file0 is always the b=0
# measurement (no gradient)
file0 {
name "201/Anonymized.am",
}
# fileN are entries for
# each gradient measurement
file1 {
name "201/Anonymized2.am",
# use the gradient in
# the gradient list with index 0
gradient "0"
}
...
}
MyGradients
1 0 0
0 1 0
...
}
The module creates a tensor data set and two additional fields that contain statistics about the quality
of the tensor fit. The correlation field contains the correlation of the tensor diffusion values with the
diffusion values in the raw data (per gradient direction). A large value indicates that the tensor fits
the raw data well. The Bingham statistics ensure that the diffusion tensor is statistically different from
a uniform distribution (see Benger et al. Visualizing Neuronal Structures in the Human Brain via
Diffusion Tensor MRI, Journal of Neuroscience, 2006).
Connections
Specification [required]
Connect an AmiraMesh file which contains the specification for the computation in its parameter
section.
Mask [optional]
Connect a scalar field like a label field to specify for which material the tensors should be computed.
This will remove the undefined tensors in parts of the data.
394
Ports
Diffusion weighting factor
Diffusion weighted factor (b-value, after LeBihan et al.,1986) which is defined by the gradient
sequence used to generate the gradient images. In this version only a single b-value can be assigned
to all volumes of the measurement sequence.
MaskExpr
An expression to select a specific region in the data. This port is only visible if a scalar field
is connected to the Mask port. If a label field is connected, you can select a material by using
an expression like A==1 which would select the first non-exterior material region for the tensor
computation.
8.6
ConePlot
ConePlot is a display module that can be attached to a vector field. It visualizes scalar and complex
vector fields by colored objects (cones) pointing in the direction of the local flow. The cones can be
animated to generate a sequence of cones walking through the vector field.
The module features SelectRoi, Colorfields, and arbitrary shapes to be displayed instead of cones.
The module can also generate a density based on the cone positions over time.
ConePlot setGhostDims 30 30 30
ConePlot generateGhost
The module uses a Gaussian kernel with a variance of a tenth of the maximum bounding box size of
the volume. This option is computationally very expensive.
The module also exports the path of the cones as a LineSet. To generate the LineSet, call:
ConePlot saveAsLineSet
in the Avizo console window. The LineSet is computed with a data entry per LineSet point which
represent the magnitude of the vector at this position.
ConePlot uses Open Inventor render caching. All animation steps are computed beforehand and then
played back by making the appropriate parts of the scene visible. This technique requires little CPU
computation but larger amounts of memory and a fast graphics card. Because of the caching step, the
first pass through the animation may be slow but subsequently render passes speed up.
Press the Apply button to recompute the animation or the single plot.
Notice that ConePlot is only provided for backwards compatibility since it has been replaced by the
ParticlePlot module.
ConePlot
395
Connections
Data [required]
The 3D vector field to be visualized. It can be either 3 or 6 floats per voxel. This module works
therefore with arbitrary grid topologies by sampling them uniformly.
Colormap [optional]
Port to connect a colormap object. The color is computed from the magnitude of the vectors.
Animate [optional]
Attach a Time object to control the Animate slider. Please make sure that the range of the time slider
is set to integers and that 0 is within that range.
ROI [optional]
Connect a region of interest to the module and the cones will only be generated inside this region.
This helps in exploring complicated vector fields.
Colorfield [optional]
Instead of the vector field applied, the module will use a second scalar field to color the cones.
Shape data [optional]
Supply a custom shape to be replicated instead of cones. Basically any geometry displayed in Avizo
can be used. Be careful not to use very complex objects because the number of triangles used in
this case can be a limiting factor for the speed of the animation.
Ports
Resolution
Provides three text inputs defining the resolution of the regular array of cones in the local x- y- and
z-direction. The larger these values are, the more cones are displayed.
Colormap
Port to select a colormap. The color is computed from the magnitude of the vectors.
Complex phase angle
396
This port will only be visible if a complex-valued vector field is connected to the module. It provides
a phase slider controlling which part of the complex 3D vectors is visualized by the arrows.
y(t)
cos(phase)Re(x(t)) + sin(phase)Imag(x(t))
(8.1)
A value of 0 degree corresponds to the real part, while a value of 180 degrees corresponds to the
imaginary part. The display can be animated with respect to the phase by the Animate port. This
way polarization properties of the field can be revealed or wave phenomena become visible.
Threshold
Any cone is removed from display which would be placed on a position with a vector length smaller
than this threshold. Using this option you can thin-out parts of the volume, e.g., regions which
would contain cones that never move.
Options
The current implementation uses Euler integration and this defines the step size calculated by
x(t + t) = x(t) + t v(x(t), t),
where x(t) is the position and v(t) the velocity at time t. Please be careful to not work on stiff flow
fields using this method. In general, small values result in higher accuracy and smaller path length
of the cones.
If you set the value of ConesPerStream to > 1, more than one cone is displayed at a time. Together
with the loop mode of the time slider and the BlendIn option set, this creates continuous animations.
ConePlot
397
Animate
This time slider allows you to start and stop animations. If you right-click in the associated text
window you can switch to loop mode which generates an infinitely long animation.
The range of the slider must be set to integer numbers. For example: 0...50 is interpreted as 50 time
steps for the forward integration, or -30...30 is interpreted as 30 steps in both forward and backward
directions. The modules makes sure that the increment is always 1.
Height
For cones this changes their height. If another shape is connected to the module, the port controls
the global scaling of the shape.
Bottom radius
8.7
ContourView
This module displays contours of a surface. Contours are typically computed automatically and they
are defined to be the boundaries of patches. If a surface contains no contours, this module will not
display anything. You can automatically compute contours by using the recompute command of the
Surface.
This module is mostly useful for developers.
Connections
Data [required]
The underlying surface data.
Ports
Index)
398
8.8
CreateGradientImage
Module computes the bi-linear form of a given vector and an input tensor field.
The bi-linear form is transformed to a diffusion weighted image that is suitable as input to ComputeTensor.
Connections
Data [required]
Connect a symmetric second order tensor field.
Mask [optional]
Specifies which voxel (non-Exterior) should be used to compute the bi-linear form.
Ports
Data
Specifies which voxel (non-Exterior) should be used to compute the bi-linear form.
Gradient
Specify a gradient direction. The gradient direction is normalized to one before used by the module.
BValue
Either the data input type or a 16bit integer is used to exported the data.
Scale output
CreateGradientImage
399
MaskExpr
This expression is evaluated for each voxel. If true (!0) the bi-linear form is evaluated.
8.9
Displace
This module takes a displacement vector field defined on a tetrahedral or hexahedral grid or on a
surface and creates a mesh with translated vertices. For example, if a surface vector field is used as
input a new surface with modified vertex coordinates is computed. The displacement vector field must
be defined on the vertices of the mesh. Other encodings are not supported. The new position of a vertex
is computed by adding the scaled displacement vector defined at that vertex to the original position.
The scaling factor can be adjusted globally for all vertices using the Scale port.
Press the Apply button to start the computation.
Connections
Data [required]
The input vector field.
Ports
Number of vectors
Scaling factor applied to the displacement vectors ranging from 0 (no displacement) to 1 (full displacement).
8.10
DisplayISL
This module visualizes a 3D vector field using so-called illuminated stream lines (ISL). This technique
was first presented on the Visualization 96 conference. More details are described in M. Zockler,
D. Stalling, H.-C. Hege, Interactive Visualization of 3D-Vector Fields using Illuminated Streamlines,
Proc. IEEE Visualization 96, Oct./Nov. 1996, San Francisco, pp. 107-113, 1996.
The module computes a large number of field lines by integrating the vector field starting from random
seed points. The lines are displayed using a special illumination technique, which gives a much better
400
spatial understanding of the fields structure than ordinary constant-colored lines. In order to execute
a script demonstrating this module click here.
The functionality of DisplayISL can be extended by means of the SeedSurface module.
To initiate distribution of seeds and recomputation of field lines, press the Apply button. Once the
incoming vector field has changed or you have modified the number of field lines or the lines length,
you must press Apply again in order to update the display.
Connections
Data [required]
The vector field to be visualized. Since a procedural data interface is used, all types of vector fields
are supported (e.g., fields on regular or curvilinear grids, as well as procedurally defined fields).
ColorField [optional]
An optional scalar field which, if present, will be used for pseudo-coloring. Often it is useful to
create a scalar field from the vector field using the Magnitude module.
AlphaField [optional]
An optional scalar field which can be used to control the lines opacity locally.
Distribution [optional]
Either an optional scalar field which can be used to control the distribution of seed points, or a
vertex set that is used as seed points.
Colormap [optional]
The colormap used to encode the color field. Will only be visible if a color field is connected to this
module.
Ports
Color
This port is visible if no color field is connected to the module and it allows to change the color of
the ISLs. Clicking on the icon opens a Color Dialog where the color can be set.
Colormap
The optional colormap. This port is visible only if a color field is connected to the module.
Num Lines
DisplayISL
401
Number of field lines to be displayed. The technique typically gives the best results with a rather
large number of lines (e.g., 100-500). Note however that on systems with slow 3D graphics without
texture hardware, having large number of lines can slow down rendering speed significantly.
Length
The length of the field lines, or more precisely, the number of atomic line segments, in forward
respectively backward direction. The lines may stop earlier if a singularity (i.e. zero magnitude)
is encountered or if the fields domain is left. By default lines are traced the same distance in the
forward and backward direction. You may use the command setBalance to change this behavior.
Opacity
Base opacity factor of the lines. A value of 1 produces completely opaque lines, while 0 results in
fully transparent lines.
Fade Factor
This port controls how fast opacity decreases along field lines if fade mode is enabled. The first
atomic line segment will be assigned the base opacity set in port Opacity. The opacity of each
successive segment will be multiplied by the value of this port. This is useful in order to encode the
directional sign of a vector field. The vector field points in the direction of increasing transparency.
Step size
Integration step size of the ODE solver. This value will be multiplied with the diameter of the fields
bounding box.
Seed
The value of this port is used to generate random number which will be used for distribution of the
seed points. A value of 0 means that a different random distribution of the seed points is used for
each successive calculation.
Alpha Window
This port will only be visible if fade mode is disabled and if an alpha field is connected to the
module. In this case the alpha fields values are mapped to opacity according to the range specified
by this port. At locations where the alpha field is equal to or smaller than min, field lines will be
402
completely transparent. Likewise, at locations where the alpha field is equal to or greater than max,
field lines will be completely opaque.
Options
Clicking on XformBox or TabBox brings up a 3D dragger in the 3D Viewer. This allows you to
restrict the region of interest, i.e. the region in which seed points are placed, by interactively transforming the dragger (Remember to switch the viewer into interaction mode by pressing ESC). After
changing the box, you must press Apply to trigger recalculation.
Dist Res
This port can be used to adjust the resolution of the distribution scalar field that is internally used
for the stochastic seeding. Larger numbers (higher resolution) allows for more detailed seeding. It
is only visible if proportional or equalized distribution has been choosen.
Distribute
This port provides an option menu specifying how seed points are distributed inside the seed box.
By default a homogeneous distribution will be used. Alternatively, seed points may be distributed
according to the vector fields magnitude or according to the value of the distribution field, if such
a field is connected to the module. The equalize option provides a mixture of homogeneous and
proportional seed point distribution.
Display box
This port is only displayed in projection mode. This port controls the projected seed box of the
lines. The seed box is composed of a black shape representation and small green boxes that handle
the manipulation. Pressing reset resizes the box to the bounding box of the connected data.
When using projection (see HxProjection), only the lower left corner of the green boxes is used to
compute the projected shape. Other boxes wont be synchronized with the box geometry.
DisplayISL
403
Box center
This port is only displayed in projection mode. This port controls the center of the seed box.
When using projection, it can happen that the value entered is invalid. In that case, the old value is
displayed again.
Box scale
This port is only displayed in projection mode. This port controls the scale factor of the seed box.
When using projection, it can happen that the value entered is invalid. In that case, the old value is
displayed again.
8.11
Divergence
The Divergence module computes the divergence of a vector field consisting of floats defined on a
uniform grid. The output is a uniform scalar field.
divV =
Vx
Vy
Vz
+
+
x
y
z
Connections
Data [required]
Vector field defined on a uniform grid (UniformVectorField3). The vector components must be
floats.
8.12
DuplicateNodes
This module takes a labeled tetrahedral grid as input and produces a new grid with all nodes on interior
boundaries being duplicated. Interior boundaries can be visualized using module GridBoundary. They
consist of all triangles incident on two tetrahedra with different labels. Duplicated nodes are useful to
represent discontinuities within a vector field, e.g., an electric field on a tetrahedral patient model. On
an interior boundary such a field may have multiple values - one for each incident material subvolume.
Connections
Data [required]
A tetrahedral grid without duplicated nodes.
404
Ports
Action
Button duplicate nodes causes a new output grid with duplicated nodes to be computed.
8.13
EigenvectorToColor
This module creates a color representation of the connected vector field. It also needs to be connected
to a second vector field which first component will be used as a weighting of the color per voxel.
Connected to the first eigenvector of a tensor field and a vector field representing the eigenvalues (both
produced by ExtractEigenvalues) this module will generate a color representation which describes the
directions of the first principal direction of the tensor field by a color code.
The output of this field is a regular color field. It contains in its components:
(red) |e1 (x)|F A
(green) |e1 (y)|F A
(blue) |e1 (z)|F A
(alpha) the fractional anisotropy F A =
1
2
(1 2 )2 +(2 3 )2 +(1 3 )2
1 +2 +3
The alpha channel is scaled from 0 to 255 as well as the three element vector containing the red, green,
and blue component.
Connections
Data [required]
The largest eigenvector (pca1) of a tensor field.
Eigenvalues [required]
The length sorted eigenvalues of the tensor (a 3 element field).
Mask [optional]
A label field which can be used in order to calculate the color data for one or more selected materials.
For example, one can exclude the background from the computation. See MaskExpr below.
Ports
MaskExpr
EigenvectorToColor
405
This field is only visible if a mask label set is connected to the data. The expression selects a specific
material or a group of materials from the connected label set. Example are: A!=0 to exclude the
exterior or A==3 to select the fourth material from the material list of the Segmentation Editor
display of the mask.
Exposure
Controls the exposure e of the color representation. Larger values will make the images brighter. It
is computed as:
Cr=x,g=y,b=z = (1 exp (|e1 (x, y, z)|F A) e)255
(8.2)
where C is the value assigned to the color component, e1 is the connected first principal direction
(pca1) and F A describes the fractional anisotropy computed from the connected eigenvalues.
8.14
ExtractEigenvalues
This module extracts the eigenvalues from a symmetric tensor of second order. Either the eigenvalues
are returned (in the case of a indefinite tensor) or a singular value decomposition is used to ensure a
positive definite basis.
The result are three vector fields which contain the first, second, and third principal direction and a
three-component field which contains for each direction the corresponding eigenvalue.
Connections
Data [required]
The symmetric tensor field of second order.
Mask [optional]
If you connect a scalar field here, you can specify for which region in the data the module computes
the eigenvalue expansion.
Ports
Options
If positive definite is checked, a singular value decomposition ensures a positive definite basis (for
diffusion tensors). If the checkbox is disabled, an eigenvalue decomposition is performed which
may result in negative eigenvalues.
Output
406
You can specify which output fields should be exported by the module. Note that only the first three
fields are vector fields; the evals field contains the eigenvalues sorted according to size.
MaskExpr
If you connect a scalar field to the Mask input port, this port allows you to specify a region of
interest based on the value of the scalar field. If you connect a label field, an expression like A==1
will select the first non-exterior material and only for this region the eigenvalues and eigenvectors
will be computed.
8.15
FieldCut
The Field Cut module is a tool for visualizing cross sections of a 3-dimensional scalar field defined on
a tetrahedral grid. In general such grid volumes are made up of several materials. A (2-dimensional)
cutting plane has to be defined for this purpose and may be shifted through the (3-dimensional) tetrahedral grid in orthogonal direction, an Orientation port is provided for setting the orientation of the
cutting plane perpendicular to one of the main axes and a Translate port for specifying an orthogonal
translation. FieldCut renders a slice with the values of the scalar field mapped to colors of a connected
colormap. This is called pseudo coloring. The cutting plane is usually clipped to a rectangle. With the
3D viewer in interactive mode you can pick one of its edges and shift it through the grid volume. To
define arbitrary cutting planes you have to set the rotate toggle which makes a rotation handle appear
in the center of the cutting plane. Having turned the viewer into interactive mode you can pick the
handle with the left mouse button and rotate the plane as you please.
Connections
Data [required]
The field of type TetrahedralGrid.
Colormap [optional]
An optional colormap used for pseudocoloring the values of the scalar field on the cutting plane.
Ports
Orientation
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis. See also PortButtonList.
FieldCut
407
Options
If the adjust view toggle is set, the camera of the main viewer is reset each time a new slice orientation is selected.
With the rotate toggle you can switch the rotate handle for the cutting plane on and off.
If the immediate toggle is set the slice is updated every time you drag it with the mouse in the 3D
viewer. Otherwise only the bounding box of the cutting plane is moved and the update takes place
when you release the mouse button.
The fit to points toggle lets you reset the plane by clicking on at least 3 different points in the scene.
After enabling this toggle, you should switch to interaction mode by pressing the ESC-key inside
the viewer. Then click 3 times at different points on any geometry in the scene. The plane then will
be automatically adjusted to match these points. The virtual trackball - visible when rotate toggle
is active - will be moved to the center of the picked points. After 3 points have been picked, this
toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking allows you to
select more than 3 points. In this case the plane that best fits the selected points will be computed.
The exact plane def. toggle lets you to show/hide exact plane definition ports.
Translate
This slider allows you to select different slices. The slices may also be picked and dragged directly
in the 3D viewer.
Colormap
In pseudo-color mode you can switch between two rendering methods by the radio buttons Gouraud
and Texture. See also PortRadioBox.
Gouraud shaded faces have their colors assigned at their vertices. The colors in between
are linearly interpolated. Therefore misleading colors occasionally may occur or colors may
appear to be washed out along the edges of the faces.
Texture mapping means an exact mapping of values to colors in this special case, but with
the drawback of increased computing time if you have no hardware supported for texture
mapping on your machine.
408
Selection
This port maintains a list of materials assigned for cutting. With the selection menu one can select
a single material. The Add button adds a previously selected material to the list and the Remove
button removes the current selected material.
Plane definition
8.16
Gradient
The Gradient module computes the gradient of a field defined on a regular (i.e. uniform, rectilinear,
or curvilinear) grid or on a tetrahedral grid . The output is a vector or tensor field defined on the same
grid. The orientation of the gradient (vector) depends on the setting of port Output. If Force is selected
the negative gradient vector is computed.
gradF =
F F F
,
,
x y z
Connections
Data [required]
Field defined on a regular grid or a vertex based tetrahedral grid.
Gradient
409
Ports
Result type
Selection of the result type. Depending on the type the result may be clamped. For unsigned types
an appropriate offset will be added. This port is only shown if the input type is not float.
Output
8.17
GridBoundary
The Grid Boundary module is a tool for visualizing individual faces of a tetrahedral grid. The faces
may be colored according to an arbitrary scalar field. As the name implies, the module extracts boundaries between tetrahedra of different material type. The particular materials to be shown can be selected
manually. In some cases two materials may have no common faces and nothing will be seen. However, selecting All as the first material parameter and any other material as the second will show the
surface of the second material. Visible faces are stored in an internal buffer similar to the GridVolume
module. Likewise, the selection domain can be restricted interactively by adjusting a selection box.
Ctrl-clicking on a face makes it invisible.
If the ColorField port is connected to a scalar field, an additional colormap port becomes visible and the
faces are drawn in pseudo-color mode. By default the colormap port is not connected to any colormap.
Therefore the grid appears in a constant color. You can click with the right mouse button over the
colormap to get a popup menu of all available colormaps. When a colormap has been connected to the
module, the data values at the vertices of the selected triangles are mapped to their associated colors.
Connections
Data [required]
The tetrahedral grid to be visualized.
ColorField [optional]
Scalar field used for pseudo-coloring the selected triangles. Pseudo-coloring also requires that a
colormap has been connected to the module.
Colormap [optional]
A colormap is used to map the data values of the optional scalar field.
ROI [optional]
Optional connection to an object providing a region-of-interest, e.g., SelectRoi. Only triangles
inside this region will be visualized.
410
Ports
Draw Style
This port is inherited from the ViewBase class and therefore the description will be found there.
In contrast to other modules derived from the ViewBase class this module does not provide the
possibility to consider vertex and direct normals. The triangles will always be drawn flat.
Culling mode
This port becomes visible only if a scalar field has been connected to the ColorField port. For
further details see section Colormap.
Buffer
The Buffer buttons give you some control of the internal face buffer of the GridBoundary module.
Only the faces present in the buffer are displayed according to the current drawing style. The Add
button adds the highlighted faces to the buffer. The Remove button removes highlighted faces from
the buffer. The Clear button removes all faces from the buffer. The Hide button deselects all faces
but does not change the buffer. See also PortButtonList.
Materials
This port provides two menus where all different materials of the input grid are listed. Faces which
belong to the boundary between the selected materials are displayed using a red (highlighted) wireframe in the viewer. You may crop the faces by turning the viewer into interactive mode and move
the green handles of the selection box. Only the faces inside the bounding box can be added to the
buffer, also see PortButtonList.
Color Mode
Here you may choose among several color modes. For details see the module SurfaceView.
GridBoundary
411
Commands
setSelectAllNew {0|1}
If set to 1 all tetrahedra are selected when a new data set has been connected to the Data port. Useful
in a network together with TimeSeriesControl.
8.18
GridCut
The GridCut module is a tool for visualizing a cross section of a tetrahedral grid consisting of different
materials. Within the cross section the different materials are indicated by their respective colors.
The module is derived from ArbitraryCut and thus provides the same methods for manipulating the
position and orientation of the cross section as this base class. An similar module SurfaceCut exists
for displaying filled cross-sections through a surface separating different regions in space.
Connections
Data [required]
The tetrahedral grid to be visualized.
Ports
Frame
This port is used to display or hide the frame, set the frame width and color.
Orientation
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Options
If the adjust view toggle is set, the camera of the main viewer is reset each time a new slice orientation is selected.
With the rotate toggle you can switch on the rotate handle for the cutting plane and off again.
If the immediate toggle is set the slice is updated every time you drag it with the mouse in the 3D
viewer. Otherwise only the bounding box of the cutting plane is moved and the update takes place
when you release the mouse button.
412
The fit to points toggle lets you reset the plane by clicking on at least 3 different points in the scene.
After enabling this toggle, you should switch to interaction mode by pressing the ESC-key inside
the viewer. Then click 3 times at different points on any geometry in the scene. The plane then will
be automatically adjusted to match these points. The virtual trackball - visible when rotate toggle
is active - will be moved to the center of the picked points. After 3 points have been picked, this
toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking allows you to
select more than 3 points. In this case the plane that best fits the selected points will be computed.
The exact plane def. toggle lets you to show/hide exact plane definition ports.
Translate
This slider allows you to select different slices. The slices may also be picked and dragged directly
in the 3D viewer.
Selection
This port maintains a list of materials to be displayed within the cross section. With the selection
menu one can select a single material. The Add button adds the currently selected material to the
list so the that is becomes visible and the Remove button removes the material so that is becomes
invisible.
Export
GridCut
413
Commands
Inherits all commands of ArbitraryCut.
selectMaterial <id1> [<id2> ...]
Selects the materials with the specified ids so that intersections of these materials with the cutting
plane will be shown. You need to call fire before changes take effect.
unselectMaterial <id1> [<id2> ...]
Unselects the materials with the specified ids so that intersections of these materials with the cutting
plane will not be shown. You need to call fire before changes take effect.
8.19
GridToSurface
This computational module parses the connected TetraGrid object type and converts it into Surface
type when you press the Apply button. A green icon representing the generated surface should appear
in the Pool.
Connections
Data [required]
Connect a data object of type TetraGrid object type to be converted.
Ports
Action
By pressing the button Create Surface the surface is created in the Pool. Once the new object has
been created, it is possible to set the boundary IDs back into the input data source by clicking the
button Set boundary ids of input.
8.20
GridVolume (Hexahedra)
The GridVolume module displays an unstructured hexahedral grid, or parts of the grid. Optionally an
independent scalar field can be mapped onto the grid as pseudo-colors. The module behaves almost
identical to the GridVolume module for tetrahedral grids.
414
Connections
Data [required]
Unstructured hexahedral grid to be visualized.
ColorField [optional]
An arbitrary scalar field used for pseudo-coloring.
Colormap [optional]
The colormap used for pseudo-coloring, only used when a color field is connected.
Texture [optional]
The texture field must be an HxUniformColorField3 2D slice. When connected, the texture is
mapped onto the surface geometry along the texture normal axis. A transformation can be applied
to the data to change the texture projection axis and texture coordinates scale. Note that texture
projection override pseudo-color mode.
Ports
Draw Style
GridVolume (Hexahedra)
415
Materials
8.21
GridVolume (Tetrahedra)
The GridVolume module is a powerful tool for visualizing labeled tetrahedral volume grids, e.g., tetrahedral patient models. Views on various sub-grids can be specified, e.g., a view on a sub-grid corresponding to one of the tissue compartments of a patient model. The module maintains an internal
buffer which contains all currently visible tetrahedra. Tetrahedra belonging to a particular compartment can be selected and added to the buffer. Selected tetrahedra are displayed using a red wireframe.
Having been added to the buffer they are displayed in their associated colors. The selection can be
restricted by means of an adjustable selection box. In addition, individual tetrahedra can be removed
from the buffer by Ctrl-clicking on one of their faces, but notice that the viewer must be in interactive
mode for this. Similarly, a simple click on a face adds the tetrahedra in front of it to the buffer.
Connections
Data [required]
The labeled tetrahedral grid to be visualized.
ColorField [optional]
Arbitrary scalar field which is mapped onto the grid volume using pseudo-coloring.
Colormap [optional]
The colormap is used for pseudo-coloring the grid volume.
Texture [optional]
The texture field must be an HxUniformColorField3 2D slice. When connected, the texture is
mapped onto the surface geometry along the texture normal axis. A transformation can be applied
to the data to change the texture projection axis and texture coordinates scale. Note that texture
projection override pseudo-color mode.
ROI [optional]
Optional connection to an object providing a region-of-interest, e.g., SelectRoi. Only triangles
inside this region will be visualized.
416
Ports
Draw Style
This port is inherited from the ViewBase class and therefore the description will be found there.
In contrast to other modules derived from the ViewBase class this module does not provide the
possibility to consider vertex and direct normals. The triangles will always be drawn flat.
Culling mode
This port becomes visible only if a scalar field has been connected to the ColorField port. For
further details see section Colormap.
Texture wrap
Wrap mode used for the texture projection on the surface. There are two wrap modes: Repeat: The
texture is repeated outside its 0-1 texture coordinate range. Clamp: Clamps texture coordinates to
lie within 0-1 range. This port is hidden if there is nothing connected to the Texture connection port.
Buffer
This port lets you add and remove highlighted triangles (being displayed in red wireframe) to an
internal buffer. For a further description and for the functionality of each of the port buttons see
ViewBase.
Materials
This port provides a menu where all materials of the input grid are listed. If you choose a material,
all tetrahedra of that material are selected and displayed using a red wireframe model. You may crop
the selection domain by turning the viewer into interactive mode and moving the green handles of
the bounding box to a position of your choice. Only the tetrahedra inside the bounding box can be
added to the buffer.
GridVolume (Tetrahedra)
417
Color mode
Here you may choose among several color modes. For details see the module SurfaceView.
Commands
getSelectedTetra
Displays a run-length encoded list of all currently selected tetrahedra. The list consists of pairs of
integer numbers. The first number is the index of a selected tetrahedron. The second value denotes
the number of subsequent selected tetrahedra.
setSelectedTetra <list>
Adds some tetrahedra to the internal buffer so that they become visible. The argument is a runlength encoded list like the one displayed by getSelectedTetra.
setSelectAllNew {0|1}
If set to 1 all tetrahedra are selected when a new data set has been connected to the Data port. Useful
in a network together with TimeSeriesControl.
8.22
HexToTet
The HexToTet module converts a hexahedral grid to an equivalent tetrahedral grid. Each hexahedron
is converted to between six and twelve tetrahedra which have the same material ID as the parent
hexahedron. The new tetrahedral grid has the same points as the source hexahedral grid; for some
hexahedrons, an additional inner point is added to ensure that all tetras exactly match each other at
their faces. The module also converts the data objects connected to the hexahedral grid.
Note : Boundary conditions are not converted.
Press the Apply button to start the computation.
Connections
Data [required]
Unstructured hexahedral grid to be converted.
ROI [optional]
Optional region to restrict the conversion.
Ports
Options
418
Toggles whether the data objects connected to the hexahedral grid are also converted or not.
8.23
HexaQuality
The HexaQuality module computes different quality measures for hexahedral grids. For this purpose
it can be attached to a HexaGrid object as well as a GridVolume module. Quality is calculated for all
hexahedra in the first case, and for all hexahedra selected by the GridVolume module in the second
case. The output is a scalar field defined on the hexahedral grid and equal to 0 on the non-selected
hexahedra.
The user can create a histogram of the quality for the hexahedral grid. By default, the histogram is
shown with a logarithmic scale to direct the focus on the hexahedra with worst quality.
Press the Apply button to start the computation.
Connections
Data
The tetrahedral grid.
Grid volume
A GridVolume module that selects the hexhedra for which the quality is calculated.
Either the Data or Grid volume connection is required. The other one then becomes optional.
Ports
Quality Measure
The option menu lets you choose between different quality measures:
Squish: the cell squish measures the angular divergence between the vector pointing from
the cell centroid to each face centroid and the face normal vector pointing out of the cell:
"
~ni d~ccf ci
max 1
i
|~ni ||d~ccf c |
In the best case the cell squish is equal to 0, whereas it is close to 1 in the worst case where
the cell is degenerate.
Equiangle skew: the equiangle skew measures the cell quality on the basis of its angles and
is defined as follows:
HexaQuality
419
max e e min
,
max
180 e
e
where max is the largest cell angle, min is the smallest cell angle and e is the equiangular cell angle (equal to 90 here, in the hexahedral grid case). In the best case the cell is
equiangular and the skew is equal to 0, whereas it is close to 1 in the worst case where the
cell is degenerate. A cell with an equiangle skew lower than 0.5 is considered as good and as
acceptable if the skew is lower than 0.75.
Maximum angle: largest cell angle.
Minimum angle: smallest cell angle.
Aspect ratio: the aspect ratio measures the cell stretching and is defined as the ratio between
the maximum cell centroid to face centroid distance and the minimum node to node distance. In the best case the ratio is equal to 0.5 and an aspect ratio smaller than 5 is generally
considered as acceptable.
Samples
This slider lets you select the number of samples for the histogram. The default values should be
adequate.
Histogram
If you select this toggle, a plot window will appear, once youve pressed Apply, showing the histogram of qualities for all selected hexahedra. If no hexahedra have been selected, the plot window
will not be shown.
8.24
IlluminatedLines
This module displays line segments of a line set object taking into account ambient, diffuse, and specular illumination. The illumination effect is implemented internally using the same texture mapping
technique which is also applied in module DisplayISL.
Connections
Data [required]
The line set to be visualized.
Colormap [optional]
The colormap used to encode the additional data of the line set. If no colormap is connected to this
port it is used to set the default diffuse color of the illuminated lines.
420
Ports
ColorMode
If the line set object contains additional data values per vertex this menu allows you to select one
such variable which will be used to look up vertex colors. If No Color has been selected the lines
will be displayed in uniform default color. This color may be changed using the default (Constant)
color setting of the colormap above.
Colormap
Optional colormap.
Options
Lighting: Controls illumination of lines. If off, constant colored lines are drawn (flat shading).
Animate: Activates particle-like animation. The animation speed may be controlled via the command setAnimationSpeed.
Fade Factor
Values smaller than 1 have the effect that line segments become more and more transparent in
backward direction.
Transparency
8.25
Interpolate
This module takes two or more data objects as input, e.g. two surfaces or two tetrahedral grids, and
computes an output object by linearily interpolating the vertex positions. This can be used to create a
smooth transition between the two objects. In addition, it is possible to interpolate data fields attached
to the surfaces or grids as well.
Note that in any case the two input data sets must have the same number of points in order to produce
meaningful results. For example, the second input could actually be a copy of the first one with an
applied transformation.
Usually, the transition is specified by a parameter u varying between 0 and n-1, where n is the number
of input objects. However, it is also possible to associate a physical time with each input. For this,
Interpolate
421
each input must define an entry Time in its parameter list which specifies the actual physical time of
this input. The time value of any input must be bigger than the time value of the preceding input. If
these conditions are met the toggle physical time described below becomes active. A Time parameter
can be defined interactively using the parameter editor.
Connections
Data [required]
First input object to be interpolated. Must either be a surface, a tetrahedral grid, a hexahedral grid,
a field defined on one of these objects, or a lattice object like a 3D image.
Input2 [required]
Second input object to be interpolated. This object must be of the same type as the first one.
Input3 [optional]
Optional third input object. Once a third input object is connected automatically additional input
ports will be created. In this way it is possible to connect an arbitrary number of inputs.
Ports
Info
This info port reports the number of input objects, and - if available - the current physical time or
the current fractional time step depending on whether the physical time toggle is activated or not.
Options
If the input is a surface, a tetrahedral grid or a hexahedral grid and if there are additional fields
connected to these objects the first toggle allows you to interpolate the data fields as well. If the
input itself is such a data field the first toggle allows you to interpolate the mesh too. In this case
the toggles label will be changed appropriately.
The second toggle allows you to activate physical time mode, provided the input objects have a
Time entry in their parameter list. In this case the time slider (see below) denotes physical time,
whereas otherwise it denotes a fractional time step.
Time
Interpolation parameter. For t=0 the output will be identical to the first input. For t=1 output will
be second input. If physical time mode is active, this port specifies the physical time for which an
output object should be computed.
422
8.26
Isosurface (Hexahedra)
This module computes an isosurface within a three-dimensional scalar field defined on an unstructured
hexahedral grid.
A second independent scalar field may be connected to the module. This field determines how the
isosurface is colored. If no color field is connected to the module the isosurface has constant color.
Press the Apply button to start the computation.
Connections
Data [required]
The scalar field defined on an unstructured hexahedral grid. The encoding must be PER-VERTEX.
ColorField [optional]
Arbitrary scalar field which is mapped onto the isosurface using pseudo-coloring.
Colormap [optional]
The colormap is used for pseudo-coloring the isosurface.
Texture [optional]
The texture field must be an HxUniformColorField3 2D slice. When connected, the texture is
mapped onto the surface geometry along the texture normal axis. A transformation can be applied
to the data to change the texture projection axis and texture coordinates scale. Note that texture
projection override pseudo-color mode.
ROI [optional]
Connection to a module defining a region of interest.
Ports
Draw Style
The draw style port is inherited from class ViewBase. For a description of this port see there.
Colormap
In case a colormap is connected to the isosurface module, this colormap will be shown here. If no
colormap is connected to the module the ports default color is used. To change this color, click into
the color bar with the left mouse button. This will bring up the color selection dialog. To connect
the port to a colormap, use the popup menu under the right mouse button. See also Colormap.
Isosurface (Hexahedra)
423
Buffer
To use this port, you must first create a dragger. To do so, type the command Isosurface
showBox. Then the buffer port must be enabled explicitly with the command Isosurface
buffer show. For a detailed description see the ViewBase documentation.
Threshold
Determines the value used for isosurface computation. The slider is automatically adjusted to cover
the whole range of data values.
TextureWrap
Wrap mode used for the texture projection on the surface. There are two wrap modes: Repeat: The
texture is repeated outside its 0-1 texture coordinate range. Clamp: Clamps texture coordinates to
lie within 0-1 range. This port is hidden if there is nothing connected to the Texture connection port.
Culling mode
8.27
Isosurface (Tetrahedra)
This module computes an isosurface for a scalar field defined on a three-dimensional tetrahedral grid.
The triangulation inside a tetrahedron exactly matches a linearly interpolated field.
Press the Apply button to start the computation.
Connections
Data [required]
The scalar field defined on a tetrahedral grid.
ColorField [optional]
See port ColorField in section Isosurface (Hexahedra).
424
Colormap [optional]
See port Colormap in section Isosurface (Hexahedra).
Texture [optional]
The texture field must be an HxUniformColorField3 2D slice. When connected, the texture is
mapped onto the surface geometry along the texture normal axis. A transformation can be applied
to the data to change the texture projection axis and texture coordinates scale. Note that texture
projection override pseudo-color mode.
PointProbe [optional]
If this port is connected to a PointProbe module as isovalue the value at a certain point within the
scalar field will be chosen. For details see PointProbe.
ROI [optional]
Connection to a module defining a region of interest.
Ports
Draw Style
The draw style port is inherited from class ViewBase. For a description of this port see there.
Colormap
Determines the value used for isosurface computation. The slider is automatically adjusted to cover
the whole range of data values. If the threshold value is changed the computation of the new
isosurface is immediately invoked.
Buffer
To use this port, you must first create a dragger. To do so, type the command Isosurface
showBox. Then the buffer port must be enabled explicitly with the command Isosurface
buffer show. For a detailed description see the ViewBase documentation.
TextureWrap
Isosurface (Tetrahedra)
425
Wrap mode used for the texture projection on the surface. There are two wrap modes: Repeat: The
texture is repeated outside its 0-1 texture coordinate range. Clamp: Clamps texture coordinates to
lie within 0-1 range. This port is hidden if there is nothing connected to the Texture connection port.
Culling mode
8.28
Lambda2
The Lambda2 module computes the second largest eigenvalue of the matrix L = S 2 + 2 where S
and are the symmetric and anti-symmetric parts of the Jacobian of a vector field.
The points where this is negative marks a vortex core.
Press the Apply button to start the computation.
Connections
Data [required]
Vector field defined on a regular grid (RegVectorField3). The vector components must be floats.
8.29
LatToHex
The LatToHex module converts a 3D lattice to an equivalent hexahedral grid. The new hexahedral grid
has the same points as the lattice to be converted. The default material ID 0 will be assigned to each
hexahedron.
The module can also convert the data contained in the lattice. Lattices having a dimension of 1 in one
direction, e.g., images, are converted to grids containing only vertices. Such grids can be visualized
with VertexView.
Press the Apply button to start the computation.
Connections
Data [required]
3D lattice (uniform to curvilinear) to be converted.
426
Ports
Options
Toggles whether the data contained in the lattice is also converted or not.
8.30
LineStreaks
This module takes a surface and randomly distributes a number of short line segments on it. The
line segments are computed as field lines of a 3D vector field projected onto the surface or as field
lines of a vector field directly defined on that surface. The latter can for example be produced by the
GetCurvature module in Max Direction mode. Instead of being visualized directly the resulting line
streaks will be stored in a LineSet data object.
Press the Apply button to start the computation.
Connections
Data [required]
The surface where the streaks will be put on.
VectorField [required]
The vector field from which the streaks will be computed. May be either a surface vector field or a
3D vector field.
Ports
StreakLength
Relative length of the field line segments. The length is scaled by the length of the diagonal of the
surfaces bounding box.
NumStreaks
Number of line streaks to be computed. The number of streaks per surface area will be approximately constant.
Commands
setResolution <res>
Allows you to adjust the resolution of the line segments. The higher the value the smaller the point
LineStreaks
427
spacing. The default value is 256, resulting in a point distance of 1/256 of the length of the surfaces
bounding box.
8.31
MagAndPhase
Connections
Data [required]
Complex scalar field defined on a regular grid.
Colormap [optional]
A colormap that is used to visualize the phase. In order to avoid that phase values are being clipped
the range of the colormap should extend from to +.
Ports
Colormap
8.32
Magnitude
The Magnitude module computes the magnitude of the vectors of a vector field, i.e.,
|V | =
These vectors might be located on regular or on irregular grids. Regular or complex vector fields
are typically defined by uniform, stacked, rectilinear, or curvilinear coordinates. Vectors located on
vertices of triangular surface meshes or tetrahedral grids are defined by irregular coordinates.
The result of Magnitude is a field of scalars, located at positions according to the underlying grid of
the input data.
Press the Apply button to start the computation.
428
Connections
Data [required]
Field or complex vector field defined on a regular grid (Lattice3).
Vector field on an irregular grid, either specified by nodes of a surface, a tetrahedral or a hexahedral
grid (SurfaceField, TetraData, HexaData).
Ports
Number of Vectors
Shows number of input vectors and the vector dimension for computing the magnitude field.
Mode
Choose whether to compute the magnitude of the vector, its normal or tangential component relative
to the primary surface normals. This port is only shown if a surface vectorfield has been connected.
8.33
ParametricSurface
This module can be used to define and animate arbitrary parametric surfaces in two, three dimensions.
There are some pre-defined surfaces like the Moebius strip, Klein bottle and Random mapping to
illustrate the use of the text fields that define expressions for X, Y, and Z.
The expressions may depend on u and v which are Cartesian coordinates of the plane.
They can also depend on theta and r which are their counterparts in polar coordinates:
p
r = u2 + v 2
theta = atan2(u, v)
A separate spherical coordinate system is accessible by the variables lambda and phi:
lambda = v
phi = 2 u
The variable t is linked to the time port and can be used to perform for example linear interpolations
between two mappings like:
(t 1) (expression1) + t (expression2).
Press the Apply button if you want to do an animation because you will need to re-compute the mesh
every time t changes.
Surfaces can be exported by the Draw Style port ( more options Create surface).
ParametricSurface
429
Connections
Data [optional]
If a regular scalar field is supplied, the generated mesh will be scaled and shifted according to its
bounding box. Using the transform editor of the data is a convenient way of scaling and shifting the
generated mesh.
Colormap [optional]
The colormap is used to calculate the color of the mesh based on the expression in the Colorport
(initially r, the radial distance of the u-v mesh point from its mean position).
Time [optional]
An additional variable which can be used in all the expression fields. It can be used to generate
animations.
Cluster [optional]
If you connect to this module a Cluster object (points in space), the module will generate a second
cluster object and apply the transformation in the expression fields to its x and y coordinates. This
may be useful to visualize the u/v plane as a point cloud.
Ports
Draw Style
Select a specific draw style for the mesh currently on display. For higher resolution meshes usually
shaded works best.
Colormap
This colormap will be used to map colors per vertex using by the values in the Color port.
Culling mode
The pre-defined surfaces are some commonly used to illustrate analytically defined meshes. They
are mainly here to illustrate the use of the different variables.
As a last entry you will find a Random generator which will generate random entries for the x, y
430
and z ports, i.e. a random mapping. Currently there is a maximum depth of 10 for the randomly
generated expressions.
Notice that once you have started typing your own expressions of X, Y... it prevails on the port
content. But if you select a new pre-defined surface, all expressions will be reset to the ones corresponding to the selected surface.
U
This port describes the u resolution of the initial mesh (before the transformation was applied).
Its values code the minimum value of u (step size) and the maximum value of u. Lowering the
step-size will directly increase the resolution of the mesh.
V
This port works the same way as the 8.33 port for the v parameter of the initial mesh.
X
Enter an expression to be evaluated in order to describe the x-position of a mesh in 3D space. Use
the 8.33 port to see some useful settings for this port.
Y
Enter an expression to be evaluated in order to describe the y-position of a mesh in 3D space. Use
the 8.33 port to see some useful settings for this port.
Z
Enter an expression to be evaluated in order to describe the z-position of a mesh in 3D space. Use
the 8.33 port to see some useful settings for this port.
Color
Enter an expression to be evaluated in order to describe the vertex color of the mesh. All variables
of the other fields can be used in this field. By default it contains r which is the radial distance from
the center position of the mesh. This port is hidden if the colormap is constant.
Time
ParametricSurface
431
This slider is directly linked to the expression t which can be used in all x, y, z and Color ports.
8.34
ParticlePathlines
This module displays as a set of particles a 3D vector field (HxVectorField3). When connected to a
time series control module, particles are animated. Each particle is evaluated in the vector field and
moves according to the vector direction and velocity. Therefore the animation of the particles actually
corresponds to a motion in time and pathlines can be represented, contrary to particles displayed in
ParticlePlot or streamlines in DisplayISL, which correspond to the interpretation of an instantaneous
capture of the flow.
When a scalar field is connected to the colorfield port, particles color are evaluated according to this
colorField. Otherwise, colors are taken from the length of the direction vectors.
Connections
Data [required]
HxVectorField3 representing the vectors that handle direction and velocity of particles. Direction is
used for particles trajectories. Length is used for particles velocity.
Colorfield [optional]
An optional scalar field which, if present, will be used for pseudo-coloring. It is usually useful to
create a scalar field from the vector field using the Magnitude module.
Colormap [optional]
Associated colormap
Ports
Scale factor
This port controls the size (in the direction) applied to the particles.
Value factor
This port controls the multiplicated factor applied to the particle velocity.
432
Resolution
This port handles the regular distribution of particles in the field bounding box.
Reset
When hit, this button replace the particles at their original location.
Options
This port controls the particles behaviour when the trajectory is out of the bounding box.
Continuous if set, particles can move from X positive border to X negative border and
reverse.
Clamp if set, particles positions are limited to the Y borders of the field.
Trajectory
ParticlePathlines
433
This port controls the seed box of the particles. The seed box is composed of a black shape representation and green little boxes that handle the manipulation. When active, the seed box determines
the origin of the particles. Pressing reset resizes the box to the bounding box of the connected data.
When projecting the particles (see HxProjection), only the lower left corner of the green boxes is
used to compute the projected shape. Other boxes wont be synchronized with the box geometry.
Box center
This port controls the center of the seed box. When projecting the particles, it can happen that the
value entered be erroneous. In that case, the old value is displayed again.
Box scale
This port controls the scale factor of the seed box. When projecting the particles, it can happen that
the value entered be erroneous. In that case, the old value is displayed again.
8.35
ParticlePlot
ParticlePlot is a replacement for the older ConePlot module. For compatibility reasons the old ConePlot module is still available.
This module visualizes scalar vector fields by particles (cones) pointing in the direction of the local
flow. The placement of particles can be done similar to the distribution modes of the DisplayISL module. The particles are animated to generate a sequence of objects walking through the vector field.
An example network can be found at share/examples/HxConePlot.hx. ParticlePlot uses Open Inventor
434
render caching. All animation steps are pre-computed and played back by making the appropriate parts
of the scene visible. This technique requires little CPU computation but larger amounts of memory and
a fast graphics card. Notice that the first pass through the animation may be slow but subsequent render passes speed up. To control the overall speed of the animation use the setRealTimeDuration
command of the time slider.
Note that you must press the Apply button for every change in the parameters. Only the objects Height
and Radius are updated without you needing to explicitly press the Apply button.
Connections
Data [required]
The 3D vector field to be visualized.
ROI [optional]
A connection to a SelectRoi module which specifies a rectangular region of interest. The seed points
will be restricted to its region of interest.
Shape data [optional]
Supply a custom shape to be replicated instead of the cones. Any geometry displayed in Avizo can
be used.
Distribution [optional]
An optional scalar field which can be used to control the distribution of seed points.
Color field [optional]
An optional scalar field which, if present, will be used for pseudo-coloring. Often it is useful to
create a scalar field from a vector field using the Magnitude module.
Colormap [optional]
The colormap used to encode the color field. If no color field is connected, the magnitude of the
vector field at each position will be used for pseudo-coloring.
Animate [optional]
A time slider which controls the currently shown step of the animation. To control the overall speed
of the animation use the setRealTimeDuration command of the time slider.
Ports
Distribute
This port provides an option menu specifying how seed points are distributed inside the seed box.
By default a homogeneous distribution will be used. Alternatively, seed points may be distributed
ParticlePlot
435
according to the vector fields magnitude or according to the value of the distribution field, if such
a field is connected to the module. The equalize option provides a mixture of homogeneous and
proportional seed point distribution.
The regular option distributes the objects at regular intervals in the bounding box using the information in the Resolution port. For this last setting, the length of integration is set initially to 1 in
order to restrict the number of cones produced.
Resolution
For proportional and equalized distribute settings, this port specifies the resolution at which the
vector field will be sampled. If the regular mode for the distribution is selected, this port will
specify the number of objects distributed in the bounding box.
Colormap
A colormap which specifies the pseudo-coloring used. Please note that the maximum magnitude
detected is printed out by the module after each Apply button action.
Options
This port specifies the number of traces computed, the number of cones per trace which are displayed at each point in time, and the number of steps of the vector field integration.
Options2
This port specifies the initial step size of the Runge-Kutta solver and the height and radius of the
cones. If a shape object is attached to the module, only the height setting will be used to specify its
isotropic scaling.
If you want to change the default data range of each of the Options ports, you can use the following
Tcl command:
ParticlePlot Options setMinMax 2 0 500
which will for example set the minimum and maximum values of the Length text field to 0 and 500.
Threshold
This port specifies an expression field similar to the one used in Arithmetic. The value x is defined
as the magnitude of the vector field evaluated at each position of the field.
Animate
436
A time slider which controls the currently shown step of the animation. To control the overall speed
of the animation use the setRealTimeDuration command of the time slider.
Commands
createLineSet
Generates a line set object from the current particle trace.
getStepsToBlend
Returns the current number of steps that will be used at the begin and end of each particle trace to
blend out the objects.
setStepsToBlend x
Sets the number of steps that will be used at the begin and end of each particle trace to blend out
the objects.
8.36
PlanarISL
This module intersects an arbitrary 3D vector field and visualizes its directional structure in the cutting
plane using illuminated stream lines (ISL). The stream lines are sparsely seeded such that the underlying plane is still visible. To compute the stream lines, it uses the orthogonal vector field. Because
the primal and its orthogonal vector fields are used, the method is called dual stream line seeding. The
method was developed at ZIB and is published in the following article:
O. Rosanwo, C. Petz, S. Prohaska, I. Hotz and H.-C. Hege, Dual Streamline Seeding, Proceedings of
the IEEE Pacific Visualization Symposium, 2009, pp. 9-16.
The method described there has been extended to the plane by simply triangulating the plane and then
applying the same algorithm.
Adjusting position and orientation of the cutting plane is done via the module that PlanarISL is connected to. Please see the documentation of the ArbitraryCut module.
You can also connect this module to other planar modules, such as ObliqueSlice by changing the
Module connection port.
Press the Apply button to start the computation of the stream lines. If no stream lines have been
computed yet, nothing will be seen. Note that this button needs to be pressed whenever the stream line
parameters have changed. For changing color, lighting etc. this is not required.
Connections
Data [required]
Vector field to be visualized.
PlanarISL
437
Module [optional]
Module defining the cutting plane in which the stream lines will be computed.
Colormap [optional]
Colormap used for pseudo-coloring. If no colormap is connected all stream lines have equal color.
Ports
Options
If the first option is selected, the separatrices of the planar vector field will be explicitly added to the
stream lines. Note that without this option the separatrices will only be used to improve the stream
line seeding, and hence, the separatrices are not included in the set of stream lines. By selecting the
second option, the stream lines will be pruned when they get too close to each other.
View options
Lighting: Controls illumination of lines. If off, constant colored lines are drawn (flat shading).
Animate: Activates particle-like animation. The animation speed may be controlled via the command setAnimationSpeed.
Color
This port determines the resolution of the underlying triangular grid and thereby the smoothness of
the lines.
Separation distance
Values smaller than 1 have the effect that line segments become more and more transparent in
backward direction.
438
Transparency
The value of this port determines the width of the stream lines.
Seed
Seed value for the random number generator that distributes the seedpoints. Seed value of 0 triggers
a different distribution each time.
8.37
PlanarLIC
This module intersects an arbitrary 3D vector field and visualizes its directional structure in the cutting
plane using a technique called line integral convolution (LIC). The LIC algorithm works by convolving
a random noise image along the projected field lines of the incoming vector field using a piecewiselinear hat filter. The synthesized texture clearly reveals the directional structure of the vector field
inside the cutting plane. As long as no valid LIC texture has been computed, a default checkerboard
pattern is displayed instead.
PlanarLIC is derived from ArbitraryCut. See the documentation of this module for details on how
to adjust the position and orientation of the cutting plane. Click here in order to execute a script
demonstrating the use of the PlanarLIC module.
Press the Apply button to start the computation. If no LIC texture has been computed yet, a default
checkerboard pattern is displayed. This pattern is also displayed as soon as filter length or resolution
are changed. Press the Apply button again in order to update the texture.
Connections
Data [required]
Vector field to be visualized.
ROI [optional]
Connection to a module providing a region-of-interest, like SelectRoi.
ColorField [optional]
A scalar field which may be used for pseudo-coloring.
PlanarLIC
439
Colormap [optional]
Colormap used for pseudo-coloring. If no colormap is connected the default color of the colormap
port will be used. The port is hidden if pseudo-color mode is set to none.
ColorField2 [optional]
A second scalar field which may be used for pseudo-coloring with two color fields.
Colormap2 [optional]
Colormap used for pseudo-coloring with a combination of two color fields. If no colormap is
connected the default color of the colormap port will be used.
Ports
Frame
This port is used to display or hide the frame, set the frame width and color.
Orientation
This port provides three buttons for resetting the slice orientation: xy perpendicular to the z-axis, xz
perpendicular to the y-axis, or yz perpendicular to the x-axis.
Options
If toggle adjust view is active, then the camera of the 3D viewer will be reset whenever one of the
orientation buttons is clicked.
If the rotate toggle is active, then a virtual trackball is displayed. By picking and dragging the trackball you may change the orientation of the plane. Remember that the viewer must be in interaction
mode in order to do so. The ESC-key inside the viewer window toggles between navigation mode
and interaction mode. The trackball of the last active ArbitraryCut can also be turned on and off by
pressing the TAB-key inside the viewer window.
The fit to points toggle lets you reset the plane by clicking on at least 3 different points in the scene.
After enabling this toggle, you should switch to interaction mode by pressing the ESC-key inside
the viewer. Then click 3 times at different points on any geometry in the scene. The plane then will
be automatically adjusted to match these points. The virtual trackball - visible when rotate toggle
is active - will be moved to the center of the picked points. After 3 points have been picked, this
toggle is automatically unchecked, unless you pressed the shift key. Shift-clicking allows you to
select more than 3 points. In this case the plane that best fits the selected points will be computed.
The exact plane def. toggle lets you to show/hide exact plane definition ports.
440
Translate
This port lets you translate the plane along its normal direction.
Colorize
An option menu allowing to select different pseudo-color modes. If item none is selected, the LIC
texture will be displayed in grayscale only. If magnitude is selected, each pixel of the LIC texture
will be colored according to vector magnitude at this point. If normal component is selected, then
color denotes the signed length of the vector component perpendicular to the cutting plane. This
length will be positive if the vector points upwards or negative if the vector points downwards. If
parallel component is selected, then color denotes the length of the vector component tangential to
the plane. This length will always be greater or equal than zero. Finally, if color field is selected,
and if a scalar field is connected to port ColorField, the external scalar field will be used for pseudocoloring. There is a second mode 2 color fields multiplied. This mode makes it possible to visualize
two color fields at the same time. The color fields have to be attached to the ports ColorField and
ColorField2. The colors of each field are multiplied and then applied to the final image.
Colormap
Port to select the second colormap that is applied to the second color field.
Lic
The input denoted filter length controls the one-sided length of the filter kernel used for line integral
convolution. The larger this value is, the more coherent the grayscale distribution along the field
lines. Often larger values are visually more attractive than smaller ones. A value of 0 lets you see
an isotropic noise pattern without any directional information.
The second input of this port determines the resolution of an intermediate sampling raster used to
compute field lines. Fine details of the vector field might be missed if the sampling resolution is
too low. The resolution value also has an effect on the granularity of the resulting LIC image. The
size of the LIC texture being computed is chosen to be the next power of two larger than or equal to
the sampling resolution. For example, if the resolution is set to 128, the size of the LIC texture will
be 128x128. If the resolution is set to 129, then a LIC texture of size 256x256 will be computed,
resulting in much finer structures.
PlanarLIC
441
The third input of this port denoted as seed allows control of the generation of the noise pattern. A
value of 0 means that a different random noise pattern is used for each successive calculation. Any
other value allows use of the same noise pattern each time a computation is started. The latter yields
better results for videos where the LIC plane slices through a volume.
Phase
This port will only be visible if a complex-valued vector field is connected to the module. It provides
a phase slider controlling which part of the complex 3D vectors is visualized. A value of 0 degree
corresponds to the real part, while a value of 90 degrees corresponds to the imaginary part. Other
values yield intermediate vectors
Hide undefined values
If checked, locations where there is no data value or where extracted data values are equals to the
undefined value are displayed as transparent pixels.
If a TetraComplexVectorField3, a TetraVectorField3, an EdgeElemVectorField3 or an EdgeElemComplexVectorField3 is connected to the module, only locations where there is no data value will
be discarded.
Plane definition
Commands
setNumSubPixels {1|2|3}
Allows you to change an internal parameter of the LIC algorithm. Since LIC images contain very
442
high spatial frequency components, they are susceptible for aliasing. Aliasing can be almost eliminated by choosing the number of sub-pixels to be 2 or even 3. However, this is achieved at the
expense of increased computing time.
writeTexture <filename>
This command allows you to write the current LIC texture into a file in raw PPM format.
8.38
RateOfStrainTensor
This module computes the rate of strain tensor for a given displacement vector field. If the displacement vector field describes the displacement of matter in space, the rate of strain tensor field will
specify how the space is distorted by this field.
Analyze the resulting tensor field by extracting its eigenvalues (ExtractEigenvalues module) where the
tensor field should be indefinite and thus may contain negative and positive eigenvalues for directions
in which the matter is compressed or expanded during the distortion.
Connections
Data [required]
Vector field defined on a uniform grid (UniformVectorField3) and that describes the space distortion.
The vector components must be floats.
8.39
SeedSurface
This module extends the vector field visualization module DisplayISL. It allows you to compute illuminated field lines of a vector field with seed points distributed across an arbitrary surface.
First, load both the vector field and the surface into Avizo. Then attach DisplayISL to the vector field.
From the popup menu of DisplayISL choose SeedSurface. The SeedSurface module automatically
connects itself to the first surface found in the Pool. Of course, you may change the surface connection
at any time later on. Properties of the illuminated field lines such as base opacity, fade factor, or color
will be determined by DisplayISL.
The Apply button is used to initiate distribution of seeds and recomputation of field lines. Once the
incoming vector field has changed or you have modified the number of field lines or the lines length,
you must press Apply again in order to update the display.
Connections
Surface [required]
Module of type DisplayISL which is used to display the illuminated field lines.
RateOfStrainTensor
443
DisplayISL [required]
The surface on which the field lines will be distributed.
Ports
NumLines
Number of field lines to be displayed. This port will only be visible if distribution mode on surface
has been selected. The distribution algorithm tries to achieve a constant seed density per surface
area.
Length
The length of the field lines, or more precisely, the number of atomic line segments, in forward
respectively backward direction. The lines may stop earlier if a singularity (i.e. zero magnitude) is
encountered or if the fields domain is left.
Balance
By default field lines are equally long in forward and backward direction, corresponding to a balance
value of 0. This port allows you to change this behavior. A value of -1 indicates that field lines
should extend in backward direction only, while a value of 1 indicates that field lines should extend
in forward direction only.
Distribute
This port provides an option menu specifying the seed distribution mode. If at vertices is chosen, a
field line is started at each vertex of the surface. If on surface is chosen, a user-defined number of
field lines will be uniformly distributed across the surface.
8.40
Splats
This module visualizes scalar fields defined on tetrahedral grids using a direct volume rendering technique called cell projection splatting. The principle of this method is to display a kind of semitransparent clouds. The higher the data values the brighter and more opaque these clouds are. Often, meaningful results are obtained if this technique is used in conjunction with a standard isosurface
module.
444
In order to get correct results for linearly varying functions a special texture mapping technique is
applied. On machines where texture mapping is not supported in hardware this might be quite slow.
As an alternative untextured splats may be used. However, in this case the scalar field is assumed to be
constant in each tetrahedron. To obtain such a piecewise constant function the vertex values of each
tetrahedron are averaged. As a consequence artificial discontinuities might be observed.
Press the Apply button to start the computation.
Connections
Data [required]
The tetrahedral scalar field to be visualized.
ROI [optional]
Connection to a module defining a region of interest.
Colormap [optional]
The colormap is used for pseudo-coloring the clouds.
Ports
Alpha Scale
A global factor used to change the overall transparency of the individual splats. Higher values
produce denser clouds.
Gamma
This value determines how the function value between the min and max values of port Range will be
mapped to opacity and color. If the gamma value is 1 a linear mapping will be used. If the gamma
value is smaller than 1 the overall appearance of the cloud gets more opaque. If the gamma value is
bigger than 1 the cloud gets more transparent.
Range
Data range. Regions where the function value is below the min value will be completely transparent.
Likewise, regions where the function value is above the max value will be opaque.
Interpolation
Splats
445
Lets you select the type of splats being used. Constant enables untextured splats. Linear enables
textured splats. The latter setting will be able to correctly display linearly varying scalar fields.
Optical Model
Switches between different optical models: only light emission or emissive and absorptive light
model or absorbing light only.
Colormap
In case a colormap is connected to the splats module, this colormap will be shown here. If no
colormap is connected to the module the ports default color is used. To change this color, click into
the color bar with the left mouse button. This will bring up the color selection dialog. To connect
the port to a colormap, use the popup menu under the right mouse button. See also Colormap.
Commands
setColor <color>
Lets you define the base color of the volume rendered clouds. On default an orange color
will be used (0.8 0.6 0.1). The color may be specified by either an RGB triple in range 0...1 or by a
common X11 color name, e.g., green.
8.41
StreamRibbons
This module displays stream lines or stream ribbons in a flow field. Stream ribbons are computed
by tracing two individual stream lines and connecting them by triangles. The initial orientation of
a stream ribbon is orthogonal to the normal direction of the flow field at the seed point. The seed
points themselves are defined interactively by moving a seed shape in space (a line, a circle, or a filled
square). The seed shape can be transformed using an Open Inventor transformer dragger. In Avizo
XScreen Pack it is also possible to pick and transform the dragger using the 3D mouse.
Connections
Data [required]
The vector field to be visualized.
Colormap [optional]
Colormap used to depict vector magnitude.
446
Ports
Colormap
Logarithmic slider allowing to adjust the resolution of the stream line tracing algorithm. A value of
1 means a 10 times higher resolution compared to the default, while a value of -1 means a 10 times
smaller resolution. The higher the resolution the more line segments and triangles are generated.
Density
Logarithmic slider allowing to adjust the density of stream lines or stream ribbons. The higher the
value the more lines or ribbons are traced.
Width
This slider can be used to adjust the width or thickness of the stream ribbons. The default thickness
is set proportional to the length of the diagonal of the bounding box of the input data set.
Length
Defines the seed type: along a straight line segment, along a circular line, or inside a square regions.
Mode
Allows you to show or hide the Open Inventor dragger for manipulating the seed shape position.
StreamRibbons
447
Commands
Inherits all ports of Object.
setBox -b xmin xmax ymin ymax zmin zmax
Sets the position of the Open Inventor dragger so that it matches the specified box. The display is
updated automatically.
setBox [-t x y z] [-r x y z phi] [-s x y z]
Alternate way of setting the Open Inventor dragger. The three optional arguments indicate the
translational, rotational, and scaling part of the draggers transformation matrix. With this command
it is possible to set the dragger in an arbitrary way (it must not be axis-aligned). If all three parts are
specified the option strings -t, -r, and -s can be omitted.
getBox
Returns the current transformation of the dragger in terms of translation (first three numbers), rotations (next four numbers), and scaling (last three numbers). The result can be used as the arguments
of the setBox command.
8.42
StreamSurface
This module computes stream surfaces of an arbitrary 3D vector field. A stream surface consists of
multiple interconnected stream lines started along a predefined line source. The algorithm automatically inserts new stream lines in divergent regions of the field. Likewise, in convergent regions stream
lines are automatically removed. The resulting stream surfaces can be accumulated in a separate Surface object. In this way further post-processing is facilitated, for example, computation of a LIC texture
using SurfaceLIC.
Connections
Data [required]
The 3D vector field to be visualized.
Colormap [optional]
Optional colormap. By default, the current stream surface will be display in wireframe mode and
will be colored according to the arc-length of the stream lines forming the stream surface.
Ports
Colormap
448
Origin
This port defines the seed point of the stream surface. By pressing the menu button options a
crosshair dragger can be activated which allows you to change the seed point interactively in 3D.
Actually, in order to compute a stream surface not only a seed point but a seed line is required.
Starting from the seed point, such a line will be defined automatically taking into account the seed
selection mode chosen in port Action.
Resolution
Controls the resolution of the discretized stream surface or, more precisely, the preferred edge length
of the triangulation. Smaller values results in more details.
Length
Value n determines how far the surface should be traced in backward direction. Value m determines
how far the surface should be traced in forward direction. Value width determines the extent of the
seed line. The actual lengths in physical space depend on the value of port resolution. All values
may be changed using the right mouse buttons by means of a virtual slider.
Action
This port provides push buttons allowing you to store the current stream surface in a surface object
(add to result), respectively to remove all triangles from this surface again (clear result). Moreover,
the port provides an option menu allowing you to select the mode used for automatic seed line
definition. The following modes are supported:
Binormal: The seed line will be traced in a direction perpendicular to both the stream lines tangent
and normal (curvature) direction. Often this gives quite meaningful results. However, note that in
general the stream surfaces normal vectors do not coincide with the stream lines curvature vectors
except at the seed line.
Normal: The seed line will be traced along the field lines normal (curvature) direction.
X-axis: The seed line is chosen in x-direction
Y-axis: The seed line is chosen in y-direction.
Z-axis: The seed line is chosen in z-direction.
StreamSurface
449
Commands
setLineWidth <width>
Sets line width of wireframe model.
setTolerance <eps>
Sets relative tolerance used for field line integration. The default is 0.001 times the sampling width
set in port resolution.
doLineSet {0|1}
If argument is 1 only stream lines will be displayed instead of the stream surfaces triangulation.
setDrawStyle {1|2}
Allows you to set the draw style used in surface mode, i.e., when doLineSet is off. A value of 1
denotes wireframe mode, while a value of 2 denotes shaded surface mode. In order to display the
surface in a more fancy way convert it into a surface object and use SurfaceView.
8.43
SurfaceISL
This module visualizes a surface vector field using so-called illuminated stream lines (ISL). The stream
lines are sparsely seeded on the surface such that the underlying surface is still visible. This enables
one to compare several vector fields on the same surface by applying PlanarLIC for one vector field
and the SurfaceISL module for the second vector field.
To compute the stream lines, the algorithm uses the orthogonal vector field. Because the primal and
its orthogonal vector fields are used, the method is called dual stream line seeding. The method was
developed at ZIB and is published in the following article:
O. Rosanwo, C. Petz, S. Prohaska, I. Hotz and H.-C. Hege, Dual Streamline Seeding, Proceedings of
the IEEE Pacific Visualization Symposium, 2009, pp. 9-16.
To prevent z-fighting artifacts when rendering the surface stream lines on a surface, one needs to
enable polygon offset for the respective SurfaceView via the following command: SurfaceView
setPolygonOffsetMode on.
Press the Apply button to start the computation. If no stream lines have been computed yet, nothing will
be seen. Note that this button needs to be pressed whenever the stream line parameters have changed.
For changing color, lighting etc. this is not required.
Connections
Surface [required]
Surface on which the stream lines are to be computed and visualized.
VectorField [required]
Surface vector field or 3D vector field to be visualized.
450
Colormap [optional]
Colormap used for pseudo-coloring. If no colormap is connected all stream lines have equal color.
Ports
Options
If the first option is selected, the separatrices of the surface vector field will be explicitly added to the
stream lines. Note that without this option the separatrices will only be used to improve the stream
line seeding, and hence, the separatrices are not included in the set of stream lines. By selecting the
second option, the stream lines will be pruned when they get too close to each other.
View options
Lighting: Controls illumination of lines. If off, constant colored lines are drawn (flat shading).
Animate: Activates particle-like animation. The animation speed may be controlled via the command setAnimationSpeed.
Color
Values smaller than 1 have the effect that line segments become more and more transparent in
backward direction.
Transparency
SurfaceISL
451
This port determines the resolution of the underlying triangular grid and thereby the smoothness of
the lines.
Seed
Seed value for the random number generator that distributes the seedpoints. Seed value of 0 triggers
a different distribution each time.
8.44
SurfaceLIC
This module visualizes a vector field defined on an arbitrary triangular surface using line integral
convolution (LIC). Alternatively, a 3D vector field projected onto such a surface can be visualized.
The LIC algorithm works by convolving a random noise function along field lines tangential to the
surface using a piecewise-linear hat filter. In this way for each triangle a small piece of texture is
computed and mapped back onto the surface. The final surface texture clearly reveals the directional
structure of the surface vector field. A similar 2D algorithm is implemented by the PlanarLIC module.
Press the Apply button to start the computation of the surface LIC texture. Computation may take a
minute or more depending on texture resolution and on the number of triangles of the surface.
Click here to execute a script demonstrating the SurfaceLIC module. Computation of the surface LIC
texture may take about half a minute.
Connections
Surface [required]
Surface for which a LIC texture is to be computed.
VectorField [required]
Surface vector field or 3D vector field to be visualized.
ColorField [optional]
An optional scalar field which can be used for pseudo-coloring.
Colormap [optional]
Colormap used for pseudo-coloring. If no colormap is connected the default color of the colormap
port will be used.
Ports
Colormap
452
ColorMode
Three different color modes are provided. If Constant is selected, then a uniform overall base color
is used for the LIC texture. This will be the default color of the colormap port or the left-most color
of the colormap connected to this port, if any. If Magnitude is selected, then the LIC texture will
be colored according to the magnitude of the vector field. Finally, if Color field is selected, and a
scalar field is connected to the module, then the LIC texture will be colored according to the values
of this scalar field.
Texture Interpolation
A radio box determining how the triangle textures are being filtered by the underlying OpenGL
driver. Possible choices are constant or bilinear interpolation. Usually, you will not see a big
difference unless you zoom up the image very much.
Contrast
This port provides two parameters controlling the amount of contrast of the final LIC texture. Input
field center specifies the average gray value of the texture. Higher values result in brighter images.
Input field factor determines the width of the gray value histogram, which is of Gaussian type.
Higher numbers produce more contrast.
Options
Parameter filter length specifies the one-sided length of the triangular filter kernel used for line
integral convolution. The larger this value, the more coherent the grayscale distribution along the
field lines. Often larger values are visually more attractive than smaller ones.
The second input determines the resolution of the LIC texture. More precisely, the width of a
single texture cell is chosen to be equal to the length of the diagonal of the incoming vector fields
bounding box divided by the value of the resolution field.
Commands
setAmbientColor <color>
Allows you to change the ambient color of the surface.
setDiffuseColor <color>
Allows you to change the diffuse color of the surface.
setSpecularColor <color>
Allows you to change the specular color of the surface.
SurfaceLIC
453
setShininess <value>
Allows you to change the shininess of the surface.
setCreaseAngle <value>
Neighboring triangles will share a common vertex normal if the angle between their face normals
is smaller than the crease angle. The default value is 60 degrees. This command lets you overwrite
this value. Note that discontinuities will appear if the triangles of the input surface are not oriented
in the same way. In order to fix this, use the command fixOrientation of the surface.
8.45
TensorDisplay
This module displays symmetric second order tensors using tensor glyphs. You can select either a
sphere, a cylinder, a cone, three lines, or quadric ellipsoids to indicate the tensor shape in a slice
through the volume.
The module can display positive definite tensors or tensors with negative eigenvalues. Positive definite
tensor fields occur, for example, in the form of diffusion tensors. Negative eigenvalues occur, for
example, in the analysis of rate of strain (stress) tensors.
Connections
Data [required]
A symmetric second order tensor field with 6 degrees of freedom.
Module [optional]
A connected EmptyPlane module which is used to orient the tensor display plane in space.
Colormap [optional]
Tensor glyphs can be colored by this colormap.
Color field [optional]
A scalar field which can be used to color the tensor display.
Mask [optional]
In order to restrict the display of tensors to a specific area, a mask volume can be attached. If such
a module is connected, an additional port is displayed with an expression to select a sub-area in the
mask. If you connect, for example, a label field as a mask, you can use an expression like A > 0 to
disable the display of tensors in the exterior part of the label field.
Shape data [optional]
You can connect any currently displayed geometry to this port and it will be used instead of the
settings in the Display port.
454
Surface [optional]
Connect a vertex set (like a surface) and the vertex positions of the surface will be used as sample
positions for the tensor field.
It is not possible right now to produce offset surfaces. Generate a label field in this case which can
be grown using the morphological operators available in the Segmentation Editor.
Ports
Display
Select either spheres, cylinders, cones, lines or quadric ellipsoids to be displayed at regular positions
in the tensor field.
Options
If you select this checkbox, only positive definite tensors will be computed by using a singular value
decomposition. This is the default setting for diffusion tensors. If you de-select this checkbox, a
standard algorithm for principal component analysis will be used, and also negative eigenvalues
may occur.
Mappings and colorings
The first drop down menu is only active if we have also negative eigenvalues (see port Options).
The negative eigenvalues can be mapped to positive eigenvalues by either using absolute values for
the eigenvalues, by doing a sigmoid mapping of the eigenvalues to 0..1 (eigenvalues close to zero
will be around 0.5), or by using the Cauchy-Green tensor or the Green strain tensor.
The color drop down menu allows you to color the tensors by either their fractional Anisotropy (FA)
with large values for tensors with a preferred direction, by their trace, or by either their first, second,
or third eigenvalue. You can also connect a ColorField to the module and the data values from this
volume will be used instead.
Scale by value
The tensor glyphs are scaled according to the value of their eigenvalues. If Eval2 and Eval3 are
disabled, the tensor is drawn with a default scaling of 1 to 1/2 for the first principal direction to the
second and third principal direction.
Display complexity
Values larger than 0.2 will increase the number of triangles used to display the glyphs.
TensorDisplay
455
Resolution
The number of glyphs sampled over the size of the EmptyPlane. Larger numbers result in more
dense tensor displays.
Colormap
This port is only available if a scalar field is connected to the Mask input port. Enter an expression
like A > 128 and the tensor display will be restricted to regions where the mask contains values
greater than 128.
Scale
Scales the tensor display. For larger resolution use smaller scalings.
8.46
TetToHex
The TetToHex module converts a tetrahedral grid to an equivalent hexahedral grid. Each tetrahedron
is converted to four hexahedra which have the same material ID as the parent tetrahedron. The new
hexahedral grid does not have the same point set as the original tetrahedral grid. The new point set
has more points, the new points being the center of each tetrahedron, the center of each face, and the
middle point of each edge.
The module also converts the data objects connected to the hexahedral grid.
Press the Apply button to start the computation.
Connections
Data [required]
Tetrahedral grid to be converted.
Ports
Options
Toggles whether the data objects connected to the tetrahedral grid are also converted or not.
456
8.47
TetraCombine
This module takes two tetrahedral grids as input, puts them together and creates a new combined grid.
TetraCombine provides an option to remove any duplicated triangles and vertices from its output. The
order in which the input grids are combined does not matter.
To make sure that both grids being combined fit exactly together, you can attach a GridVolume module
to the combined grid. When invoking that module, all exterior triangles of the grid are highlighted, i.e.,
all triangles which are incident to only one tetrahedron. The displayed triangles should all be located
at the outer boundary of the combined grid, not in its interior.
Press the Apply button to start the computation.
Connections
GridA [required]
The first input grid.
GridB [required]
The second input grid.
Ports
Options
Remove duplicated causes all duplicated points and triangles to be removed from the output.
Boundary
Mark exterior faces sets boundaryConditionId = 1 for all exterior faces. BoundaryConditionIds may be useful if a numerical simulation shall be performed on the resulting grid.
Check exterior faces checks whether all exterior triangles lie on a sphere around the center of the
bounding box of the grid.
8.48
TetraGen
The TetraGen module creates a volumetric tetrahedral grid. Its input is a description of the 3D geometry by triangulated surfaces. The advancing front method is applied to fill each region defined by the
surface data with tetrahedra. Tetrahedron generation can be performed on-line or as a batch job.
There are some reserved region names for the exterior region that should not be filled with tetrahedra
(otherwise the grid would extend to infinity): no name at all, Outside, and all names starting with
TetraCombine
457
Exterior. If you choose a different name for the exterior region, tetrahedron generation will fail.
Currently the SurfaceGen module creates correct names (Exterior and Exterior2), but the module
IvToSurface does not. You must edit the region names before applying TetraGen to a surface created
by the latter module.
Connections
Data [required]
The input surface file (suffix surf).
Ports
Region
The menu of this port allows you to specify whether tetrahedra should be generated for all regions
or just for one selected region. The latter choice is needed for testing purposes only.
Options
If toggle improve grid is set, the quality of the resulting tetrahedral grid will be improved in a
post-processing step. A combined smoothing will be applied which includes moving inner vertices
and flipping inner edges or faces of the grid.
If toggle save grid is set, an additional port Grid will be displayed where you can enter a filename.
The resulting tetrahedral grid will be automatically saved under that filename. This toggle must be
set if tetrahedron generation shall be performed as a batch job.
Grid
This port is only visible if toggle save grid at port Options is set. Here you can define the filename
for the resulting tetrahedral grid. We recommend including a suffix grid in the filename.
Action
If you press the Meshsize button, an editor window appears. It allows you to define a desired mesh
size for each region. Note that there are predefined values for some materials in Avizos material
database. Check whether these values are appropriate for your application.
By default, TetraGen generates tetrahedra that have the same mean edge length as the source surface object. By means of the Meshsize editor the prescribed edge length can be modified. The
algorithm will then try to change the mean edge length of the tetrahedra by starting with the mean
458
edge length of the surface at the periphery of the region and increasing/decreasing it towards the
center of the region so that in the center of the region the meshsize will match the value of parameter MeshSize of the Meshsize editor. The current mean edge length of a region is queried by
<surface-object> getMeanEdgeLength <n> in the console window, with <n> being
the material number (0 = Exterior).
After you have set up the simulation, you can commit it by pressing the Run batch or the Run now
button. If the file specified at port Grid already exists, a warning message is issued. If you dont
want to overwrite the file, press Cancel and change the filename.
If you press the Run batch button, the job dialog window appears, showing the status of the job
queue. If you press the Start button, the first pending job of the queue starts running.
If you press the Run now button, tetrahedron generation will be performed on-line. This may take
some time for large surfaces. The progress bar indicates the current region and which part of its
volume is already filled with tetrahedra.
8.49
TetraQuality
The TetraQuality module computes different quality measures for tetrahedral grids. For this purpose
it can be attached to a Tetra Grid object as well as a Grid Volume module. Quality is calculated for
all tetrahedra in the first case, and for all tetrahedra selected by the Grid Volume module in the second
case. The output is a scalar field defined on the tetrahedral grid and equal to 0 on the non-selected
tetrahedra.
The user can create a histogram of the quality for the tetrahedral grid. By default, the histogram is
shown with a logarithmic scale to direct the focus on the tetrahedra with worst quality.
Press the Apply button to start the computation.
Connections
Data
The tetrahedral grid.
Grid volume
A Grid Volume module that selects the tetrahedra for which the quality is calculated.
Either the Data or Grid volume connection is required. The other one then becomes optional.
Ports
Quality Measure
This option menu lets you select between different quality measures:
TetraQuality
459
460
This slider lets you select the number of samples for the histogram. The default values should be
adequate.
Histogram
If you select this toggle, a plot window will appear, once youve pressed Apply, showing the histogram of qualities for all selected tetrahedra. If no tetrahedra have been selected, the plot window
will not be shown.
8.50
TetraVectors
Connections
Data [required]
The 3D tetrahedral vector field to be visualized.
PortModule [required]
The GridVolume or GridBoundary master module.
Colormap [optional]
An optional colormap used for coloring the magnitude of the vectors.
Ports
Colormap
Choose a colormap to control how lines/arrows are colored. In order to see an effect the colormap
must be connected to the module. The vector magnitude is used to lookup a color from the colormap.
Scale
TetraVectors
461
Options
Constant: If this option is set then all lines/arrows will be of equal length. Otherwise, the length is
chosen to be proportional to vector magnitude.
Arrows: Choose between simple lines and arrows
Points: If this option is set then a little dot will be drawn at the bottom of an arrow. This is
useful to highlight a point at locations where the vector magnitude is so low that the arrow vanishes
completely.
Show
All Vectors: If this radio option is on the vectors from all nodes are displayed.
On Surface: Only those vectors are displayed which lie on the surface of the selected boundaries.
In Volume: All vectors of all selected tetrahedrons are shown.
Phase
This port will only be visible if a complex-valued vector field is connected to the module. It provides
a phase slider controlling which part of the complex 3D vectors is visualized by the arrows. A value
of 0 degree corresponds to the real part, while a value of 90 degrees corresponds to the imaginary
part. The display can be animated with respect to the phase by the cycle button, this way polarization
properties of the field can be revealed or wave phenomena become visible.
Commands
setLineWidth <value>
Allows to change the line width of the arrows. By default arrows are drawn two pixels wide.
setPointSize <value>
Allows to change the size of the points at the bottom of the arrows. By default points are drawn two
pixels wide.
setLogScale 0|1
Switches logarithmic scaling on or off.
8.51
TriangleQuality
The TriangleQuality module computes the triangle qualities for a triangular surface. You can attach
to the result a SurfaceView module to visualize the triangle qualities or a Histogram module to plot a
462
histogram of triangle qualities. You can also use the TriangleQuality module in conjunction with the
Surface Editor to detect the worst triangles and manually repair them.
Press the Apply button to start the computation.
Connections
Data [required]
A triangular surface.
Ports
Average edge length
This option menu lets you select between different quality measures:
R / r: Ratio of diameters of circumscribed and inscribed circle. The optimal (minimal) value
is 2.
Largest Angle: Computes the largest angle [degree] of each triangle. For numerical applications obtuse angles above 90 degree should be avoided.
Dihed Angle: Computes the dihedral angle [degree] for each pair of adjacent triangles. Small
dihedral angles below 5 - 10 degree should be avoided.
Triangle Number: For testing purposes only: assigns the triangle number to each triangle.
8.52
VectorProbe
The VectorProbe module allows you to interactively investigate a 3D vector field by moving around a
dynamic vector field probe. The probe displays certain quantities associated to the first order derivative
of the field in an intuitive way. This kind of probe has been originally proposed by W.C. de Leeuw
and J.J. van Wijk in A Probe for Local Flow Field Visualization, Proceedings of Visualization93, pp.
39-45. It looks as follows:
Connections
Data [required]
The 3D vector field to be visualized.
VectorProbe
463
Ports
Dragger
Shows or hides the dragger and the vector field probe attached to it. The dragger provides a cylinder
handle and a square plate handle. The cylinder handle allows you to translate the icon along the
center axis. The orientation of the cylinder can be changed using the [Ctrl] key while the mouse
is located somewhere over the dragger.
Buffer
Adds the current vector field probe to an internal buffer. In this way multiple probes can be displayed
at once.
Scale
464
8.53
Vectors
This is a so-called overlay module which can be attached to any module defining a cutting plane, e.g.
OrthoSlice or ArbitraryCut. Inside this plane a 3D vector field can be visualized using a regular array
of vector arrows.
Connections
Data [required]
The 3D vector field to be visualized.
Module [required]
The module which defines the cutting plane where the arrows are placed.
Colormap [optional]
An optional colormap used for pseudo-coloring.
Ports
Colormap
Provides two text inputs defining the resolution of the regular array of vector arrows in the planes
local x- and y-direction. The larger these values are the more arrows are displayed.
Scale
Vectors
465
Projection: If this option is set then 3D vectors are projected into the current plane. Otherwise, the
arrows will indicate the true direction of the vector field.
Constant: If this option is set then all arrows will be of equal length. Otherwise, the length of the
arrows is chosen to be proportional to vector magnitude.
Arrows: If this option is set then true arrows will be displayed. Otherwise, only simple line segments
will be drawn.
Points: If this option is set then a little dot will be drawn at the bottom of an arrow. This is useful to
highlight a sampling point at locations where the vector magnitude is so low that the arrow vanishes
completely.
Absolute scale: If this option is set then vector length are mapped directly to physical space. If not
set, a data-dependent scaling is performed first.
Colorize
An option menu allowing to control how arrows are colored. In order to see an effect a colormap
must be connected to the module. If Magnitude is chosen then the vector magnitude is used to
lookup a color from the colormap. If Normal component is chosen then color denotes the signed
length of the vector component perpendicular to the cutting plane. This length is positive if the
vector points upwards or negative if the vector points downwards. Finally, if Parallel component is
chosen then color denotes the length of the vector component tangential to the plane. This length
will always be greater or equal than zero.
Phase
This port will only be visible if a complex-valued vector field is connected to the module. It provides
a phase slider controlling which part of the complex 3D vectors is visualized by the arrows. A value
of 0 degree corresponds to the real part, while a value of 90 degrees corresponds to the imaginary
part. The display can be animated with respect to the phase by the cycle button, this way polarization
properties of the field can be revealed or wave phenomena become visible.
Commands
setLineWidth <value>
Allows to change the line width of the arrows. By default arrows are drawn two pixels wide.
8.54
Vectors/Normals (Surface)
466
- attached to a SurfaceView module, it shows the normals on the Surface displayed by the module.
Only the normals corresponding to selected patches/triangles are displayed; the normal binding in the
SurfaceView module (triangle normals, vertex normals or direct normals) is respected.
- attached to a 3D vector field defined on a Surface,it visualizes the whole vector field
- connected to both SurfaceView module showing a Surface and a 3D vector field defined on the same
Surface, it displays the vector field only in the selected regions of the surface.
The representation can be done using simple lines or arrows. In the case of vector fields it can be
chosen between a constant length or a magnitude - dependent length of the lines/arrows. The lines are
colored using the colormap.
Connections
Data [optional]
The 3D vector field to be visualized. If there is no vector field, the normals on surface are displayed.
Surface view [optional]
The SurfaceView master module.
Colormap [optional]
An optional colormap used for coloring the magnitude of the vectors.
Ports
Colormap
Choose a colormap to control how lines/arrows are colored. In order to see an effect the colormap
must be connected to the module. The vector magnitude is used to lookup a color from the colormap.
Scale
Constant: (Only for vector fields) If this option is set then all lines/arrows will be of equal length.
Otherwise, the length is chosen to be proportional to vector magnitude.
Arrows: Choose between simple lines and arrows
Points: (Only for vector fields) If this option is set then a little dot will be drawn at the bottom of an
arrow. This is useful to highlight a point at locations where the vector magnitude is so low that the
Vectors/Normals (Surface)
467
arrow vanishes completely. Tangent: (Only for vector fields on triangle center) If this option is set
then only the tangent component of the vector is shown.
Commands
setLineWidth <value>
Allows to change the line width of the arrows. By default arrows are drawn two pixels wide.
setPointSize <value>
Allows to change the size of the points at the bottom of the arrows. By default points are drawn two
pixels wide.
setArrowSize <value>
Allows to change the size of the arrows.
468
Chapter 9
BeadExtract
This module can be used to resample and average the image of one or multiple beads, i.e., fluorescing
sub-resolution microspheres, thereby obtaining an approximation of a point spread function (PSF)
required for non-blind deconvolution.
The module must be connected to the image data set containing the measured beads as well as to
a landmark set indicating the center positions of all beads to be resampled and averaged. The whole
process of obtaining a point spread function from a bead measurement is described in a separate tutorial
on bead extraction. Please refer to this tutorial for more information on how to use the module.
Press the Apply button to actually extract the beads with the center of the resulting data set corresponding to the current positions of the landmarks. The image volume around every landmark is extracted
and resampled using a Lanczos filter (compare the Resample module). The resampled bead images are
then added to the result object. The final PSF is not normalized.
Connections
Data [required]
Connection to a uniform image data set containing measured beads.
Landmarks [required]
Connection to a landmark set indicating the center positions of the beads to be resampled and
averaged.
Ports
Info
Specifies the number of voxels of the final PSF image to be generated. If a PSF image is connected
as a result object to this module, the port becomes insensitive and the number of voxels of the result
object are used.
Voxel size
Specifies the voxel size of the final PSF image to be generated in micrometers. If a PSF image is
connected as a result to this module, the port becomes insensitive and the voxel size of the result
object is used.
Preprocess
Adjust centers: If this button is pressed, the landmark positions of the data set connected to port
Landmarks are shifted to the center of gravity of the corresponding bead. It is required that the
initial landmark positions be inside the bead images and that neighboring beads do not overlap
significantly. Otherwise incorrect center positions may be computed.
Estimate size: If this button is pressed, the desired number of voxels of the final PSF image specified
in port Resolution are computed automatically. Before this is done the beads center positions
already should have been adjusted. The estimate is computed by determining the extent of the
biggest spot around any landmark. Again, it is required that neighboring beads do not overlap
significantly. The Estimate size button becomes insensitive if a result object is connected to the
module. In this case always the size of the existing PSF image will be used.
Undo: Undoes the effect of any of the previous two buttons. For example, if wrong center positions
have been computed after pressing Adjust centers, the original landmark positions can be restored
using the Undo button.
9.2
Convolution
This module convolves two uniform 3D data objects with each other by Fourier transforming the
two inputs, multiplying them, and then transforming them back. The module is part of the Avizo
deconvolution modules. It can be used for example to verify the results of image deconvolution.
470
The bounding box and voxel sizes of the input data set and the convolution kernel are ignored by this
module. Use the Resample module to make sure that the resolution of both inputs is identical.
Press the Apply button to start the computation.
Connections
Data [required]
The data set to be convolved.
Kernel [required]
The convolution kernel.
Ports
Border width
Defines the size of the border region. A border region is necessary if the input data set doesnt fade
out to black at the boundaries.
Options
If normalize kernel is selected, the integral of the convolution kernel (connected to port Kernel) will
be normalized to one. If this is not the case, the intensities of the convolved data set will be scaled
by the actual integral.
If apply noise is selected, the values of the convolved data set will be multiplied by random numbers
uniformly distributed around 1 (white noise).
Noise level
This port will only be shown if the apply noise option of the Options port has been selected. It
specifies the amount of noise applied to the output, i.e., the range of the random numbers around 1,
by which the result is multiplied.
9.3
CorrectZDrop
This module lets you fix artifacts in 3D microscopic images caused by light absorption in other slices.
If such artifacts are present, the average intensity in lower slices seems to be decreased. This so-called
z-drop or intensity attenuation can be corrected automatically by fitting an exponential curve to the
average intensities in each of the slices, or manually by providing a user-defined formula.
Press the Apply button to start the computation.
CorrectZDrop
471
Connections
Data [required]
The image data exhibiting a z-drop artifact. Scalar fields with uniform or stacked coordinates as
well as multi-channel fields are supported.
Ports
Mode
This port is only available if manual mode has been selected. It provides a text field where you
can enter a formula specifying a factor used to multiply the intensity values in each slice. Within
the formula the variable u specifies the slices. u will take the value 0 for the first slice and 1 for
the last slice. For the other slices it takes intermediate values depending on the actual slice location (this makes support of stacked coordinates easy). In automatic mode the following formula
a*exp(b*u) will be used, where a and b are fitted automatically. If you first perform an automatic z-drop correction and then switch to manual mode, the fitted exponential will be displayed in
the ports text field.
9.4
DataPreprocess
This module can be used to apply both a background and a flatfield correction to a raw 3D image stack.
For the background correction, a single background image must be provided at the background port of
the module. The background image should be a nearly black image recorded with the cameras shutter
closed. This image is subtracted from all slices of the 3D input data set, thus compensating for any
dark current of the cameras CCD detector.
For the flatfield correction, a single flatfield image must be provided at the flatfield port of the module.
The flatfield image should be an unfocused almost white image taken from a drop of homogeneously
fluorescing dye. The intensities of the 3D input image are then scaled according to the normalized
intensities of the flatfield images. The input image gets brighter at pixels where the flatfield is dark
and vice versa. In this way non-uniform sensitivity of the cameras CCD detector is compensated for.
If both a flatfield and a background image are present, the background is subtracted from the flatfield
too.
Press the Apply button to start the computation and produce a corrected output data set.
472
Connections
Data [required]
The raw 3D image stack to be corrected. Any regular scalar field with uniform coordinates is
supported.
Background [optional]
An optional 2D background image with the same number of voxels in the x and y directions as the
3D input image. If an input is present at this port, a background correction is performed (see above).
Flatfield [optional]
An optional 2D flatfield image with the same number of voxels in the x and y directions as the input
image. If an input is present at this port, a flatfield correction is performed (see above).
Ports
Background
Displays the mean value and the standard deviation of the background image, if such an image is
present. Only the first slice is considered.
Flatfield
Displays the mean value and the standard deviation of the flatfield image, if such an image is present.
Only the first slice is considered.
9.5
Deconvolution
This module is the front-end for deconvolving 3D microscopic images. Two different iterative
maximum-likelihood image restoration algorithms are provided, a non-blind one and a blind one. For
a general description of the deconvolution process, please refer to the provided tutorials.
The resulting deconvolved data set will be stored in the Pool. If no input PSF is specified or if the blind
deconvolution algorithm has been selected, the estimated PSF will be stored in the Pool also.
Press the Apply button to start the deconvolution process. Since deconvolution is a time consuming
operation, it optionally can be performed as a batch job (see the Action port below).
Connections
Data [required]
The data set to be deconvolved.
Deconvolution
473
Kernel [optional]
The point spread function (PSF) to used for deconvolution. If no PSF is specified, an estimated PSF
is calculated automatically based on the numerical aperture of the microscope, the wavelength of
the emitted light, and the refractive index. If a blind deconvolution is to be performed, an input PSF
(if connected) will be used as an initial estimate.
Ports
Border width
Defines the size of the border region. A border region is necessary if the input data set doesnt fade
out to black at the boundaries. For performance reasons it might advisable to choose values such
that the sum of the size of the input data set and the border width results in a power of two. For
example, if the data set consists of 118 slices, a border width of 10 slices in z direction would be a
good choice.
In the case of widefield data it is sometimes advisable to have the border width in z direction exactly
as large as the data set itself. If this is the case, the border region will be initialized by mirroring the
values from the actual data volume. Otherwise, the values of the first slice and of the last slice will
be interpolated linearly.
Iterations
Specifies the initial estimate of the deconvolution algorithm. If const is chosen, a constant image is
used initially. Often, this yields smoother results than the second option, namely input data. The
third option (previous result) is only available if the input data set has already been deconvolved
previously. Use this option if you want to apply some additional deconvolution iterations.
Overrelaxation
474
Method
This port specifies whether standard (non-blind) or blind deconvolution should be used.
PSF Parameters
Parameters for calculating the point spread function. This port will only be shown if standard (nonblind) deconvolution has been selected and no input PSF was specified, or if blind deconvolution
has been selected, in which case these parameters act as constraints.
NA denotes the numerical aperture of the microscope. lambda denotes the wavelength of the emitted
light in micrometers with the voxel sizes also being interpreted in micrometers. Finally, n denotes
the refractive index of the specimen.
Microscopic Mode
Selects whether the input image has been recorded using a widefield microscope or using a confocal
microscope. This is important for the PSF generation as well as for the selection of appropriate
constraints during blind deconvolution.
Action
Since deconvolution is a time consuming operation, it optionally can be performed as a batch job.
A batch job can be submitted using the Batch job button. If this button is pressed, first a dialog
is popped up allowing you to specify the filename of the final deconvolved data set as well as the
number of optional check point files. A check point stores an intermediate result obtained after a
certain number of iterations have been performed. The actual deconvolution job is started via the
job dialog accessed by File / Jobs menu item. The job dialog is popped up automatically after the
job has been finally submitted, but this may take a few seconds if there are currently no jobs running.
9.6
DistanceMap
This module computes a 3D distance field of a 3D object. Each voxel will be assigned a value depending on the distance to the nearest object boundary. The boundary voxels of the object are assigned a
value of zero whereas the assigned value increases as the distance increases.
To use this module it must be connected to a uniform scalar field or label field where each voxel with
a nonzero value is assumed to belong to the object.
Press the Apply button to start the computation.
DistanceMap
475
Connections
Data [required]
Uniform scalar field or label field from which the distance map is computed.
Ports
Type
You may either choose a true Euclidean distance metric or an approximation based on a 3x3x3
chamfer metric. The latter is much faster to compute and accurate enough for most applications.
Single Seeded computes a distance map which expresses the distance from a single seed point rather
than from the boundary.
Chamfer Weights
This port is only available in chamfer mode. Different chamfer metrics are available. The 1-2-3
metric is equivalent to only considering a 6-neighborhood when propagating the distance value,
whereas the 3-4-5 considers a 26-neighborhood and is a better approximation of the Euclidean
distance metric. Float also corresponds to a 26-neighborhood but the resulting field will have float
data type instead of short int.
Region
This port is not available in Single Seeded mode. Choose in which region the distance field will be
computed:
Inside: Inside the object (outside will be set to zero).
Outside: Outside the object (inside will be set to zero).
Both (unsigned): Inside and outside the object. A positive distance is computed whether the
position is inside or outside the object.
Both (signed): The distance value will be negative at a position inside the object and positive
outside the object.
Point
This port is only available in Single Seeded mode. Specifies the seed point for the distance map in
world coordinates. You can use a dragger to adjust it.
476
9.7
FourierTransform
This module computes a discrete forward or backward Fourier transform from a scalar input data set
with uniform coordinates. Alternatively, the power spectrum, i.e., the squared magnitude of the Fourier
transform can be computed.
The origin of the input data set will be ignored by this module. Also, instead of being expressed in
wave numbers, the bounding box of a Fourier transformed data set will be the same as the bounding
box of the input.
Press the Apply button to start the computation.
Connections
Data [required]
The input data to be Fourier transformed.
Ports
Mode
9.8
PSFGen
This module can be used to compute a point spread function (PSF) for deconvolution of widefield and
confocal microscopic image data. PSF computation is based on electromagnetic vector theory. It can
be created by selecting it from the Create / Others menu of the main window.
FourierTransform
477
Connections
Data [optional]
A uniform scalar field (usually the image data to be deconvolved) can be connected to this port. The
values of the Resolution and Voxel size ports will be set automatically to the values of the input field
then.
Ports
Resolution
Parameters for calculating the point spread function. NA denotes the numerical aperture of the
microscope. lambda denotes the wavelength (as measured in a vacuum) of the emitted light in micrometers. For confocal data the excitation and emission wavelength are assumed to be identical. In
this case it might prove useful to compensate by supplying a value between excitation and emission
wavelength as parameter. Finally, n denotes the refractive index of the specimen.
Microscopic Mode
Specifies whether the PSF of a widefield microscope or of a confocal microscope should be computed.
478
Chapter 10
AlignBlocks
The AlignBlocks module is for aligning the blocks of a mosaic. During the acquisition of the image
blocks of a mosaic, it may happen that the blocks are not perfectly aligned. This module computes the
best adjustment between overlapping blocks, i.e., finds the translations between each pair of blocks
that minimizes the difference in the common part of the two images.
Press the Apply button to start the computation.
Connections
Data [required]
Mosaic
Ports
Mosaic name
Stores the filename of the final mosaic and of the temporary files: during the planar alignment, the
module creates 2D projections of the image blocks. These projections are stored with the extension
nb.mip.am where nb represents the number of the block in the mosaic.
Max Trans. X (pixels)
Gives the corresponding value in image units (for example, if the voxel size is given in micrometers,
gives the maximum translation in micrometers).
Max Trans. Y (pixels)
Gives the corresponding value in image units (for example, if the voxel size is given in micrometers,
gives the maximum translation in micrometers).
Max Trans. Z (pixels)
Gives the corresponding value in image units (for example, if the voxel size is given in micrometers,
gives the maximum translation in micrometers).
Alignment
This port allows you to select either the SSD (sum of squared differences) or the correlation method
for computing how well the blocks are aligned.
10.2
ApplyMask
This module can be used to segment a LargeDiskData file block by block. It allows you to apply a
mask to the LargeDiskData file in order to remove or add parts.
480
Attach it to the LargeDiskData file containing the labels and attach a Labelfield containing the mask
to the second input connection.
After selecting which materials in the Labelfield describe regions to be added (set to material 1) in the
LargeDiskData and which regions should be deleted (set to background), press the Apply button.
Connections
Data [required]
The connection to the LargeDiskData object.
Mask [required]
The connection to a Labelfield containing the mask.
Ports
Add
Select the material describing the region which will be set to 1 in the LargeDiskData object.
Delete
Select the material describing the region which will be set to 0 in the LargeDiskData object.
10.3
ApplyTemplateToMosaic
This script object is useful if you want to apply the same compute module or digital image filter to
each brick of a mosaic. You will need to build a network as shown in the figure:
ApplyTemplateToMosaic
481
If you plan to apply a compute module, e.g., CorrectZDrop, load one brick and apply the compute
module to this brick. Connect the Template input port of ApplyTemplateToMosaic to the compute
module. To start the processing, press Apply.
If you want to apply a digital image filter to every brick, load one block, start the editor on it, and select
the parameters. Connect the Template input port to this data object and press Apply to run the filter on
all bricks.
Connections
Data [required]
The Mosaic to be processed.
Template [required]
The module providing the template which will be applied to all bricks.
482
10.4
AutoSkeleton
This module extracts the centerline of filamentous structures from image data. The module works on
labelfields as well as on gray value images, in which case the image is segmented on the fly with a
user defined threshold value. The module basically wraps up a couple of single compute modules that
had to be executed in sequence. It first calculates a distance map of the segmented image (see DistanceMapSkeleton), then performs a thinning of the labelfield such that finally a string of connected
voxels remains (see Thinner). The voxel skeleton is then converted to a SpatialGraph object (TraceLines). The distance to the nearest boundary (boundary distance map) is stored at every point in the
SpatialGraph object as thickness attribute (EvalOnLines). This value may be used as an estimate of
the local thickness. The module takes both regular image data (uniform scalar field) as well as out-ofcore image data in the LargeDiskData format as input. The result are lines with thickness information
stored in the SpatialGraph format. Push the Apply button to start the computation.
Note: The thickness attribute is computed by AutoSkeleton module as a discrete chamfer distance
multiplied by 1/3 of voxel size, with a minimum of half voxel size. This may be used as an estimate
of the local thickness.
See also Skeletonization Userss Guide.
Connections
Data [required]
The image or label data set to be processed. Data can be of type HxUniformScalarField3, HxUniformLabelField3, or HxDiskData.
Ports
Threshold
This port is available only if the module is connected to a gray value image. In this case this port
specifies the threshold by which the data is segmented prior to extracting the centerline.
Preview
This port is available only if the module is connected to a gray value image. If the box is checked a
Volren visualization with diffuse shading is created using the value at port Threshold as minimum
and maximum range.
Alpha
AutoSkeleton
483
This port is available only if the module is connected to a gray value image. The slider lets the user
adjust the transparency of the volume rendering in order to view the simultaneous display of the
SpatialGraph data.
Max Radius
This port is available only if the module is connected to a LargeDiskData object. The value at this
port specifies the maximum radius (in voxel) an object may have for the distance transformation to
be calculated correctly.
Options
Smooth Check this option to perform a smoothing of the traced SpatialGraph object. The
default setting is on.
create SpatialView Check this option to automatically visualize the extracted SpatialGraph
object. The default setting is on.
Coefficients
This port is available when the Smooth option is checked. The value at smooth is a coefficient that
controls the influence of neighboring points on the position of a point. The parameter can take
values greater than 0 and smaller than 1. The greater the value the smoother the result SpatialGraph
becomes. The value at attach to the data controls the influence of the initial coordinate on the new
position. The higher the value the more the initial position will be retained. The values should not
be equal or greater 1. The default is 0.25.
Number of iterations
This port is available when the Smooth option is checked. Specify here the number of iterations the
smoothing should be performed. The default setting is 10.
Expose Objects
Checking one or more of the 3 boxes makes AutoSkeleton exposing intermediate data objects in the
Pool.
Distance map Check this option to have the distance map as separate object in the Pool.
Thinned data Check this option to have the thinned label field as separate object in the Pool.
484
Trace line Check this option to get the raw SpatialGraph object in the Pool.
The following ports are available only if the module is connected to a LargeDiskData object. In this
case the location of intermediate files are specified in the ports below.
Distance map output
10.5
CenterlineTree
This module extracts the centerlines of a labelfield object. Different than AutoSkeleton it searches for
a graph with tree topology and will not generate loops. If the object contains loops this module will
not fail, instead it will just ignore certain connectivity so that the tree topology of graph is preserved.
The primary output of the object is a SpatialGraph representation of the centerlines. The Euclidean
distance to the nearest boundary (boundary distance map) is stored at every point in the SpatialGraph
object as thickness attribute. This value may be used as an estimate of the local thickness. At least half
of the length of the diagonal of one voxel is stored to avoid zero thicknesses.
The module implements the TEASAR algorithm as originally described in:
TEASAR: tree-structure extraction algorithm for accurate and
robust skeletons Sato, M.; Bitter, I.; Bender, M.A.; Kaufman,
A.E.; Nakajima, M. Computer Graphics and Applications, 2000.
Proceedings. The Eighth Pacific Conference on Volume , Issue ,
2000 Page(s):281 - 449
Connections
Data [required]
The labelfield containing the filamentous object.
CenterlineTree
485
Ports
Maps
In addition to the primary output (lineset) the module can provide some internal data structures:
Tubes params
Each branch of the tree has a volume associated with it. This tube like volume is covered by this
branch. The slope and zeroVal are the parameters of a formula used to calculate the shape of the
tube. All voxels not further away than slope * boundarydistance + zeroVal (all measured in voxels)
are covered by a branch and will be excluded from the search for more endpoints. This mechanism
avoids detecting too many side branches. The parameters allow to tune the mechanisms sensitivity
to small features on the surface of the object.
Num parts
Using this parameter you can restrict the number of branches found during the search. If the input
data set contains only one connected object, CenterlineTree will start finding the longest branches.
Num parts offers a way to search for a specified number of longest branches. If set to -1 all branches
will be found.
Options
If you uncheck auto root a dragger will appear which allows to manually set a point in 3D space
which is forced to belong to the tree. If you uncheck all components only the component connected
to the manual root will be processed resulting in a centerline tree which is fully connected.
Point
486
Use this port together with its dragger in the viewer to specify a starting point for the search.
10.6
ChamferMap
Connections
Data [required]
LargeDiskData (should be segmented).
Ports
Filename
The result chamfer map will be saved as a LargeDiskData, but with additional parameters in the
parameter database:
ChamferMapScaleFactor: factor to scale your chamfer map with the same units as your voxel
units. For example, if the voxel size of your image is expressed in micrometers, divide
your distance map by the ChamferMapScaleFactor and you will obtain a chamfer map in
micrometers.
ChamferMap
487
ChamferMapMaxRelError: gives the max relative error relative to the exact Euclidean distance.
ChamferMapIsExact: is set to 1 if ChamferMapScaleFactor = 1; is set to 0 otherwise.
Mask dimension
Choose 2D if you want the chamfer map to be computed slice by slice without considering the
previous and following slices. This option is not available for anisotropic images.
Mask size
The mask size for isotropic images. The wider the chamfer mask, the more precise the chamfer
map, but the longer it takes to compute. This option is not available for anisotropic images.
Map location
Determines the sign of the points of the foreground if you have chosen foreground in the Map
location port, or the sign of the points of the background if you have chosen background.
Float exact map
Computes a distance map in the same units as the voxel size units.
488
10.7
CheckNetwork
The module detects open ends and branching points with more than 3 branches in an attached Lineset.
It sorts these points and moves a SelectRoi object to be centered at one point after another. The focus
is attracted to the selected point by a red semi transparent sphere.
Connections
Data [required]
LineSet.
SelectRoi [optional]
Roi (Region of Interest) to be moved.
Ports
Info
Fraction of the length of one side of the bounding box to be ignored on each side. 0 means take all,
0.5 ignores everything.
Action
CheckNetwork
489
Every point already visited is marked in the lineset. clear visited removes these markers.
rm unconn lines keeps only the largest connected component in the lineset.
10.8
DisplayMosaic
Connections
Data [required]
The Mosaic to be displayed.
Ports
Brick
10.9
DistanceMapSkeleton
Calculates a distance map from a labelfield. In a distance map the value of each voxel is equal to the
distance to the nearest border voxel. In the context of skeletonizing filamentous structures a distance
map is needed on the one hand to guide the thinning procedure and on the other hand to provide an
estimate of the thickness (radius) of a fiber. The module can be used together with Thinner to calculate
the centerline of filamentous structures. DistanceMapSkeleton is also engaged internally when using
the AutoSkeleton module. Press Apply to trigger computation.
Connections
Data [required]
Labelfield to be processed. Can be a regular LabelField or of type LargeDiskData in which case the
output is of the same type.
490
Ports
Filename
This port is available only if the module is attached to a LargeDiskData object. Specify here the
name of the output file.
Max Radius
The value at this port specifies the maximum radius (in voxel) an object may have for the distance
transformation to be calculated correctly.
Do it
10.10
EvalOnLines
The module takes an object of type SpatialGraph and a uniform scalar field field (e.g. distance map)
as input. The field is evaluated at each point of the SpatialGraph and the result is stored there as the
thickness (radius) attribute. Press the Apply button to start the computation.
Connections
Data [required]
The SpatialGraph object.
Field [required]
The uniform scalar field to be sampled.
10.11
HxScanconvertNeuronTree
The module creates a closed surface representation from SpatialGraph data. It does so by modeling
each segment of the SpatialGraph object as the centerline of a tube with particular radius given as
thickness attribute in the SpatialGraph object. Optionally, an object holding the coordinates of so
called blebs maybe attached to the module. The term Blebs is used in the Neurosciences and
depicts swellings in the fiber of a neuron. Blebs are assumed to be locations with increased synapse
density. If such an object is connected, small spheres are inserted intersection-free into the surface.
EvalOnLines
491
Connections
Data [required]
An object of type SpatialGraph containing the skeleton of the image data.
Blebs [optional]
The data set containing the coordinates of blebs. Can be of type Cluster.
Ports
Params1
depth
scandims
impoints
Params2
blebsize
edge length
10.12
MosaicToLargeDiskData
The module takes a Mosaic containing bricks of overlapping image data and converts them to one
LargeDiskData object stored on disk.
Press the Apply button to start the computation.
Connections
Data [required]
The Mosaic object containing the references to the blocks of image data stored on disk.
492
Ports
Info
Select autodims to use the same voxel size as in the input images.
For seamless transitions between bricks, select blend.
add border extends the result by some amount to guarantee voxels with value 0 at the boundaries.
You can specify the border in port Border.
Specify
This port is only visible if autodims is not selected. It allows you to switch between specifying dims
or the voxelsize of the result.
Dims
The dimensions of the resulting image. To modify them, autodims must be deselected.
Voxelsize
The voxelsize of the result. You might either specify the dims or the voxelsize.
MosaicToLargeDiskData
493
Border
Specifies the size of the border to be added on each side of the mosaic. The port is hidden if add
border is not selected.
10.13
RadiusHistogram
This module takes as input a SpatialGraph object resulting from a skeletonization and that stores a data
that is supposed to be, in Avizo XSkeleton Pack, the distance to the nearest boundary at every point of
the SpatialGraph object. This thickness attribute may be used as an estimate of the local radius.
This module plots the histogram of the normalized contribution of each radius in a given radius range.
More explicitly, considering the part of the skeleton where the radius is included in the given range,
the module plots the histogram of the percentage of the total length of this part of skeleton represented
by each radius.
Connections
Data [required]
A SpatialGraph object resulting from a skeletonization and that stores the local radius at each point.
Ports
Radius range
Press the Histogram of radius button to display the histogram. Press Reset to reset Radius range
and Nb bins ports.
Original data
.png
494
The values gathered under this port are the range, median value, mean value, variance and standard
deviation of the radius for all the points of the SpatialGraph data.
Histogram
The values gathered under this port are computed at all points which radius belongs to the range of
radius under consideration in the histogram (this range is the range set in the Radius range port).
10.14
SmoothLine
Used to perform a smoothing of the traced Spatial Graph or Line Set object. Uses a point averaging
algorithm. Calculates an average based on the positions of existing coordinate pairs and neighbors.
Only the end points remain the same. Maintains the same number of points as the original line.
Connections
Data [required]
Where data can be a Spatial Graph or a Line Set which is used as input for the smooth operation.
Ports
Coefficients
The value of smooth is a coefficient that controls the influence of neighboring points on the position
of a point. The parameter can take values greater than 0 and smaller than 1. The greater the value
is, the smoother the result is. The value of attach to the data controls the influence of the initial
coordinate on the new position. The higher the value the more the initial position will be retained.
The values should not be greater than or equal 1. The default is 0.25.
Number of iterations
Specifies the number of smoothing iterations that should be performed. The default is 10.
10.15
Thinner
The module takes as input a labelfield to be thinned and a distance map scalar field. It removes voxel
by voxel from the segmented object until only a string of connected voxels remains. This thinning is
ordered according to the distance map input.
SmoothLine
495
Connections
Data [required]
Labelfield to be processed. Can be a regular LabelField or of type LargeDiskData in which case
the output is of the same type. When used with external data on disk, the Thinner module expects
a black border around the data. This border should be at least of size length of ends (see below).
The data should have a data parameter BorderWidth specifying border for the 3 dimensions, for
instance BorderWidth 15 15 15.
Distmap [required]
Distance map of the labelfield. The thinning algorithm expects the distance map input to use positive
short integers. Also a 15 voxel border must be added in current implementation.
Ports
Filename
This port is available only if the module is attached to a LargeDiskData object. Specify here the
name of the output file.
Temp filename
This port is available only if the module is attached to a LargeDiskData object. Specify here the
name of a temporary file needed by the algorithm.
Extended Options
Check this box to get extended options.
Len of ends
The value in this field is given in terms of voxels and controls the modules sensitivity to generate
branch points. The higher the value the lower the sensitivity.
Note: When using Thinner with disk data, you can set the length of ends parameter manually in
the console, for instance: Thinner setVar lenOfEnds 10 will set the length of the ends to
10 voxels before they are detected as unconnected ends.
496
Max iterations
Enter the number of iterations of the thinning algorithm. In the case of complex data set this port to
non-zero values to prevent extraordinary computation times. A value of 0 means that the maximum
number of iterations is controlled automatically.
10.16
Threshold
Connections
Data [required]
LargeDiskData
Ports
Filename
10.17
TraceLines
This module converts an image that contains lines represented by voxels into a SpatialGraph object.
Typically the input will be the result of a thinning procedure as performed by the Thinner module.
TraceLines is also used internally by the AutoSkeleton module. Press the Apply button to start the
computation.
Connections
Data [required]
The image (LabelField) storing the voxel lines.
Threshold
497
Ports
Options
498
Chapter 11
TeamWork
The TeamWork module is the control module of Avizo XTeam Pack. It allows you to share a common
Avizo session with remote colleagues. For more details, please refer to the main TeamWork documentation. In the following we assume that you are already familiar with the basic concepts of the Avizo
XTeam Pack.
Ports
Operator
The operator has special privileges during the session that the others collaborators do not have. He
can interact with the pool and with the scene, while the others can only watch. There is only one
operator, but he can choose any collaborator to be his successor, at which time he becomes just
another spectator. This port is disabled for everyone except the operator. However, it always shows
who is the current operator.
Send camera to
The operator can force the camera of any spectator to follow the operators viewpoint.
Get camera from
Collaborators can glue their camera to another collaborators camera so that theirs will display
the same view as the remote camera.
Avatars
The show checkbox controls the display of the other avatars in your 3D view. You can toggle the
option on if you want to know where the other collaborators are, or off if you find the avatar icons
obtrusive. If a collaborator is using Avizo XScreen Pack in an immersive configuration, the position
of the VR pointer will be shown in the display along with the avatars. The view all button opens a
separate view of the scene in which you can see all of the avatars (and VR pointers, if any) at once,
including yours. Note, the show checkbox does not affect this dedicated window where the avatars
are always visible. The scale factor allows you to change the size of the representation of avatars.
Each avatar is colored. Click on the my color button to edit the color of your avatar.
500
Chapter 12
AlignMolecules
This module enables you to align two arbitrary molecules to each other. However, the molecules need
to fulfill one precondition: they both must have (at least) one level, the align level, with the same
name and an equal number of groups. The algorithm works as follows: for each group of the first
molecule all its atoms attract all atoms of its corresponding group of the other molecule, whereby the
correspondence is established by the index of the group in the align level. One possibilities to create
such levels is by using the module AlignSequences.
The algorithm works iteratively. Starting from an arbitrary position, a force and a rotation are calculated at each step resulting from the attraction forces of the atoms. The algorithm stops if the transformation from one step to another is smaller than some epsilon. The alignment found is not necessarily
the global minimum of the sum of distances between the corresponding atoms. However, it will always
be a local minimum.
If the global minimum is prominent, it can be assumed that this minimum will be found from each
starting position. In order to find out whether there exist other equally good local alignments, it is
possible to compute alignments starting from 20 different positions. The different alignments will be
stored in a list. You can then compare the alignments visually as well as by the distance between the
two molecules.
Press the Apply button to compute the alignment and transform the second molecule.
Connections
MoleculeA [required]
First molecule to which the second molecule will be aligned.
MoleculeB [required]
Second molecule to be aligned to the first one.
Slave [optional]
You can connect any data object to this port. The same transformation that is applied to the second
molecule will be applied to this data object as well.
Ports
Align Mode
multiple transforms: If this toggle is not selected, a local minimum will be found starting
from the current positions of the molecules. If the toggle is selected, molecule B will be
translated such that the centers of the molecules according to the groups found in the Align
Level are at the same position. Starting from this position, 20 rotations will be applied to
molecule B, and these new positions will be used as starting points for the alignment.
show alignment: If this option is set, you can observe the alignment process visually. Otherwise, only the final alignment will be shown.
Transforms
If you compute the alignment with the multiple transforms toggle switched on, this slider appears.
Once the computation is finished, i.e., for all 20 starting positions at which the alignment was
computed, you can step through all alignments that differ by an epsilon. The epsilon can be set by
the command setEpsilon. Notice that if there is only one local alignment, it can be assumed that it
is also the global one. However, there is no guarantee.
Align Level
502
Commands
getEpsilon
Prints the current epsilon that is used for comparison of the transformations.
setEpsilon <value>
Set epsilon to value, which should be smaller than 1.0. Check the current epsilon before setting a
new one with the command getEpsilon.
12.2
AlignSequences
This module aligns the sequences of two molecules to each other. Proteins as well as nucleic acids
can be aligned. Currently, it is not possible to align t-RNA sequences because they contain modified
bases deviating from the standard data format. The module will be adjusted and extended in the
near future. The output of the alignment is displayed in a separate window. Currently you may
choose between local, semiglobal, and global alignment. The algorithms are based on the Waterman
algorithms for pairwise sequence alignments using a Blosum weighting matrix for protein sequences
and a Transition/Transversion weighting matrix for nucleic acids. Consider the following three cases
to decide which algorithm to use:
local alignment
The local alignment algorithm is the best algorithm to use if you want to match a short sequence,
possibly a subsequence or motif of some molecule, against a long one. You can specify a
motif (e.g., a promoter sequence) and search for it in the molecule of interest. Beware, the
local alignment algorithm is not useful for aligning two long sequences to each other, e.g., two
related proteins. You might end up with a very large number of equally evaluated sequences,
fragmenting the molecules in many pieces. For alignment of two long sequences, you should
rather use one of the next two algorithms instead.
global alignment with gap function
In this case, you want to match two related long sequences to each other, e.g., two related
enzymes. The algorithm matches the whole sequences penalizing long gaps proportionally less
than many short gaps.
semiglobal alignment
If you have no idea about the relationship of your two test molecules, it is best to use the
semiglobal algorithm first because it will scan for the possibly best matching parts of your
molecules without having to align the whole sequences as with the global algorithm.
Press the Apply button to compute the alignment and display it.
AlignSequences
503
Connections
MoleculeA [required]
First molecule to be aligned.
MoleculeB [required]
Second molecule to be aligned.
Ports
Options
Toggle the button to show/hide the alignment. This toggle is sensitive if an alignment exists, i.e., if
it has previously been computed.
Input
Which sequences should be taken as input for the alignment. Three options exist:
molecule A and B.
molecule A and the specified motif (see below).
molecule B and the motif.
Motif
You can specify a motif which will be searched for in a longer sequence. This port appears if one
of the last two options is chosen in the Input port.
Align Type
You can align proteins as well as ribonucleic acids. Specify the type of molecule in the first popup menu. In the second menu you can select one of three algorithms as explained above: local,
semiglobal, or global alignment.
Indel
The sequence alignment algorithm requires Indel parameter. When the parameter is set to 0, insertion and deletions will not be punished. The smaller the value gets the less likely it will be that
many deletions will appear in the sequence alignment. The name insertion/deletion refers to one of
the sequences. Deletion in sequence B can be regarded as insertion in sequence A and vice versa.
504
Commands
setLimit <value>
With this command you restrict the number of alignments computed from one start position of the
alignment matrix. The default is 10.
AlignView
For each alignment, its number and additional information are displayed in the first line. Currently the
information includes the length of the alignment, the number of insertions for both sequences, and the
relative score, i.e., the score divided by the length of the alignment. The latter might be interesting
when comparing alignments between homologous sequences.
The AlignView displays corresponding residues in blue. To provide an idea about where in the sequences similarities have been found, the rest of the sequence is displayed as well (in red). To find
out where in the sequence you are, just click at the position within the sequence you are interested in.
Immediately, the positions for both sequences will be shown in the lower-left corner of the window.
The clicked position will be marked by a black rectangle.
Apart from just showing alignments, the AlignSequences module allows you to add alignments as
levels to the aligned molecules. However, since there might be a large number of alignments and you
might only be interested in a few, the window allows you to select alignments. In order to select a single
alignment, left-click on the row with the label i. Alignment. The label will turn black. If you want to
select more than one alignment, use the Ctrl key. An alignment can be unselected by just clicking
on it again. All currently selected alignments are highlighted by a black frame around the label. Those
alignments can be written to the molecules by pressing the Accept button. If all alignments are desired,
press the AcceptAll button.
When an alignment is written to a molecule as a new level, all letters of the sequence that are not
matched, i.e., that correspond to a blank, are left out. Both molecules will have a new level with
exactly the same name and length. Thus, those levels can be used by the AlignMolecules module.
12.3
AtomicMolecularDensity
This module computes the spatial distribution density of atoms on a regular grid. Inputs can be either
molecules, trajectories of trajectory bundle objects. Atoms can be filtered according to mmff94 atom
types. Using the module makes most sense for TrajectoryBundles containing a set of molecules from
AtomicMolecularDensity
505
which you want to derive some spatial distribution property like pharmacophores. TrajectoryBundles
can be created from single molecules with the MolTrajBundleConverter module.
Preparing data
The following example demonstrates how to compute pharmacophore densities for hiv protease. We
compute the densities from two known ligands but the example can be easily extended to a large
number:
# fetch molecules from pdb
newMolFromPDB 1pro
newMolFromPDB 1hvr
# use 1pro as reference and align others to it
1hvr alignToProtein 1pro
1hvr applyTransform
# restrict to the ligands
1pro sel r/type=A88
1pro restrictToSelection
1hvr sel r/type=XK2
1hvr restrictToSelection
# compute bonds orders and add hydrogens
1pro computeBonds
1pro addHydrogns
1hvr computeBonds
1hvr addHydrogns
mergeMolecules
The last command will create a MolTrajBundleConverter module. In this object you select TrajectoryBundle and press apply. The molecules are now combined in one bundle which can be used as
input for the AtomicMolecularDensity module. Parameterizing the MMFF atom types and filtering for
certain atom types (like hydrogen acceptors) allows to create pharmacophore densities for this type.
Options
First you will need to determine on which grid the density is generated. The Bounding Box: Compute
button will generate the smallest possible bounding box surrounding all atoms of the input object. You
can show and manually modify the bounding box. By default the module will generate a density for
all atoms. A filter based on mmff94 atom types can be applied by selecting Atom Types: MMFF and
using the atom type selector. The input data must, however, first have mmff94 atom types assigned.
You can do this with the Parameterization: MMFF button. If the input is a trajectory or a bundle
of trajectories which have an observable describing the energy of each time step, you can weigh each
time step according to this energy. To do so, select an appropriate Energy weighting option and enter
the name of the observable.
506
Connections
Data [required]
Input data which can either be a single molecule, a trajectory or a trajectory-bundle.
Ports
Lattice Box
Determines the size of a voxel. Adjust the voxel size according to the bounding box size, so that the
grid dimensions do not become too large.
Bounding Box
Allows to compute the smallest bounding box enclosing all atoms in the data object.
Radius Options
During the computation, each grid point within the radius of an atom is added to the density. The
larger the atom radius the smoother the density will be but also the more blurred. The fixed option
will use the radius which is given in the float slider below for every atom. VDW means that the
standard vdW radius is used for each atomic number. MMFF VDW means that the vdW radius
will be derived from half of the euqilibrium vdW distance between to atoms of this type. In the
latter cases, the float slider acts as a factor which scales the radius.
Atom Radius
Determines the fixed radius or the scale factor depending on the radius option.
Atom Types
By default, all atoms will be counted in the computation. By selecting MMFF you can select a
subset of atoms by filtering for specific MMFF atom types with the atom type selector.
Selector
AtomicMolecularDensity
507
Shows the atom type selector which allows to select one or several atom types or classes of atoms
types. If the MMFF option is chosen in the atom type options, only atoms matching these types will
be considered in the computation.
Parameterization
This allows to asssign MMFF parameters to the input data so that MMFF atom type filtering is
possible.
EnergyWeighting Method
If the input data trajectories contain an observable, this can be used to assign a weight to each
timestep. Weight means that the observable value will be used as the weight directly, i.e. the density
contribution of this timestep will be multiplied with the value. Sum will divide the contribution
by the sum of all observable values. Boltzmann-Sum will multiply the contribution with the
boltzmann factor of the value. This makes sense if the observable describes the energy. Linearminmax scales the contribution linearly so that the timesteps with the minimum observable value
are multiplied with one while the timestep with the hightest value is multiplied with 0.
Energy Weighting Observable
Allows to restrict the input data to the current bounding box. The computation will be faster after
applying this restriction but this changes the input data object.
Field Normalization
Allows to normalize the generated density so that the sum of all grid points is 1.
12.4
BondAngleView
The BondAngleView offers an alternative to the MoleculeView. This viewing module, however, does
not display atoms and bonds but, as the name suggests, bond angles, i.e., for every three atoms connected by two bonds a triangle will be shown. The vertex colors are linearly interpolated across the
triangle. Apart from coloring the molecule as is done in the MoleculeView, the bond angles can be
colored according to a specified color field, e.g., the electrostatic potential, and a colormap. Here,
508
in addition to interpolating the colors, texture mapping can be applied which interpolates the texture
coordinates.
Connections
Data [required]
Molecule to be visualized.
ColorField [optional]
Scalar field that can be displayed on the bond angle by pseudo-coloring.
Colormap [optional]
Colormap needed in conjunction with the color field.
Continuous CM [optional]
Colormap that is used to map values of float attributes to colors.
Discrete CM [optional]
Colormap that is used to map values of discrete attributes, like integers and strings, to colors.
Ports
Draw Style
This port becomes visible only if a scalar field has been connected to the color field port.
Transparency
If the draw style is set to transparent, this port lets you configure the degree of transparency.
Color Mode
Allows you to switch between normal coloring mode and coloring according to a scalar field.
BondAngleView
509
Coloring
For an explanation of the four ports above, see the description in the general section on display of
molecules.
12.5
BondCalculation
The module calculates bonds in a given molecular structure by analyzing the distances between the
individual atoms of the structure. A maximal distance value will be used to determine whether two
atoms are connected or not.
This module is especially useful when being used with a molecule that is derived from a trajectory.
Each newly displayed time step will cause the bonds to be recalculated. A similar module for bond
calculation is available via the molecule editor. This editor module offers advanced functionality but
cannot be used dynamically in the work flow of the Pool.
Connections
Data [required]
Molecule for which a new molecule with a complete bond structure should be computed.
Ports
Mode
Select bond calculation method. For more information on bond calculation methods please refer to
Molecule Editors documentation.
510
Available only when Mode is set to distance. The value determines the maximal distance be below which they are considered to be connected by a bond.
tween two atoms (in A)
Action
Starts the computation of the new molecule. Add will compute new bonds according to the chosen
parameters and add the newly computed bonds to the molecule, Remove will remove bonds that
match the respective parameters. Some of these bonds might not be present in the molecule, but
this is not a problem. Replace will first remove all bonds and then add those that match the given
parameter configuration.
12.6
CompMolInterface
This module generates a distance-based interface between two molecules or between groups of a chosen level of a single molecule. As results of the computation a MolSurface and a distance field are
generated. Each point on this surface has the same distance to the closest atom of both groups or
molecules. Viewing the surface with the MolSurfaceView module allows to access additional information contained in the surface (e.g., kind of closest atom or kind of group it belongs to). The distance
field can be used to color the surface.
Press the Apply button to start the computation.
Connections
Data [required]
Molecule for which interfaces should be computed. In case of the computation of intermolecular
interfaces, this is one of the molecules for which the interfaces should be generated.
Data2 [optional]
Second molecule for the computation of the intermolecular interface.
Ports
Voxel size
Voxel size of the distance field, i.e., measure of discretization. The smaller the voxel size, the longer
the processing time.
CompMolInterface
511
Cutoff distance
Largest distance from an atom that should be considered in the algorithm. Points further away than
the cutoff distance to any atom will not be considered in the computation.
Distance to
Select the type of interface. Choosing the first option the distance to the van der Waals surface will
be considered, otherwise the distance to the atom center, which results in an approximation of the
Voronoi diagram.
Levels
This option menu allows you to choose the level of molecular structure for which the intramolecular
interfaces should be generated. For example, you might want to compute atomic interfaces on a very
low level, or you might just want to generate interfaces between functional groups on a higher level
or even between secondary structures. This port disappears if two molecules are connected to the
module.
12.7
CompMolSurface
This module computes molecular surfaces. Three types of molecular surfaces can be generated: the
van der Waals (vdW) surface, the solvent accessible surface (sas), and the solvent excluded surface
(ses). The vdW surface encloses all van der Waals spheres of the molecules atoms. The sas encloses
all van der Waals spheres extended by some probe radius. Finally, the ses encloses the subspace which
is not accessible to a probe sphere in the presence of the molecule represented by its van der Waals
spheres.
The implemented algorithm allows the computation of the full molecular surface as well as of partial
surfaces. If the partial surface option is selected, the surface will only be computed for all highlighted
atoms (see, e.g., the description of the Molecule Selection Browser). This module will register itself
at the Selection Browser, which allows you to restrict the computation of the molecular surface to a
subset of its atoms. For example, if the molecule consists of several chains, you can compute the
molecular surface of a single chain by deselecting the other chains.
Apart from the option to compute either the full or a partial surface, you can also choose between two
algorithms that differ in the quality of the surface generated, and also in speed. If time does not matter,
you should always use the default option, correct. However, if you are interested in the dynamic
behavior of the molecular surface, time does matter and you might want to use the second algorithm.
This algorithm works as follows. We start with an arbitrary atom contributing to the surface. For this
we compute the atoms surface contribution. All atoms adjacent to this atoms surface are stored in
512
a list. Next, we take the first atom from the list and deal with it in the same fashion as for the very
first atom. Thus, in the case of a vdW surface or an sas we end up with the same surface as with the
correct algorithm if the surface consists of one component. In case of the ses we run into problems if
two components are further away from each other than the probes diameter. Furthermore, the faster
algorithm might not compute all cavities, whereas the correct algorithm will.
A maximum of two molecules may be connected to the module, thus enabling the surface computation
of a complex consisting of two molecules. This can be interesting, for example, if you want to compute
the surface before and after a docking.
As a result of the computation a new object, i.e., the molecular surface, will appear in the Pool. To
visualize the surface, attach the MolSurfaceView module to it.
Press the Apply button to start the computation.
Connections
Molecule [optional]
The molecule for which the molecular surface should be computed.
Molecule2 [optional]
If you want to compute the surface of a complex of two molecules, you must connect this port to a
second molecule.
Either of those two ports needs to be connected to some molecule in order to compute a molecular
surface.
Ports
Surface Type
Choose between van der Waals, solvent accessible, and solvent excluded surface.
Quality
The default option computes the molecular surface correctly, i.e., with all, possibly disconnected,
components and all enclosed cavities. The second algorithm is faster because it does not compute
the molecular surface contribution for each atom, but only for surface atoms. If the surface is not
connected, it might miss parts of the surface.
Radius
The radius option determines the basic radius of the van-der-Waals spheres for which the surface
CompMolSurface
513
is computed. When const is selected, a value of 1 will be used. For attribute the radius is
determined by the attribute given in radius attribute. Then, for different force fields there exist
different radii. standard vdW refers to the original Avizo standard vdW radii. mmff vdW are the
van der Waals radii according to the Merck Molecule Force Field (mmff).
Radius Attribute
Radius value needs to be specified when attribute option is selected with radius port. This option is
only available when attribute option is selected with the raduius port.
Atom Radius Scale and Offset
The radius of each atom as it is used in the molecular surface computation is the default atom radius
as determined by the radius port, scaled by the atom radius scale with an additional atom radius
offset that is added at the end.
Probe Radius
The radius of the solvent probe sphere. This port is only visible for the surface types sas and ses.
Edge length
Choose the approximate edge length of the surfaces triangles. This port corresponds to the number
2 , and vice versa. Thus, if you modify the value of this port, the value of the other
of points per A
port will be changed too.
Number of points
If the option partial surface is selected, only the surface of the currently highlighted atoms will be
computed. The second option, which is only active if the first option is checked and the surface type
514
ses is selected, initiates the computation of the highlighted atoms adjacent patches, i.e., toroidal
and spherical concave patches.
Surface area
If either the first or the second option is selected, the exact size of the current molecular surface
will be computed and the size per atom or per residue, respectively, will be written to the molecules
topology. For the respective level, i.e. atoms or residues, you will find a new attribute area, which
contains the contribution of each item to the overall surface area. This allows you to color the
molecule according to the surface contribution. It further enables you to select all surface atoms
or residues (see atom expressions for details). If the last option is selected, a text field will appear
allowing you to specify an arbitrary name for the attribute into which the surface areas will be
written.
Attribute name
Specify an attribute name here, if you do not want to save the surface area in the attribute area. In
order to do so, the third option of the Surface area port must be selected.
Filter Options
Allows common filters to be applied in addition to the filtering in the MolSelectionBrowser. The
option ignore waters will remove all oxygens and hydrogens which are not bonded to another heavy
atoms from the computation. The option ignore het ignores all HET groups (as defined in a pdb
file).
12.8
ComputeHBonds
This module creates a molecule with a new level (the hydrogen bond level hBonds) containing possibly found hydrogen bonds. Chemical criteria are used to identify potential donors and acceptors.
All non carbon heavy atoms with at least one hydrogen (explicit or implicit) are used as donors and
all atoms with at least one lone electron pair are used as acceptors. Several geometric criteria are
then checked including distance and angle between donor and acceptor atoms. The hydrogen bond
calculation represents the base for further computations, such as the secondary structure detection.
Press the Apply button to start the calculation of hydrogen bonds.
Connections
Molecule [required]
A molecule for which the hydrogen bond level should be generated.
ComputeHBonds
515
Ports
Minimum Angle
This angle determines the minimum angle a hydrogen bond must have. The angle of each bond is
defined as the angle between the three atoms involved in the bond (donor - acceptor - heavy atom
bonded to the acceptor).
Maximum Distance
This value determines the maximum distance between the donor and the acceptor atom.
Restrict
Specifies optional restrictions for the hydrogen bond calculation. Removing atoms from HET
residues and/or water molecules may produce a cleaner result. You can also restrict the computation to the enriched backbone to obtain hydrogen bonds between the backbone cabonyl and amine
groups only.
12.9
ComputeSecondaryStructure
Using the Kabsch-Sander algorithm to detect secondary structures, this module creates a new molecule
filled with generated hydrogen bonds and possibly found secondary structures, such as helices, strands,
sheets, and turns. Chains are not detected.
Press the Apply button to start the computation.
Connections
Data [required]
A molecule for which the secondary structure should be generated.
Ports
Minimum Angle
This angle determines the minimum angle a hydrogen bond must have. The angle of each bond
is defined as the angle between the three atoms involved in the bond (alpha carbon - oxygen nitrogen). The ideal value is about 180 degrees, representing a perfectly aligned hydrogen bond.
Realistically this value may range from 120 to 240 degrees.
516
considered atoms
This port allows you to select which atoms will be considered during the computation. Better results
may be obtained when only backbone-enriched atoms are used for the computation.
Write HBonds
This port lets you specify which hydrogen bonds to write out.
Maximum HBonds per Atom
12.10
ConfigurationDensity
This module enables you to compute a probability density for the positions of atoms and bonds within
a molecular trajectory. The input is an object of type MolTrajectory. As output either a scalar field or
a color field is generated. In order to visualize the computed density you can, for example, apply the
volume rendering module, Voltex.
Since the time steps of the molecular trajectory can be arbitrarily rotated and translated, we must
perform an alignment for each time step to fit it best to some chosen reference. This is done internally,
but you must specify how the molecules should be aligned to each other. There are four options from
which to choose. The first uses all atoms for alignment, which is the recommended option. In the
second you can select a few atoms (see below for more information). The third and fourth use none
and center of gravity alignment, respectively.
For the representation of the molecule two kinds of geometric objects can be used: spheres and sticks.
Here, spheres represent the positions of the atomic nuclei and the sticks the existing bonds within the
molecule. You can compute the density for sticks, atoms, or sticks and atoms.
Connections
Data [required]
The molecular trajectory for which the density should be computed.
AlignMaster [optional]
The molecule to which each time step of the trajectory will be aligned.
PrecomputedAlignment [optional]
Instead of aligning all time steps of a trajectory to the AlignMaster molecule, you can use a precomputed alignment to align the time steps.
ConfigurationDensity
517
Ports
Time Steps
Specifies range of time steps for which the density should be computed.
Voxel Size
This value determines the size of a voxel, i.e., its height, width, and depth, of the field storing the
probability density.
Grid Dimension
The dimension of the field grid resulting from the specified voxel size.
Alignment
The three ports above specify how the molecules are aligned to each other. See the description in
the general section on alignment of molecules for a detailed explanation.
Shape
Choose the geometry used to represent the molecule. If you have a highly varying trajectory, the
recommended shape is cylinders.
Radius Options
Use a unique radius for all atom spheres (fixed) or take for each sphere the van der Waals radius
scaled by the value of port Atom Radius (atom class dependent).
Atom Radius
518
Bond Radius
This menu contains two options, Scalar Field and Color Field. Choose the first if you only want
the density. If you choose the second option, in addition to the density, the color information will
be stored according to the color scheme (see Atom Colors port).
Atom Colors
Determines how the field regions will be colored. For more information see the description of Color
port in the section on displaying molecules.
Colormaps
These two colormaps are used to color the atoms and sticks according to the selected color scheme
in Atom Colors. See the description in the section on display of molecules for a detailed explanation.
Define Color
Invoke actions.
Since for the computation of the grid dimension all molecules need to be aligned, for a long
trajectory this might take some time. So it may not be desirable to recompute the grid dimension all the time. If you are interested in the size of the grid before invoking the computation
of the field, the BBox button must be pressed. The bounding box of the field, including all
alignments, will be computed and from this, the grid dimension.
Press the Field button to start the computation of the field. If the grid dimension is not up to
date, it will be computed first.
ConfigurationDensity
519
12.11
CreateSphere
This module enables you to create a triangulated sphere as an object of class Surface. Center, radius,
and resolution of the sphere can be specified. Furthermore, you can choose among two different ways
of triangulation; they are shortly described below.
Press the Apply button to start the computation.
Connections
Data [not used]
Ports
Sphere Type
If the first option, latitude, is specified, the triangulation is done by first placing a number of small
circles on the sphere. Neighboring small circles are placed equidistantly to each other in terms of
their geodesic distance. We then place a number of points on each small circle, such that neighboring points on each circle are again equidistant to each other. The distance between the rings and
points on each ring is close to a specified edge length. We then connect neighboring points on each
small circle by edges. In the next step, we connect points on neighboring small circles with each
other to form a complete triangulation. Here, points are connected such that the edge lengths are as
short as possible. Finally, we add points at the north and south pole and connect them to all points
on the smallest circles, respectively.
The second option, octahedron, triangulates a sphere by starting with an octahedron. The octahedron is then retriangulated to match the given edge length, and the points of this triangulation are
projected onto the surface of the sphere. The edge lengths using this triangulation differ much more
than with the latitude triangulation.
Radius
520
Number of points per unit square. This port influences the edge length, and vice versa.
12.12
HBondView
The HBondView module allows you to display hydrogen bonds using two different representations:
dashed lines or tubes.
If the connected molecule does not contain information about hydrogen bonds, the bonds can be computed internally on the fly. These bonds will not be inserted into the original molecule.
A hydrogen bond is displayed using 5 differently colored parts called sticks. The middle section
represents the hydrogen atom that is being shared by the two atoms that this bond is connecting.
Connections
Data [required]
The molecule whose hydrogen bonds should be displayed.
Continuous CM [optional]
Optional colormap used for mapping float data to colors.
Discrete CM [optional]
Optional colormap used for mapping discrete attributes to colors.
Ports
Source of hbonds
Selects the source from where the hydrogen bond information is taken. HBonds level means that
the level hBonds in the molecule is used. This only works if such a level has been computed
beforehand. Compute means that the hydrogen bonds are computed internally. This makes sense
when your molecule is part of a trajectory for which the hydrogens bonds may change between
timesteps. With automatic the level hBonds is used if it exists and else the bonds are computed
internally.
Type
HBondView
521
Line width
Specifies the complexity of the tubes. Higher complexity will produce more attractive results, but
will take longer to draw.
Tube radius
Starts an animated view of the hydrogen bond when using the tube display mode. To visualize the
sharing of the hydrogen atom between the two atoms, the middle section representing the hydrogen
atom will move slowly back and forward in the two directions of the atoms involved in this bond.
Coloring
For an explanation of the four ports above, see the description in the general section on display of
molecules.
12.13
MeanMolecule
This module computes the mean molecule of a molecular trajectory by averaging the atom positions.
In order to do this, the molecules need to be transformed to a common coordinate system. This can
be done either by aligning all time steps to some reference molecule, or by computing transformations
with the PrecomputeAlignment module.
Press the Apply button to start the computation.
522
Connections
Data [required]
Molecular trajectory for which the mean molecule should be computed.
AlignMaster [optional]
In order to compute the mean molecule, all molecules of the trajectory need to be aligned with
respect to a certain molecule. This is done by right-clicking on the white square of the module icon
in the Pool, selecting AlignMolecule, and connecting it to a molecule in the Pool.
PrecomputedAlignment [optional]
Instead of aligning all time steps of a trajectory to the AlignMaster, you can use a precomputed
alignment to align the time steps.
Ports
Time Steps
The three ports above specify how the molecules are aligned to each other. See the description in
the general section on alignment of molecules for a detailed explanation.
Option
Select this option if you want to iteratively improve the mean molecule.
12.14
Measurement
This module lets you determine distances, angles, and dihedral angles between atoms of the molecule.
To obtain a measurement, you need to select the atoms that are to be examined. You can read more
about selecting atoms in the documentation of the MoleculeView and the Selection Browser. The order
of the selected atoms is important for angles and dihedrals. It is determined by the sequence that the
atoms were selected. If the Measurement module is connected to two molecules, the selected atoms of
the first molecule come first.
Measurement
523
Connections
Module [required]
The molecule in which you want to take measurements.
Data2 [optional]
You can connect a second molecule. This allows to take intermolecular measurements.
Ports
The following ports will only be visible if you have selected two atoms for distance measurement,
three atoms for angle measurement, or four atoms for measurement of dihedral angles.
Selected atoms
This port shows the indices and sequence of the atoms that are used for the measurement. If two
molecules are connected it also shows the index of the molecule (1 or 2).
Options
This port is visible if your base molecule is derived from a trajectory. If you activate the toggle,
not only the measurement of the currently active time step, but also the mean value of the complete
trajectory and its standard deviation will be evaluated. For large trajectories this may take some time
as all atomic coordinates have to be loaded for each time step. So if you do not need this option,
leave it unchecked.
Angle
This port shows the value of the measurement. For two selected atoms, this is the distance; for
three, the angle; and for four atoms, their dihedral angle. (The dihedral angle is defined as the
angle between the two planes determined by the first three selected atoms and the last three selected
atoms). The distance is given in angstroms, the angles in degrees.
Time-Mean
This port is visible if your base molecule is derived from a trajectory and the Time-mean toggle is
activated. It will show the mean value of the measurement by determining the arithmetic mean over
all molecules that are part of the trajectory. In addition, the standard deviation of the time-mean will
be shown.
Time Plot
524
Like the time-mean port, this port is only visible for trajectories. By pressing the Show button you
can see the plot of the measurement against the time steps of the trajectory. The vertical line of the
plot indicates the position of the currently shown time step. The horizontal lines show the mean and
the standard deviation.
Selection
Observable Name
If the molecule is part of a trajectory, then you can create an observable of the measurement, that
contains the value of the measurement for each time step. This observable will be added to the
trajectory data object. The observables name needs to be entered in the text field.
12.15
MolElectrostatics
This module calculates the electric or potential field around a molecule. Both potential and E-field
can be evaluated both on a uniform grid or on a surface. The surface needs to be supplied as a data
connection, while the grid will be computed in a spatial region which may be defined by a tab box.
To be able to compute the fields, the atom level of the molecule must contain a float attribute which contains the atomic partial charges. MMFF94 partial charges may be computed with the MoleculeEditor.
Additionally a surface field may be supplied as a data connection, which contains surface polarization
charges.
When choosing the voxel size, the resulting dimensions of the field will be shown. The user should
keep in mind that the dimension does not only affect the memory usage but also the computation time,
which might be excessively large if the molecule contains many charges. While the number of grid
points of the field is dim.x*dim.y*dim.z, the number of function evaluations to compute the fields is
the number of grid points multiplied by the number of charge centers different from 0.
The dielectric is assumed to be constant in space. To use inhomogeneous dielectrics you will need to
use a program that solves the Poisson equation and import the generated field in Avizo.
Because of the inverse relationship with r, field values may become very large if grid points are close
to charge centers. To avoid the implicated problems, the distance will be set to 0.01 Angstrom during
the computation, whenever it is smaller than this minimum value.
MolElectrostatics
525
Units of the calculated fields will be kg Angstroem2 s2 chargeunit1 for the potential field
and kg Angstroem s2 chargeunit1 for the electric field, with chargeunit being the unit of
the charges supplied by the user in the charge attribute.
Ports
Dielectrical Constant
Allows to switch between the calculation of the electrostatic field which will create a vector field
object or potential field which will generate a scalar field object.
Output Type
The field may either be generated on a lattice or on a surface. If surface computation is used the
surface needs to be supplied as an input object.
Charge Attribute Name
The name of the float attribute that gives the atomic charges for the calculation.
Lattice Box
Toggles the dragger box that allows to resize the lattice. This port is only visible if the output type
is lattice.
Field Voxel Size
Allows to adjust the voxel size of the lattice. This port is only visible if the output type is lattice.
Field Dims Info
Shows the number of grid points in x, y, and z direction. This port is only visible if the output type
is lattice.
526
12.16
MolOptimizer
This module optimizes the coordinates of a molecule by minimizing its MMFF94 force field energy.
To be able to start the minimization the MMFF parameterization needs to be available as attributes of
the molecule. MMFF94 parameters can be computed with the MoleculeEditor or with the molecule tcl
command addMMFFParameterization.
The computation will create a MolTrajectory containing each minimization timestep. The trajectory
will also contain a float observable with the name energy which contains the total MMFF94 energy
value (in kJ/mol) for each step.
Connections
Data [required]
The molecule that is optimized.
Ports
Method
Method defines the minimization method used. SD (steepest descent) is a first order gradient method
following the negative gradient at each step. BFGS (Broyden-Fletcher-Goldfarb-Shanno) is a second order gradient method which works well for small molecules but will fail for large ones because
of its n2 storage requirements. CG (conjugate gradient) is a second order gradient method which
has less storage demand than BFGS and is therefor better suited for larger molecules with the tradeoff of slower convergence. All three methods are local minimizers, i.e. they will find the closest
local minimum.
Fixed
With the fixed port the user can set the current selection of atoms as fixed during the minimization.
Fixed atoms will not move but still influence the atoms surrounding them.
Max Steps
The maximum number of steps during the minimization. The minimization will be terminated after
this step except if another termination criteria is reached.
Cutoff
MolOptimizer
527
Min Diff
The minimum difference of energies (in kJ/mol) between two consecutive steps. When the difference becomes smaller the minimization will be terminated.
12.17
MolSurfaceView
This module visualizes data objects of type MolSurface. Objects of type MolSurface can be either
molecular surfaces, such as van der Waals, solvent accessible, or solvent excluded surfaces, generated
by the CompMolSurface module, or it can be molecular interfaces, generated with the CompMolInterface module. Apart from a connection to the molecular surface, this module also should be connected
to the molecules the surface was generated from, in order to exploit the full functionality of the MolSurfaceView. If the molecular surface was generated in the current Avizo session and the molecules
were not deleted in between, the MolSurfaceView will be automatically connected to these molecules.
Like the other molecular visualization modules, this module allows you to color the molecule, i.e.,
its surface, according to various different color schemes, using Avizo XMolecular Packs coloring
component. The MolSurfaceView has several pick modes implemented. Depending on the pick mode,
clicking on the surface results in different actions. E.g., you can highlight parts of the surface by
clicking on it with the left mouse button. How the click is interpreted depends on the current selection
mode. If default colors are used, clicking is interpreted as in the SurfaceView module. Clicking on the
surface with the middle mouse button displays information about the clicked on part of the molecule.
See the description on the pick action port for more information.
Connections
Data [required]
Object of class MolSurface.
ColorField [optional]
Scalar field to color the surface according to physical or chemical properties.
Colormap [optional]
Colormap for pseudocoloring the surface according to the values in a scalar field.
Molecule [optional]
Object of type molecule. Needed if information about the surface is required.
Continuous CM [optional]
Needed for coloring the molecular surface according to atomic information.
Discrete CM [optional]
Needed for coloring the molecular surface according to atomic information.
528
Ports
Draw Style
Culling mode
Colormap
BaseTrans
See the description of MolSurfaceViews base class for an explanation of the first four ports.
Color Mode
There are three color modes. The first mode uses default colors to color the outside triangles differently than the inside triangles. If one or two molecules are connected to the MolSurfaceView, you
can choose the second mode to color the molecular surface according to the coloring component(s).
The last mode, finally, allows you to color the surface by use of a scalar field (representing chemical
or physical properties). This mode can only be chosen if the ColorField port is connected to a field.
Default Colors
You can change the default colors by clicking on them. A color editor will appear, enabling you to
change the color.
Pick Action
You can change the behavior of the pick action by selecting one of three modes. If the first mode,
molecule, is selected, left-clicking on the surface highlights the selected parts of the surface, while
picking with the middle mouse button leads to information about the picked atom(s) being displayed
in the upper left corner of the viewer. If clipping is selected, left-clicking on the surface clips all
those parts of the surface further away than the value specified by the clipping distance. Finally, if
the mode surface is selected, the behavior will be like this in the SurfaceView.
MolSurfaceView
529
Clipping Distance
This port provides functionality for selecting (or highlighting) atom surface patches in the viewer
window. For more information, see the general section on highlighting.
Buffer
This port is the front end to a filter that determines the atom surface patches being displayed by
the MolSurfaceView. The functionality of the ports buttons are described in the general section on
highlighting.
Coloring
The four ports above belong to the coloring component. There will be one component for each
molecule connected to the MolSurfaceView.
12.18
MoleculeLabel
This module allows you to label certain parts of the molecule. If a MoleculeLabel module is connected
to an object of type Molecule, all clicks in the viewing window normally handled by a viewing module
connected to the same molecule will instead be handled by the MoleculeLabel module, by default.
Handling of a click by the MoleculeLabel module means that it will change the labeling, i.e., add or
remove a label. The kind of label to be displayed depends on the viewing module and the current
selection mode. For example, if the selection mode is atoms, a label for the selected atom will be
displayed; if it is residues, a label for the residue the atom belongs to will be displayed. Up to two data
items per label can be displayed. Which data is displayed, can be set in the Attributes port (see below).
The user interface is built as follows. The levels port allows you to choose a label level. The other
ports, except the last one, Options, correspond to this level. They allow you to specify how the labels
530
of the selected level will be displayed, i.e., what data is displayed for each label, and in which color
and size labels are displayed. Do not assume that a label of the selected level will appear if you click
parts of the molecule. This solely depends on the selection mode as mentioned above. You may also
hide all labels of the current level.
The last port, Options, does not refer to any level, but determines the overall behavior of the module.
There are a few Tcl commands that allow you to set labels. The setLabelString command enables
you to set arbitrary labels to an atom or a group of atoms. See the description of commands at the end
of this page for more information.
Connections
Data [required]
The molecule to be labeled.
Ports
Levels
Choose a level to change the display properties of all labels of this level. The Attributes, Level
Option, Buttons, Font size, and Color ports have individual values for each level.
Attributes
Port to select two attributes that will make up the label string for the current level. By default, only
one attribute is displayed.
Level Option
If the level option is visible is set, all currently selected labels of this level are displayed. In order
to hide all labels of a certain level without removing them, deselect this option.
Labels
The four buttons of this port affect only the labels of the current level. The first button displays
all labels, the second adds a label for each completely highlighted group, the third button removes
all labels. Finally, the fourth button updates the label strings according to the currently selected
attributes, then updates the positions of the labels to display them as well as possible.
Font size
Change the font size of the levels labels.
MoleculeLabel
531
Color
Color of the levels labels. To change the color, click on the Color button. As result, a color editor
will be displayed in which you can choose the color you wish.
Options
Overall options. If the first option is selected, clicks that are normally handled by the viewing modules will instead be handled by the MoleculeLabel module, resulting in new labels being displayed
and already visible labels being removed. The second option allows you to compose labels of one
level differently. If the option is not set, the currently displayed labels will not be changed if the
Attribute port changes, otherwise they will.
Commands
There are a few commands to set labels via the command line interface.
setLabel <levelName/{groupName|groupRange}> [<attr1>] [<attr2>]
This command sets new labels for a group or a range of groups specified by the first argument.
If one or two attributes are given (as strings), those attributes will be assigned as labels to the
group(s). If no attribute is given, the currently selected attributes of the level are used. For more
information about specifying a group or a range of groups, see the list command in the description
of Molecule.
Example:
setLabel residues/NIL14-NIL98 name index
unsetLabel <levelName/{groupName|groupRange}>
Hides the labels of the specified group or range of groups.
setLabelString <levelName/groupName> <string>
Assign the label string to the specified group.
12.19
MoleculeView
The MoleculeView allows you to display molecules in three different representations: atom spheres,
wire frame, and ball-and-stick. For each of these representations there are two Quality modes, fast and
correct.
Atoms can be colored according to the groupings defined on the molecule, e.g., atoms, residues, and
chains. Moreover, the displayed part of the molecule can be restricted by using the selection browser
as well as by interaction in the viewer.
532
In addition to just visualizing molecules, this module provides tools that facilitate interaction with the
molecule. For example, you can select atoms to find out which index they have and which group they
belong to. The ability to select atoms is also a precondition for the alignment procedure described in
the section on aligning molecules.
In order to measure distances and angles in the molecule, right-click the MoleculeView in the Pool,
which will open a pop-up menu with the entry Measurement.
Connections
Data [required]
The molecule to be visualized.
ReferenceMolecule [optional]
A reference molecule must be connected if you want to study the alteration of the torsion angles
from one time step of a molecular trajectory to another (see the Options port below for more information).
Continuous CM [optional]
The colormap that is used to map values of float attributes to colors.
Discrete CM [optional]
The colormap that is used to map values of discrete attributes, e.g., integers and strings, to colors.
Ports
Mode
Select one of three main display modes: balls, sticks, or balls and sticks. The default is sticks.
Quality
The appearance of the balls and sticks can be altered by selection of one of two different qualities,
a fast mode and a correct mode. The fast mode shows sticks as lines and spheres by rendering
a square with the image of the sphere. This permits the display of large numbers of spheres at
interactive speed. However, showing the image of a sphere means the 3D expansion of the sphere
in only two directions is taken into account. As long as none of the spheres intersect, there will be
no visible difference between spheres drawn in fast mode and spheres drawn in correct mode. In
the correct mode, spheres are represented by textured triangular meshes and sticks by cylinders.
Options
MoleculeView
533
If the option single radius is selected, the value given here will be interpreted as the sphere radius
for all atom spheres. Otherwise, the value scales the van der Waals radius of the atom.
Bond radius
The four ports above are described in the general section on visualization of molecules.
Highlighting
This port provides functionality for selecting (or highlighting) atoms in the viewer window. For
more information, see the description of the highlighting port in the general section on visualization
of molecules.
Highlight Size
534
Buffer
This port is the front end to a filter that determines the set of atoms being displayed by the MoleculeView. The buttons are described in the section on visualization of molecules.
Commands
setTextureAntiAliasing <value>
This command enables (1) or disables (0) antialiasing for the textures used in fast sphere mode.
Antialiasing has no impact on the rendering speed. However, if antialiasing is enabled and you have
many different colors, the generation of the textures might be considerably slower.
12.20
NoncovalentInteractionGrid
This module generates a grid which contains the noncovalent interaction energy between the input
molecule and a probe atom at each grid point. The energy will be computed with the MMFF94 forcefield in kJ/mol. Grid dimensions and atom parameters for the probe atoms can be chosen by the user.
The molecule must have MMFF94 parameters assigned. You can add parameters by using the Add
MMFF Parameterization menu entry in the MoleculeEdior or with the addMMFFParameterization tcl
command of the molecule.
Connections
Data [required]
The molecule for which the interaction energy will be computed.
Ports
Atom Type
Allows to select the MMFF atom type of the probe atom. This atom type determines all van der
Waals Parameters.
Atom Charge
For the MMFF94 forcefield the charge of the atom is a function of the atoms formal charge and
surrounding atoms by adjusting the charge according to bond charge increments. The probe atom
has no bonds so the charge value needs to be adjusted by the user. Whenever the user choses a new
NoncovalentInteractionGrid
535
atom type, the value will be set to its formal charge. This parameter has no effect if the Coulomb
energy is deactivated.
Energy
Shows the dimensions of the field. Large fields will take a long time to compute and computation
may fail due to insufficient memory.
12.21
Observables
This module is used to display information about a molecular trajectory. All properties stored in the
trajectory can be displayed, e.g., potential energy, kinetic energy, total energy etc.
Connections
Data [required]
The molecular trajectory for which properties should be displayed.
Time [optional]
A time object that may be connected to the module in order to synchronize, e.g., a viewing module
with the line in the plot window, indicating the position of the time step within the trajectory.
Ports
Option
536
The two options allow you to specify which kind of value, root mean square deviation (rmsd) or
some observable value, should be displayed. The observable type needs to be further specified by
the Observable port.
Alignment
The three ports above specify how the molecules are transformed before computing the rmsd value.
See the description in the general section on alignment of molecules for a detailed explanation.
Observable Type
Select the first toggle if the values of the plotted properties at the current time are shown in the
plot window. If the second option is selected, only a single plot will be shown, and changing the
Observable Type will update the current plot.
Time
This port is most useful in conjunction with a viewing module in order to see the property of the
displayed time step. In order to create a time object, click the Time slider with the right mouse
button and select Create time from the menu. As a result a time object will appear in the Pool,
which should be connected with an object of type Molecule which can be visualized with, for
example, the MoleculeView module.
12.22
PrecomputeAlignment
This module can be used to generate a data object that contains an alignment for every step of a whole
trajectory.
Press the Apply button to start the computation.
PrecomputeAlignment
537
Connections
Data [required]
The molecule must be connected to the molecular dynamics trajectory that the alignment should be
computed for.
AlignMaster [optional]
Reference molecule.
PrecomputedAlignment [optional]
You will find the description of the above two connections in the section on alignment of molecules.
Ports
Mode
Two modes are available. In the first mode (simple alignment), the module acts as a recorder for the
time-step-based alignments described in the section Aligning Molecules. In the second mode (multiple alignment), the mean squared distance of every time step to all other time steps is minimized.
A reference molecule can be connected to specify atoms to be taken into account. If a reference is
connected, the mean of the aligned time steps will be aligned to the reference.
Alignment
You will find the description of the three ports above in the section on alignment of molecules.
12.23
PseudoElectronDensity
This module computes a pseudo electron density for a given molecule by representing its atoms by
three-dimensional Gaussian functions, which are summed up on a regular grid. The three-dimensional
density can then be visualized with the Voltex or Isosurface modules.
Connections
Data [required]
Molecule for which the density should be computed.
538
Ports
Voxel Size
The down factor influences the width of the Gaussian functions. The smaller the value, the larger
the width of the Gaussian function.
Minimal Value
The minimal value determines the cut off distance for each Gaussian function. The smaller the value
the smoother the density will look.
Scalarfield dimensions
This info port gives you the size of the density field to be computed, so that you can adjust the
parameters, in particular the voxel size, to meet a field size that is acceptable to you.
Cutting distance
Maximal cutting distance of the Gaussian functions according to the specified down factor and
minimal value.
12.24
RankTimeStep
This module takes an object of type MolTrajectory as input and either sorts all molecules in the trajectory or selects a single molecule from the trajectory. Selection and sorting can either be done using the
observable values of the trajectory or the rmsd value in comparison to a specific molecule, which then
needs to be connected to the module.
The module is, e.g., very helpful in conjunction with the module for the computation of the mean
molecule. It allows you to find the time step in the trajectory that best approximates the mean molecule.
Press the Apply button to start the search (and sorting). When pressing the button for the first time, a
new object of type Molecule, connected to the trajectory, will be added to the Pool. This molecule is
used to set the index of the molecule with min value, max value or according to the index of the sorted
list.
RankTimeStep
539
Connections
Data [required]
Molecular trajectory for which the mean molecule should be computed.
AlignMaster [optional]
This connection is only required if you want to search the trajectory according to the rmsd value,
since then you will need a reference molecule.
PrecomputedAlignment [optional]
Instead of aligning all time steps of a trajectory to the AlignMaster molecule, you can use a precomputed alignment to align the time steps.
Ports
Search Option
The two options allow you to specify which kind of value, root mean square deviation (rmsd) or
some observable value, should be used for ranking the time steps of the trajectory. The observable
type needs to be further specified by the Observable port.
Search Option 2
Three options are possible. The first two allow you to search for a single time step with either
minimum of maximum value. The last option, all sorted, gives you the most flexibility and is
therefore the default.
Observable
This port allows you to select the observable you are interested in.
Alignment
The three ports above specify how the molecules are transformed before computing the rmsd value.
See the description in the general section on alignment of molecules for a detailed explanation.
Sorted Timesteps
540
This slider allows you to step through the time steps after sorting. Time step 0 is that having the
minimal value.
12.25
SecStructureView
This module provides the functionality for viewing the secondary structure of a molecule. It relies on
the information given in the data entry of the connected molecule. Helices, sheets, and turns can only
be displayed if information about these structures has been read in (for example from a pdb file).
The backbone will be interpolated by using the coordinates of those atoms whose type is set to N,
C and CA. If the atom-type attribute does not exist (for example, molecules that have been imported from UniChem files) no backbone can be viewed.
The user interface of the module includes general ports to configure the overall appearance of the
molecule, as well as specific ports for each secondary structure type. The latter let you adjust typespecific parameters, such as colors or widths. To switch between the specific ports, click on the structure type you want to configure in the View Options port.
Selecting and Highlighting: Parts of the molecule can be selected by clicking onto specific regions
in the selection mode (you can switch to the selection mode of the viewer by pressing the ESC key).
The default level of the structure that is selected is the residue level. A detailed description of the
selection concept can be found in the section visualization of molecules. Selected structures will be
highlighted in the color that you choose in the port Highlighting Color.
Connections
Data [required]
The molecule that is to be viewed.
Ports
General Ports:
General Shape
This port determines the general shape for viewing the secondary structure. The following view
modes are available:
Cartoons: In the cartoon mode, you can select a view mode for each secondary structure
type separately. The backbone and the turns will be shown as tubes that run through the
central atoms of each residue. For helices and sheets, additional (more abstract) view modes
like cylinders or arrows are available. You can configure these submodes in the specific port
SecStructureView
541
sections for the secondary structure type. This is the mode most frequently used for representing the secondary structure of a molecule. However, due to its complex triangulation, the
rendering performance is distinctly worse than that of the other two modes.
Threads: The backbone will be drawn as a set of lines running parallel to the peptide planes
of the amino acids. This mode will show the surface orientation of the backbone, thus making
parts containing symmetries (like helices or sheets) easily recognizable. It is also the view
mode which can be rendered fastest.
Flat Ribbons: Same as the thread mode, but the areas between the lines will be a filled
surface, thus giving a better surface impression with the trade-off of slightly lower rendering
performance.
Solid Ribbons: Unlike flat ribbons, solid ribbons will have an elliptic cross section.
Threads Line Width
To switch between the options of the different structure types, you can use these radio buttons. The
option ports for the different structure will then be visible.
View Structures
This port can be used to filter out the display of all sheets, helices, or turns. The backbone parts will
be displayed as random coil tubes instead.
Filter
The secondary structure view also employs a filter which can be used to hide certain parts of the
molecule. You can hide sections by using the selection browser. This port is explained further in
the section visualization of molecules.
Complexity
The Complexity port allows the adjustment of the overall exactness of the structures displayed.
It will influence the number of points with which the backbone coordinates will be interpolated
as well as the detail of triangulation or the number of lines in the thread view mode. If you are
viewing large molecules on a machine with slow graphics hardware, turn this value down to a more
appropriate value.
542
Highlighting Color
Backbone Ports:
Backnone Width
With this port you can adjust the width of the backbone shown as threads or ribbons. A similar port
exist for the other secondary structure type.
Backnone Eccentricit
If the general shape is solid ribbons this ports lets you configure the elliptical eccentricity in the
range between 0 (completely flat ellipse) to 1 (circle). A similar port exists for the other secondary
structure types.
Backbone Tube Radius
The four ports above are described in the section on visualization of molecules. Similar ports exist
for helices, sheets, and turns.
Helix Ports:
Helix shape
This port lets you choose between different methods for viewing helices in cartoon mode.
Tube: The tube view will show the helix by drawing a tube connecting the interpolated
backbone coordinates.
SecStructureView
543
Cylinder: The cylinder view will approximate the axis using a least squares error minimization for the sum of the distances between the backbone coordinates of the helix and the axis.
These axes will be used to center the cylinders for the helices.
Ribbon: The ribbon view is similar to the tube representation except that the backbone is
shown using a surface whose normals are set perpendicular to the peptide planes.
Helix Radius
With this port you can adjust the radius of the shown tubes, or cylinders.
Sheet Ports:
SheetShape
This port lets you choose between different methods for viewing sheets in cartoon mode.
Tube: The tube view will display the sheet using a tube connecting the interpolated backbone
coordinates.
Arrow: The arrow view will display arrows that indicate the orientation of the peptide planes,
thus showing the surface determined by the hydrogen bonds between the strands.
Sheet Arrow Width
This port is visible if you view the sheets as arrows. It determines the width of the arrows.
Sheet Arrow Height
This port is visible if you view the sheets as arrows. It determines the height of the arrows. If the
height is 0 an optimized (and faster) triangulation will be used.
Sheet Arrow Options
The broad head option will show the start of the arrow head wider than the arrow tail. The smoothed
option will Bezier interpolate the backbone coordinates of the sheet to produce a smoother visualization of the surface.
Sheet Radius
544
If you view the sheets as tubes, this port lets you configure the radius of the tubes.
Turn Ports:
Turn radius
This port lets you specify the radius of the turn tubes.
Commands
The console window offers some additional functionality. The easiest way to use the console for
a SecStructureView is to click on the viewer object in the Pool and then press the TAB key in the
console window to display the name of the selected object. After the name you can use the following
selection commands:
setResidueTransparency <residueIndex> <transparency>
Will set the transparency of the residue with index <residueIndex> to the value of <transparency>
which must be in the interval [0,1].
setSecStructTransparency <secIndex> <transparency>
Same as above but will affect all residues of the secondary structure <secIx>.
setResidueColor <residueIndex> <r> <g> <b>
Will set the color of the residue with index <residueIndex> to the color which is given in rgb values
in the interval [0,1]. The effect of the change will be undone as soon as you change a coloring port
of the module.
setSecStructColor <secIndex> <r> <g> <b>
Same as above but will affect all residues of the secondary structure <secIndex>.
setSpeculatiry <s>
Set the specularity to <s> where 0 is minimal and 1 is maximal specularity.
12.26
TubeView
With the TubeView module you can connect an arbitrary set of consecutive atoms with a tube through
interpolated atom coordinates. To define the atom set, you can use atom expressions. The order with
which the atoms are connected is determined by their sequence.
Selecting and Highlighting: Parts of the molecule can be selected by clicking onto specific regions
in the selection mode (you can switch to the selection mode of the viewer by pressing the ESC key).
A detailed description of the selection concept can be found in the section visualization of molecules.
Selected structures will be highlighted in the color that you choose in the port Highlighting Color.
TubeView
545
Connections
Data [required]
The molecule you want to be shown.
Ports
Part
This port lets you enter an atom expression. The atom expression will determine the set of atoms that
will be connected. The default value is backbonereduced, which means that the tube will indicate
the location of polypeptide and RNA/DNA backbone atoms.
To restrict the display to just a few atoms it is more convenient to use the filter that can be accessed
with the Selection Browser. To include atoms in the sequence to be shown it must be active in the
set defined by the atom-expression as well as the filter.
Distance Cutoff
All atoms that are further away than the specified value will not be connected.
Radius
The tube coordinates will be interpolated by using the atom coordinates as base points. This port
lets you choose the interpolation method. BSpline interpolation is generally smoother than cubic
interpolation but the tube will not necessarily run through the atom coordinates.
Complexity
This port specifies the complexity of the tube triangulation as well as the number of interpolation
points to be added between each atom coordinate. The higher the value the better the display quality
but the slower the rendering.
Coloring
546
You will find the description of the four ports above in the section on visualization of molecules.
Highlighting Color
Tube sections that belong to atoms that have been highlighted with the Selection Browser will be
shown in this color.
TubeView
547
548
Part II
Chapter 13
Avizo
13.1
Port
In order to get a list of all ports of an object you can use the command <modulename> allPorts.
In most cases, but not in all cases, the name of a port used in Tcl commands is equal to the ports label
as displayed in the graphical user interface, with the only exception that the name usually starts with a
lower case letter and that white spaces are omitted.
Two ports of the same type can be interconnected with the TCL command connect. If a port P0
is connected to a port P1, any new value applied to P0 is automatically applied to P1, and also the
reverse. The syntax of the command is:
<modulename 1> <P0 name> connect < modulename 2> [<P1 name>]
If P1 name is not given, the command will take P0 name to retrieve the port of module 2.
Available ports for interconnection are of the following type :
HxPortButtonList
HxPortButtonMenu
HxPortColorList
HxPortFloatslider
HxPortFloatTextN
HxPortGeneric
HxPortIntSlider
HxPortMultiMenu
HxPortMultiOptions
HxPortRadioBox
HxPortRangeSlider
HxPortTabBar
HxPortText
HxPortTextEdit
HxPortToggleList
HxPort3DPointList
Commands
help
Displays all commands available for the port. The same result can be obtained by just calling the
port without any command.
isNew
Returns 1 if the port was changed after the object was fired the last time, and 0 otherwise.
getState
Returns a string which later on can be used to restore the state of a port using the command
setState. The format of the state string is not specified and it may be different for each port.
Usually the state string contains the same information which is also stored in Avizo network files,
but not, for example, label strings which might have been modified using the script interface as well.
setState <state-string>
Restores the state of a port from a string previously obtained using the getState command.
getLabel
Returns the label of the port displayed in the graphical user interface, for example Options:.
552
setLabel <label>
Sets the label of the port.
getLabelWidth
Returns the width of the ports label in pixels.
setLabelWidth <width>
Sets the width of the ports label in pixels, see also align.
align <port2> <port3> ...
Align this and all other ports specified as arguments so that all labels have the same width.
getPin
Check if the port has been pinned or not.
setPin <value>
Set or unset the ports pin button. If the port is pinned, it will be displayed in the Properties Area
even if the owner of the port is deselected.
touch
Touch the port to simulate a change of value.
untouch
Untouch the port so that isNew will return 0 the next time even if the port was changed.
object
Returns the name of the object the port belongs to.
send
Fires the object the port belongs to as well as all downstream objects.
show
Shows the port, provided the owning object is selected.
hide
Hides the object, provided the owning object is selected.
isVisible
Returns 1 if the port is shown, or 0 if it is hidden.
reposition <index>
Changes the position of the port within the objects port list and in the graphical user interface. Note
that connection ports are counted too even if they may not have any controls.
isOfType <typeid>
Checks if this port if of the specified type or derived from it.
Port
553
getTypeId
Returns the ports type name.
connect
Connects the port to another port of the same type.
13.2
Connection
This port represents a connection from one object to another. It is commonly used to specify on which
input objects some other object should depend. A connection does not provide its own user interface
like other ports, but is visually represented in the Pool by a line between the source object and the
object the connection port belongs to. In order to change the connection this line can be picked with
the mouse and dragged to some other source object. All connection ports of an object are listed in a
special popup menu which is activated by clicking with the right mouse button in the connection area,
the small white square on the left side of the objects icon.
Commands
Inherits all commands of Port.
source
Returns the name of the source object connected to this port. If there is no source object connected
an empty string is returned.
connect <source>
Tries to connect the port with the specified source object. If the connection cannot be established a
Tcl error is generated.
disconnect
Disconnects the port from any source object.
setTightness {0|1}
Sets the tightness flag of the port. If the connection is tight no connection line is drawn in the Pool.
Instead, the icon of the owning object is glued together with the icon of the source object, so that
both icons comprise an icon group. Each object can only have one connection port with tightness
set to 1.
isTight
Checks if the connection is tight or not (see above).
setVisibility {0|1}
Sets the visibility flag of the port. If visibility is switched off the connection will not be represented
by a line in the Pool.
554
isVisible
Checks if the connection is visible or not (see above).
allowEditing {0|1}
Allow or disallow interactive editing of the connection. If editing is disallowed the connection
cannot be changed interactively by moving the connection line to some other source object.
isEditable
Checks if the connection can be edited interactively or not.
validSource <source>
Checks if the specified object can be connected to this port. If this is the case 1 is returned, otherwise
0 is returned.
13.3
MasterConnection
This port represents a special connection port which is provided by every data object. It allows to
connect the data object to a particular slot of a compute module or to an editor. A master connection
is not available for script objects.
Commands
Inherits all commands of Connection.
editor
Returns the name the editor which currently has control over the data object, i.e., which possibly
modifies the data object.
connect <source> [<slot>]
If this command is called with only one argument, it behaves like the connect command of an
ordinary connection. If this command is called with two arguments and if the source object is a
compute module, it connects the data object the master connection belongs to to the specified result
slot of the compute module. Result slots are used to allow compute modules to have multiple result
objects.
13.4
Port3DPointList
This port lets you enter an arbitrary number of 3D points. The points can be specified either by typing
in their coordinates in appropriate text fields or by activating a dragger in the 3D viewer.
In order to move the dragger, you must put the viewer into interaction mode (press the ESC key).
Then move the mouse over one of the draggers crosshairs and press the left mouse button. The color
of the picked crosshair changes and a gray transparent plane is shown. The moving area of the dragger
MasterConnection
555
is restricted to this plane. The new coordinates are delivered to the application when you release the
mouse button, or, if immediate mode is on, while you are moving.
If the orthogonal mode is on, all other points are moved in sync. You can only move one point, the
current point, at a time.
Type TAB in the viewer window when the dragger is shown and the viewer is in selection mode to
cycle through Append new point and Modify current selected point mode.
You can also hit the up or down arrows of the ports point index spin box. These arrows are shown
only if the port manages a list of at least 3 3D points. The current point is shown as a red sphere, all
other points as yellowish spheres.
Note: You can pick a location with the middle mouse button on a pickable object in the scene, e.g., an
OrthoSlice, to set the current point to that location.
556
Commands
Inherits all commands of Port.
getNumPoints
Returns the current number of points defined by this port.
getValue [<index>]
Returns the coordinates of point <index> or of the current point, if no argument was specified.
setValue [<index>] <x> <y> <z>
Sets the coordinates of point <index> or of the current point, if no argument was specified. The
coordinates are automatically clipped against the bounding box of the dragger.
getBoundingBox
Returns the bounding box of the dragger. The command returns six numbers, namely the xmin,
xmax, ymin, ymax, zmin, and zmax coordinates of the bounding box in that order.
setBoundingBox <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
Sets the bounding box of the dragger. Most modules adjust the bounding box if the module is
connected to a new input data object.
getFormat
Returns the format used for the coordinate text fields.
setFormat <format>
Sets the format used for the coordinate text fields in printf syntax. The default is %g.
getImmediate
Checks whether immediate mode is enabled or not.
setImmediate {0|1}
Enables or disables immediate mode. If immediate mode is enabled, the module the port belongs to
is fired permanently while the dragger is moved. Otherwise the module is fired only once after the
dragger was moved.
getOrtho
Checks whether orthogonal mode is enabled or not.
setOrtho {0|1}
Enables or disables orthogonal mode. In orthogonal mode all points of the port are moved at the
same time when the dragger is moved. Otherwise only the current point is moved.
showDragger
Shows the dragger at the current point.
hideDragger
Hides the dragger.
Port3DPointList
557
showPoints
Shows the points. The points are represented by little red spheres.
hidePoints
Hides the points.
getPointSize
Returns the current point size (radius) in absolute coordinates.
setPointSize <radius>
Sets the point size (radius). The point size is automatically adjusted if the draggers bounding box
changes.
getPointScale
Returns the current point size scale factor.
setPointScale <factor>
Sets the point size scale factor. By default the scale factor is 1. If you find that the default size of
the points is too small or too big, you can adjust this factor.
appendPoint [<x> <y> <z>]
Appends a new point to the ports point list. If no coordinates are specified, a point with some
default coordinates will be appended. If the number of points exceeds some limit (which cannot be
modified via the script interface), nothing happens and -1 is returned. Otherwise the index of the
appended point is returned.
insertPoint <index> [<x> <y> <z>]
Inserts a new point at position index in the ports point list. If no coordinates are specified, a
point with some default coordinates will be inserted. If the number of points exceeds some limit
(which cannot be modified via the script interface), nothing happens and -1 is returned. Otherwise
<index> is returned.
removePoint <index>
Removes point <index> unless a minimal number of points (which cannot be modified via the
script interface) is reached. If the point couldnt be removed, 0 is returned. Otherwise 1 is returned.
displayInteractiveFeedback {0|1}
Display or not the interactive feedback.
13.5
PortButtonList
This port provides an arbitrary number of push buttons. The buttons are implicitly numbered 0, 1, 2, ...
from left to right. When a button is pushed, the ports new flag is set. The index of the pushed button
can be obtained using the command getValue. After the module was fired, the ports new flag is
558
unset again and getValue returns -1. This means that the port does not store a permanent state. A
push button is frequently used to trigger some action.
Commands
Inherits all commands of Port.
getValue
Returns the index of the pushed button. If no button was pressed since the module was fired the
last time, -1 is returned. The method does not interpret the snap toggle. In order to handle snapped
buttons better use the command wasHit (see below).
setValue <index>
Marks button index as being pushed.
wasShiftDown
Checks if the shift key was down the last time a button was pressed.
wasCtrlDown
Checks if the control key was down the last time a button was pressed.
wasAltDown
Checks if the alt key was down the last time a button was pressed.
setShiftDown {0|1}
Sets the shift key modifier flag.
setCtrlDown {0|1}
Sets the control key modifier flag.
setAltDown {0|1}
Sets the alt key modifier flag.
getSensitivity [<index>]
Checks whether the first button or button index is enabled or disabled.
setSensitivity [<index>] {0|1}
Enables or disables the first button or button index. If a button is disabled, it is grayed out and
cannot be pushed anymore.
getLabel [<index>]
Returns the label of button index or the ports label.
PortButtonList
559
13.6
PortButtonMenu
This port combines an arbitrary number of push buttons with one or more option menus containing an
arbitrary number of options. The port is derived from PortButtonList and hence inherits its behavior.
Commands
Inherits all commands of PortButtonList.
560
13.7
PortChannelConfig
This is a special port used exclusively by multi-channel fields. There is one such port for each channel
of a multi-channel field. Derived from connection, this port manages the link to the actual channel
object. In addition, it provides two text fields allowing the user to define a data range used for mapping
the channel data to gray values. The channels colormap can be set using the colormap port. This port
is not available for script objects.
Commands
Inherits all commands of Connection.
getMinValue
Returns the lower value of the channels data window.
PortChannelConfig
561
setMinValue <value>
Sets the lower value of the channels data window.
getMaxValue
Returns the upper value of the channels data window.
setMaxValue <value>
Sets the upper value of the channels data window.
getColor
Returns the channels color as an RGB tuple of floating point values. (obsolete)
setColor <color>
Sets the channels color. The color can be specified either as a tuple of three RGB integer values
in the range 0...255, or as a tuple of three RGB floating point values in the range 0...1, or as a text
string (e.g., blue or red). (obsolete)
13.8
PortColorList
This port provides one or more color buttons which can be used to define a constant color. Colors
can be easily edited using the Avizo color dialog which is popped up when one of the color buttons is
pushed.
Commands
Inherits all commands of Port.
setColor <index> <color>
Sets the color of button <index>. The color can be specified either as a tuple of three RGB integer
values in the range 0...255, or as a tuple of three RGB floating point values in the range 0...1, or as
a text string (e.g., blue or red).
getColor <index>
Returns the color of button index as an RGB tuple of three floating point numbers in the range 0...1.
setAlpha <index> <alpha>
Sets the alpha value of button <index>.
getAlpha <index>
Returns the alpha value of button <index>.
562
13.9
PortColormap
This port provides a connection to a colormap object. In contrast to a standard connection port, this
port has a user interface, i.e., it is represented in the Properties Area like any other port if the owning
object is selected. In particular, the contents of the connected colormap as well as its range are shown.
New colormaps can be quickly connected to the port via the Edit context menu. This menu also pops
up when pressing the right mouse button over the colormap area of the port.
The context menu item Adjust range allows you to automatically adjust the colormap range to the
connected data range.
The context menu also allows you to switch between global and local range mode. In global range
mode the coordinates used to map data values to colors are taken from the colormap itself. If the same
colormap is used by two different modules and if the range then is modified, both modules are updated.
In contrast, in local range mode the coordinates are defined by the port itself. Thus, although the same
colormap might be used by two different modules, the ranges still can be different.
If no colormap is connected to the port, still a default color and a default alpha value can be defined.
This corresponds to the Constant item in the context menu. The default colors can be modified via the
Avizo color dialog which is popped up by double-clicking on the colormap area with the left mouse
button. If a colormap is connected, a left mouse button double-click makes the icon of the colormap
visible in the Pool.
Colormaps present (yet possibly hidden) in the Pool can be selected in the Loaded colormaps item.
You can also use Load colormap... to get a colormap from a specific directory. When a colormap
is selected, it can be edited. To that end, click on Edit colormap... in the context menu and the
ColormapEditor will appear.
PortColormap
563
Commands
Inherits all commands of Connection.
setDefaultColor <red> <green> <blue>
Sets the default color of the port. An RGB tuple of three floating point values between 0...1 must
be specified.
getDefaultColor
Returns the default color of the port.
setDefaultAlpha <alpha>
Sets the default alpha (opacity) value of the port.
getDefaultAlpha
Returns the default alpha (opacity) value of the port.
enableAlpha {0|1}
Enables or disables the display of the alpha channel in the ports colormap area. Even if the alpha
channel is not displayed by the port it is up to the owning module to interpret alpha values or not.
isAlphaEnabled
Checks is alpha values are displayed by the port or not.
setLocalRange {0|1}
Enables or disable the local range feature (see description above).
getLocalRange
Checks if the local range feature is enabled or not.
setLocalMinMax <min> <max>
Sets the coordinate range used for mapping data values to colors when the local range feature is
enabled. The port is touched but the network is not fired.
getLocalMinValue
Returns the lower bound of the local range.
getLocalMaxValue
Returns the upper bound of the local range.
564
13.10
PortDoIt
This port is almost exactly the same as PortButtonList. The primary difference is that all buttons are
initialized to have a snap toggle and that by default it has only one button.
or
This port is mainly used by compute modules, for example Arithmetic or CastField.
Note: Since Amira 4.0, the HxPortDoIt port is not by default visible in the control panel of its
associated module. Rather, the fact that a module has an HxPortDoIt activates (makes green) the
Apply button at the bottom of the Properties Area. Checking the auto-refresh toggle is equivalent to
snapping down the red DoIt port snap toggle. To request display of the DoIt port in the modules
control panel, open the Edit/Preferences dialog, click on the Layout tab, then check the Show DoIt
buttons box.
Note also that the Apply button corresponds to the first button of the DoIt port. If a DoIt port has
multiple buttons, in order to display all of them, you must check the Show DoIt buttons box as
described above.
Commands
Inherits all commands of PortButtonList.
PortDoIt
565
13.11
PortDrawStyle
This is a special port for adjusting the drawstyle of display modules derived from ViewBase. The port
provides a combo box (option menu) offering the following drawstyles:
outlined
shaded
lines
points
transparent
In addition, the port allows you to set additional options via a popup menu which is activated by
pressing the more options button. For a detailed description of these options please refer to the documentation of ViewBase. This port is not available for script objects.
Commands
Inherits all commands of Port.
getValue
Returns the index of the current draw style.
setValue <index>
Sets the current draw style. The draw styles are indexed in the same order as they appear in the
combo box, i.e., 0=outlined, 1=shaded, 2=lines, 3=points, 4=transparent.
isTexture
Checks if 1D textures for pseudo-coloring are enabled (as opposed to Gouraud shading).
setTexture {0|1}
Enables or disables 1D textures for pseudo-coloring.
getNormalBinding
Returns an index describing the current normal binding mode.
setNormalBinding {0|1|2}
Sets the normal binding. The indices have the following meaning: 0=triangle normals, 1=vertex
normals, 2=direct normals (computed using a crease angle criterion, compare ViewBase).
13.12
PortFilename
This port is used to define a file name. The file name may be either manually typed in the text field,
or it may be selected using the Avizo file browser. The file browser can operate in three modes, one
566
allowing to select any file, one allowing to select one existing file only, and one allowing to select
multiple existing files. However, if the file name is typed in manually no check is performed to ensure
that the file really exists. Typically the first mode is used for saving while the second and third modes
are used for loading. Associated with every filename is a filetype.
Commands
Inherits all commands of Port.
getFilename
Returns the filename or a list of filenames.
getFileType
Returns the filetype or a list of filetypes.
setFilename <filename> <filetype>
Sets the filename.
setFilenames [list <filename1> <filename2> ...]
<filetype1> <filetype2> ...]
Sets a list of filenames in multi file mode.
[list
getValue
Returns the filename (same as getFilename) or a list of filenames.
setValue <filename> <filetype>
Sets the filename (same as setFilename or setFilenames in multi file mode).
getMode
Returns 0 if the file browser operates is any file mode, 1 if it operates in existing file mode, or 2 if it
operates in multi file mode (see description above).
setMode {0|1|2}
Sets the mode of the file browser (0 for any file, 1 for existing file, 2 for multi file (see description
above).
registerFileType [<formatname>] [<extension>]
If the file browser is opened in any file mode, it shows a combo box allowing the user to specify an
optional format to be used to save a data set. This command allows you to register format names
and optional file extensions which are added to the file type combo box. Calling this command
without any arguments removes all previously registered file types.
PortFilename
567
exec
Pops up the file browser. The file browser is opened in modal mode, i.e., the command blocks until
the user closed the dialog again. There is no way to close an open file browser using a Tcl command.
The method returns 0 if the browser was closed using the cancel button and the ports filename field
was not updated. Otherwise it returns 1.
13.13
PortFloatSlider
This port provides a slider allowing the user to specify a floating point number. The floating point
number is limited to the current range of the slider. The range can be changed either using the Tcl
command setMinMax or interactively using a configure dialog, which can be popped up by pressing
the right mouse button over the slider.
Optionally the slider may have arrow buttons allowing the user to decrease or increase the value by
some predefined increment. The slider may also have so-called subrange buttons allowing the user to
restrict the actual range of the slider to a smaller subrange. In this way it is possible to interactively
adjust the sliders value with high precision. In order to numerically adjust the lower (left) subrange
value, the command L <value> can be typed in the sliders text field. In order to numerically adjust
the upper (right) subrange value, the command R <value> can be typed in the sliders text field.
This port is used for example to specify the threshold of the Isosurface module.
Commands
Inherits all commands of Port.
getValue
Returns the float value.
setValue <float>
Sets the float value.
getMinValue
Returns the lower bound.
getMaxValue
Returns the upper bound.
setMinMax <min> <max>
Sets the lower and upper bounds of the slider.
setFormat <format>
Sets the format used for the sliders text field in printf syntax. Typically, the default format is %g.
568
getFormat
Returns the printf format used for the sliders text field.
setIncrement <increment>
Sets the increment. The increment is used for adjusting the slider value using the optional arrows
buttons. It is also used to constrain the slider value in discrete mode (see below).
getIncrement
Returns the sliders increment.
setButtons {0|1}
Enables or disables the display of the optional arrow buttons.
hasButtons
Checks whether the optional arrow buttons are enabled or not.
setSliderWidth <width>
Sets the width of the slider in pixels.
getSliderWidth
Returns the width of the slider in pixels.
setNumColumns <columns>
Sets the width of the sliders text field in characters.
getNumColumns
Returns the width of the sliders text field in characters.
setTracking {0|1}
Enables or disables tracking mode. If tracking mode is enabled, the network is fired permanently
while the user is moving the slider. Otherwise it is fired only once when the slider is released.
getTracking
Checks whether tracking mode is enabled or not.
setDiscrete {0|1}
Enables or disables discrete mode. If discrete mode is enabled, the slider value will always be equal
to the lower bound plus an integer multiple of the current increment.
getDiscrete
Checks whether discrete mode is enabled or not.
setSubRangeButtons {0|1}
Enables or disables the subrange buttons (see description above),
hasSubRangeButtons
Checks whether the subrange buttons are enabled or not.
PortFloatSlider
569
13.14
PortFloatTextN
This port represents a variable number of bounded float values which can be edited interactively. The
actual number of float fields can be changed at run-time. Each float field has a label, a printf-style
format string, and a lower and upper bound used to constrain the value of the text field. minimum and
maximum values, as well as the sensitivity of each field.
In order to quickly change the value of a float field, a virtual slider is provided. The virtual slider is
activated by clicking into a text field with the shift key held down, and then moving the mouse up or
down.
Commands
Inherits all commands of Port.
getValue [<index>]
Returns the value of the text field <index> or of the first text field, if no argument is specified.
getMinValue [<index>]
Returns the lower bound of the text field <index> or of the first text field, if no argument is
specified.
getMaxValue [<index>]
Returns the upper bound of the text field <index> or of the first text field, if no argument is
specified.
setValue [<index>] <value>
Sets the value of the text field <index> or of the first text field.
setMinMax [<index>] <min> <max>
Sets the lower and upper bound of the text field <index> or of the first text field.
setValues <value1> <value2> ... <valueN>
Sets the values of all text fields. The number of arguments must match the number of text fields.
setMinMaxAll <min1> <max1> ... <minN> <maxN>
Sets the lower and upper bounds of all text fields. The number of arguments must be equal to twice
the number of text fields.
getFormat [<index>]
Returns the printf format string of the specified text field.
setFormat [<index>] <format>
Sets the printf format string of the specified text field.
570
getSensitivity [<index>]
Checks if the specified text field is enabled or not. Insensitive text fields are grayed out and they
accept do not accept user input.
setSensitivity [<index>] {0|1}
Enables or disables the specified text field.
getLabel [<index>]
Returns the label of text field index or the ports label.
setLabel [<index>] <label>
Sets the label of text field index of the ports label.
setPart <index> {0|1}
Shows or hides the specified text field. A hidden text field is not displayed at all (in contrast to an
insensitive one), but still exists and stores a value.
getNum
Returns the current number of text fields.
setNum <value>
Sets the current number of text fields.
13.15
PortFontSelection
This port provides an access to a font object which can be selected via a font selection dialog. Another
button allows to select the color of the current font. For the moment, the Strikeout and the Underline
options of the font selection dialog are not supported.
Commands
Inherits all commands of Port.
getFontName
Returns the selected font name.
getFontSize
Returns the selected font size.
isBoldFont
Returns true if the font is bold.
PortFontSelection
571
isItalicFont
Returns true if the font is italic.
getFontColor
Returns the current font color.
setFontName <FontName>
To set the current font name.
setFontSize <FontSize>
To set the current font size.
setBoldFont <0|1>
To set a bold font or not.
setItalicFont <0|1>
To set an italic font or not.
setFontColor <R> <G> <B>
To set the current font color.
13.16
PortGeneric
This is a generic port which can be dynamically configured in various way. Several different predefined
user-interface components can be used:
Interface components inserted into this port are identified using a unique ID, which must be specified
when creating the component. This ID is used in all commands to set or get the value of the particular
component.
The design goal of this class was primarily ease-of-use. Thus flexibility is somewhat limited. If you
want to create a port with custom GUI components, you should use Avizo XPand Pack and derive a
new class from Port using Qt widgets.
This port is used for example by the TransformEditor.
572
Commands
Inherits all commands of Port.
getValue <id>
Returns the value of the specified component. For combo boxes and radio groups the index of the
selected item is returned.
setValue <id> <value>
Sets the value of the specified component. If the specified component is a combo box or a radio
group and if value is not a number, then the value is interpreted as a label and the combo box item
or the radio button with that label is selected.
getColor <id>
Returns the color of a color button inserted via the command insertColorButton. If the
component <id> is not a color button, the result is undefined.
setColor <id> <color>
Sets the color of a color button with the specified id. If the component <id> is not a color button,
the command returns immediately.
isItemNew <id>
Checks if the specified component was modified since the owning module was fired the last time.
deleteItem <id>
Deletes the specified item.
insertIntText <id> [<columns> [<index>]]
Inserts an integer text field. In order to set the text field to e.g., 27, use setValue <id> 27. In
order to query the value of the text field, use getValue <id>. <columns> specifies the width
of the text field. <index> specifies the position where the text field should be inserted. If this
argument is omitted, the text field is appended after all other elements.
insertFloatText <id> [<format> [<columns> [<index>]]]
Inserts a floating point text field.
In order to set the text field to e.g., 5.5, use
setValue <id> 5.5. In order to query the value of the text field, use getValue <id>.
<format> specifies the printf format of the text field. Usually %g is a good choice. <columns>
specifies the width of the text field. <index> specifies the position where the text field should be
inserted. If this argument is omitted, the text field is appended after all other elements.
insertCheckBox <id> [<label> [<index>]]
Inserts a check box with a label. In order to set the check box use setValue <id> {0|1}. In
order to query the value of the check box use getValue <id>. <index> specifies the position
where the check box should be inserted. If this argument is omitted, the text field is appended after
all other elements.
PortGeneric
573
13.17
PortInfo
This port displays a simple single line informational message. It does not allow any user interaction,
and thus never causes the owning object and the network to be fired.
574
Commands
Inherits all commands of Port.
getValue
Returns the text displayed by the port.
setValue <text>
Sets the text displayed by the port.
printf <fmt> <arg1> <arg2> ...
Sets the text displayed by the port using a C-style printf command. <fmt> is a message string
which may contain %s format specification fields. These fields are substituted by the arguments.
Note that only %s string type fields must be used, but no numerical format fields like %d or %g.
13.18
PortIntSlider
Slider port representing an integer value. This class is derived from PortFloatSlider and it provides exactly the same features and commands. The only exception is that the values returned by getValue,
getMinValue, and getMaxValue will be rounded to the nearest integer value. In addition, the
default format string used by the sliders text field is %.0f which is suitable for integer values.
Commands
Inherits all commands of PortFloatSlider.
13.19
PortIntTextN
This port provides an arbitrary number of text fields for entering integer values. The port is derived
from PortIntTextN and it provides exactly the same features and commands. The only exception is
that the values returned by getValue, getMinValue, and getMaxValue will be rounded to the
nearest integer value. In addition, the default format string used for the text fields is %.0f which is
suitable for integer values.
PortIntSlider
575
Commands
Inherits all commands of PortFloatTextN.
13.20
PortMultiChannel
This port is commonly used by modules operating on multi-channel fields. The port provides a set of
toggle buttons, one for each channel of the multi-channel field. Using these toggle buttons individual
channels of the multi-channel field can be quickly switch on or off.
Commands
Inherits all commands of Port.
getValue <index>
Checks whether channel <index> is switched on or off.
setValue <index> {0|1}
Switches channel <index> on or off.
getNum
Returns the number of channels controlled by this port.
13.21
PortMultiMenu
This port provides up to three combo boxes with a variable number of items each. At any time exactly
one item is selected in each combo box.
Commands
Inherits all commands of Port.
getValue [<menuindex>]
Returns the index of the item currently being selected in the specified menu or in the first menu, if
no argument is given.
576
13.22
PortRadioBox
This port provides multiple toggle buttons with a radio behavior, i.e., only one button can be switched
on at a time. Thus the port facilitates a one-of-many choice. For a larger number of possible choices
usually a combo box as provided by PortMultiMenu is more suitable.
PortRadioBox
577
Commands
Inherits all commands of Port.
getValue
Returns the index of the button currently being selected.
setValue <index>
Selects button <index> and deselects the previously selected button.
setLabel [<index>] <label>
If only one argument is given, this command sets the ports label. If two arguments are given, this
command sets the label of radio button <index>.
getLabel [<index>]
If no arguments are given, this command returns the ports label. If one argument is given, this
command returns the label of radio button <index>.
setSensitivity <index> {0|1}
Enables or disables radio button <index>. A disabled button is grayed out and cannot be selected
interactively.
getSensitivity <index>
Checks whether radio button <index> is enabled or not.
getNum
Returns the total number of radio buttons of the port.
13.23
PortSeparator
This port displays a horizontal line. It is used to visually separate different groups of ports from each
other. In contrast to most other ports this port does not provide a pin button and thus cannot be pinned.
It does not accept any user input.
Commands
Inherits all commands of Port.
578
13.24
PortSharedColormap
This port provides a connection to a colormap object. Like the PortColormap, this port has a user
interface and the contents of the connected colormap as well as its range are shown. The port also has
an Edit context menu (that pops up when pressing the right mouse button over the colormap area of
the port).
In contrast to the PortColormap, the shared port has the property to propagate the colormap connected to an object to all other objects that have a PortColormap and that are connected to the object
possessing the shared port.
If a colormap is connected to the object, it appears in the port. Otherwise, only the Edit button is
visible. The Edit context menu items are similar to the ones in the PortColormap, except for the
Disable colormap item, which leaves the object connected to no colormap. There is no concept of
Constant colormap for the PortSharedColormap.
Commands
Inherits all commands of PortColormap.
13.25
PortTabBar
The QTabBar class provides a bar consisting of a list of labeled, selectable tab elements, e.g., for use in
tabbed dialogs. Only one tab can be switched at a time. Thus the port facilitates a one-of-many choice.
This port has all methods of a PortRadioBox with the additional ability to assign a list of port objects
to every single tab element. If a tab element is chosen, all ports included in the tabs port list and which
are also marked as visible, are scheduled for drawing. If a tab gets deselected, the ports included in
its port list become hidden. Its possible to add the same port to multiple tab elements and even to
multiple QTabBar objects but it gets only visible if all its parent tab elements are selected, which is
never the case for two tabs at the same QTabBar.
Commands
Inherits all commands of PortRadioBox.
PortSharedColormap
579
13.26
PortText
Commands
Inherits all commands of Port.
getValue
Returns the contents of the text field.
setValue <string>
Sets the text in the text field to <string>.
getNumColumns
Returns the width of the text field in characters.
setNumColumns <numcolumns>
Sets the width of the text field so that <numcolumns> characters fit in.
getSensitivity
Checks if the text field is enabled or not.
setSensitivity {0|1}
Enables or disables the text field. If the text field is disabled, it is grayed out and it does not accept
any user input.
13.27
PortTime
This port defines a floating point value like PortFloatSlider. However, the value is typically interpreted
as a time value. It can be automatically animated in forward or backward direction, or it can be
synchronized with any other object providing a time port, for example a global time object. In order to
facilitate this kind of synchronization, PortTime is derived from Connection. If the port is connected
580
to some other object providing a time port, the value of that port is used, i.e., the time port becomes an
alias of the connected time port. The range of the time port as well as its increment (which is relevant
for animation) can be edited in a little dialog which is pops up when pressing the right mouse button
over the slider.
In addition to the main button the time slider also provides so-called subrange buttons. These buttons
allow you to temporarily restrict the range of the slider. For animations only this restricted range is
considered. The subrange buttons can be set to an exact value via the ports popup dialog or by typing
L <value> or R <value> in the sliders text field. The letters L or R indicate that the left or right
subrange button should be set, and not the main button.
Commands
Inherits all commands of Connection.
getValue
Returns the current time value.
setValue <value>
Sets the current time value.
getMinMax
Returns two numbers indicating the full range of the time port.
setMinMax <min> <max>
Sets the range of the time port.
getSubMinMax
Returns two numbers indicating the subrange of the time port. The subrange is relevant for animations.
setSubMinMax <min> <max>
Sets the subrange of the time port.
getIncrement
Returns the increment of the time port. During animations or when pressing the forward or backward buttons the time value is increased or decreased by the increment.
setIncrement <value>
Sets the increment of the time port.
getDiscrete
Checks if the time port is in discrete mode or not. In discrete mode the time can only take on values
min + n*increment, where min is the minimum value of the range, increment is the ports increment
value, and n is an integer value.
PortTime
581
setDiscrete {0|1}
Sets discrete mode on or off.
setFormat <format>
Sets the format used for the sliders text field in printf syntax. Typically, the default format is %g.
setTracking {0|1}
Turns tracking on or off. If tracking is enabled the object the port belongs to is fired permanently
while the moving the slider with the mouse. If tracking is off the object is only fired once when the
mouse button is released.
play [-forward|-backward] [-once|-loop|-swing]
Starts to animate the time value. Additional arguments can be specified for the animation direction
(forward or backward) and for the animation mode (play once, loop forever, play forth and back
forever). If no arguments are specified forward play and the last animation mode are assumed.
stop
Stops a running animation.
setRealTimeDuration <duration in seconds>
This command enables real time mode. In real time mode a full animation cycle takes as long as
specified by this command. The increment added to the current time value after each animation step
depends on the time required for that step. When real time mode is enabled discrete mode will be
automatically disabled.
getRealTimeDuration
Returns the time duration of a full animation cycle in real time mode. If real time mode is disabled,
0 is returned. When the min or max time value is changed while real time mode is enabled the time
duration is automatically adjusted.
13.28
PortToggleList
This port provides multiple toggle buttons. The buttons are implicitly numbered 0, 1, 2, ... from left
to right and each button can be switched independently. Usually each toggle represents a particular
option affecting the operation of a module.
Commands
Inherits all commands of Port.
582
getValue <index>
Returns 1 if toggle <index> is checked or 0 if it is not.
setValue <index> {0|1}
Sets the state of the button <index>.
getNum
Returns the number of toggle buttons of the port.
setNum <numbuttons>
Sets the number of toggle buttons of the port.
getLabel [<index>]
If no arguments are given, this command returns the ports label. If one argument is given, this
command returns the label of toggle button <index>.
setLabel [<index>] <label>
If only one argument is given, this command sets the ports label. If two arguments are given, this
command sets the label of toggle button <index>.
getLabel [<index>]
If no arguments are given, this command returns the ports label. If one argument is given, this
command returns the label of toggle button <index>.
setLabel [<index>] <label>
If only one argument is given, this command sets the ports label. If two arguments are given, this
command sets the label of toggle button <index>.
getSensitivity <index>
Checks whether toggle button <index> is enabled or not.
setSensitivity <index> {0|1}
Enables or disables toggle button <index>. A disabled button is grayed out and cannot be modified
interactively.
isToggleVisible <index>
Checks whether toggle button <index> is visible or not.
setToggleVisible <index> {0|1}
Show or hide toggle button <index>.
PortToggleList
583
584
Part III
Chapter 14
Avizo
14.1
ACR-NEMA
The ACR-NEMA file format is the predecessor of the DICOM standard file format for medical images. Avizo can import both old ACR NEMA files and new DICOM files. Actually, both formats are
interpreted by the same reader. Therefore, for more information please refer to the documentation of
the DICOM reader. In contrast to DICOM files ACR NEMA files can not be exported by Avizo.
14.2
Avizo script objects are custom modules with user-defined GUI elements (ports) written in the Tcl
command language. Files describing script objects must obey certain requirements as stated in the
data types section about ScriptObjects. When a file describing a script object is loaded, an instance
of a ScriptObject module is created and initialized as requested. Files describing script objects are
recognized by the special comment # Amira Script Object V3.0 in the first line of the file,
or by the file extension .scro. Note that in previous versions of Avizo a different syntax was used for
script objects. In order to make clear that a new-style script object is defined, the comment mentioned
above should be used.
14.3
AmiraMesh Format
AmiraMesh is Avizos native general-purpose file format. It is used to store many different data objects like fields defined on regular or tetrahedral grids, segmentation results, colormaps, or vertex sets
such as landmarks. The format itself is very flexible. In fact, it can be used to save arbitrary multidimensional arrays into a file. In order to create an Avizo data object from an AmiraMesh file the
contents of the file are analyzed and interpreted. For example, a tetrahedral grid is expected to have
a one-dimensional array Nodes containing entries of type float[3] called Coordinates, as well as
a one-dimensional array Tetrahedra containing entries of type int[4] called Nodes. If the AmiraMesh file contains an entry ContentType in its parameter section, the value of this parameter directly
determines what kind of Avizo data object is to be created.
Note on binary encodings Data contained in an AmiraMesh file can be encoded in ascii or in binary
format (see below). For binary encodings both big-endian mode and little-endian mode are supported.
The default mode for AmiraMesh binary export was big-endian in previous product versions, but has
been changed to little-endian in Avizo 5.0. The behaviour can be configured using the following Tcl
command:
amiramesh -endianess {big|little|native}
If you prefer to export AmiraMesh binary files in big-endian mode, you can add the above Tcl command with the argument big in the Amira.init file in the Avizo installation directory under
share/resources.
A first example. In order to describe the syntax of an AmiraMesh file, we first give a short example.
This example describes a scalar field defined on a tetrahedral grid. Concrete examples of how to
encode other data objects are given below.
# AmiraMesh ASCII 1.0
define Nodes 4
define Tetrahedra 1
Parameters {
Info "This is an AmiraMesh example",
Pi 3.1459
}
Materials { {
Name "Stone",
Color 0.8 0.3 0.1
} {
Name "Water",
Color 0 0.3 0.8
} }
Nodes { float[3] Coordinates } = @1
Tetrahedra { int[4] Nodes } = @4
588
0
0
0
1
@4
1 2 3 4
@8
0 0 0 1
@12
1
The first line of an AmiraMesh file should be a special comment including the identifier AmiraMesh.
Moreover, if the tag ASCII is specified in this line, all data arrays are stored in plain ASCII text.
If the tag BINARY is specified, the data arrays are stored in IEEE big-endian binary format. If the
tag BINARY-LITTLE-ENDIAN is specified, the data arrays are stored in IEEE little-endian binary
format. The header section of an AmiraMesh file is always stored as ASCII text, even if the data itself
is binary encoded.
The statement define Nodes 4 defines a one-dimensional array of size 4. Later on, this array can
be referenced using the name Nodes. Similarly, a statement define Array 100 100 defines a
two-dimensional array of size 100 x 100. The actual kind of data stored per array element will be
specified later on.
The optional section Parameters allows the user to define arbitrary additional parameters. Each
parameter consists of a name (like Pi) and a value (like 3.1459). Values may be one or multiple
integer or floating point numbers or a string. Strings have to be quoted using a pair of "-characters.
The optional section Materials allows the user to define additional material information. This
is useful for finite element applications. The material section consists of a comma-separated list of
parameters just as in the Parameters section.
The statement Nodes { float[3] Coordinates } = @1 specifies that for each element of
the array Nodes defined earlier, three floating point numbers (floats) should be stored. These data are
given the name Coordinates and a tag in this line and will appear below as a tagged block with the
AmiraMesh Format
589
marker @1. Such data markers must always begin with the @ character.
Similar, the following lines define additional data to be stored in the arrays called Nodes and
Tetrahedra. The primitive data types must be one of byte, short, int, float, double,
or complex. Vectors of primitive data types are allowed, aggregate structs are not, however.
The statement Field { float Example } = Linear(@8) defines a continuous scalar field
with the name Example. This field will be generated by linear interpolation from the data values Values defined on the nodes of the tetrahedral grid. Other interpolation methods include
Constant(@X) and EdgeElem(@X).
After the marker @1, the coordinate values of the grid are stored. Likewise, the other data arrays are
given after their corresponding markers. In case of a BINARY file the line containing the marker is read
up to the next new line character. Then the specified number of bytes is read in binary format. It is assumed that sizeof(short) is 2, sizeof(int) is 4, sizeof(float) is 4, sizeof(double) is 8, and sizeof(complex)
is 8. Multidimensional arrays indexed via [k][j][i] are read with i running fastest.
Backward compatibility. For backward compatibility the following statements are considered to be
equal:
nNodes 99 is equal to define Nodes 99
nTriangles 99 is equal to define Triangles 99
nTetrahedra 99 is equal to define Tetrahedra 99
nEdges 99 is equal to define Edges 99
NodeData is equal to Nodes
TriangleData is equal to Triangles
TetrahedraData is equal to Tetrahedra
EdgeData is equal to Edges
Other data objects. Of course, not only scalar fields defined on tetrahedral grids can be encoded using
the AmiraMesh format. Many other data objects are supported as well. In each case there are certain
rules about what data arrays have to be written and how these arrays have to be named. Below, we
describe how to encode the following data objects:
590
14.3.1
In order to encode 3D scalar or vector fields defined on a uniform grid you first have to define a 3D
AmiraMesh array called Lattice. The fields data values are stored on this array. The coordinate type
of the field as well as the bounding box are specified in the parameter section of the AmiraMesh file.
This is illustrated in the following example:
# AmiraMesh ASCII 1.0
# Dimensions in x-, y-, and z-direction
define Lattice 2 2 2
Parameters {
CoordType "uniform",
# BoundingBox is xmin xmax ymin ymax zmin zmax
BoundingBox 0 1 0 1 0 1
}
Lattice { float ScalarField } = @1
@1
0 0 1 1 0 0 2 2
Use float[3] in order to encode a vector field instead of a scalar field. Likewise, you may modify
the fields primitive data type. For example, 3D images are commonly encoded using byte or short.
Instead of ScalarField you may use any other name in the data definition statement.
The fields bounding box is given by the minimum and maximum x-, y-, and z-coordinates of the grid
nodes or voxel centers, not of the voxel boundaries. Avizo will always assume the width of a single
voxel to be (xmax-xmin)/(dims[0]-1). For degenerated 3D data sets with one dimension being 1 choose
equal minimum and maximum coordinates in that direction.
14.3.2
A field with stacked coordinates has uniform pixel spacing in the x and y direction, but slices may be
arranged arbitrarily in the z direction. This type of coordinates is commonly used to encode 3D images
with non-uniform spacing.
In order to encode a 3D scalar or vector field with stacked coordinates, you must define a 3D array
called Lattice and 1D array called Coordinates. The fields data values are stored at Lattice while the
slices z positions are stored at Coordinates. The coordinate type of the field as well as the bounding
box in xy are specified in the parameter section of the AmiraMesh file. Here is an example:
AmiraMesh Format
591
Use float[3] in order to encode a vector field instead of a scalar field. Likewise, you may modify
the fields primitive data type. For example, 3D images are commonly encoded using byte or short.
Instead of Intensity you may use any other name in the data definition statement.
The fields xy bounding box is given by the minimum and maximum x and y coordinates of the grid
nodes or pixel centers, not of the pixel boundaries. Avizo will always assume the width of a single
pixel to be (xmax-xmin)/(dims[0]-1). For degenerate 3D data sets with one dimension being 1, choose
equal minimum and maximum coordinates in that direction.
14.3.3
A field with rectilinear coordinates still has axis-aligned grid cells. However, the x-, y-, and zcoordinates of the grid nodes are specified explicitly for each direction.
In order to encode a 3D scalar or vector field with rectilinear coordinates, you have to define a 3D
array called Lattice and 1D array called Coordinates. The fields data values are stored at Lattice while
the x, y, and z positions for each direction are stored at Coordinates in subsequent order. The size of
the Coordinates array must be equal to the sum of the sizes of Lattice in the x, y, and z directions.
The coordinate type of the field is specified in the parameter section of the AmiraMesh file. Here is an
example:
592
# x coordinates
# y coordinates
# z coordinates
Use float[3] in order to encode a vector field instead of a scalar field. Likewise, you may modify
the fields primitive data type. Instead of ScalarField you may use any other name in the data
definition statement.
14.3.4
A field with curvilinear coordinates consists of a regular array of grid cells. Each grid node can be
addressed by an index triple (i,j,k). The coordinates of the grid nodes are specified explicitly.
In order to encode a 3D scalar or vector field with curvilinear coordinates, you have to define a 3D array
called Lattice. This array is used to store the fields data values as well as the grid nodes coordinates.
The coordinates must be given as a float[3] vector containing x-, y-, and z-values. The coordinate
type of the field is specified in the parameter section of the AmiraMesh file. Here is an example:
# AmiraMesh ASCII 1.0
define Lattice 2 2 3
Parameters {
CoordType "curvilinear"
AmiraMesh Format
593
}
Lattice { float ScalarField } = @1
Lattice { float[3] Coordinates } = @2
@1 # 2x2x3 scalar values
0 0 0 0
1 1 1 1
2 2 2 2
@2 # 2x2x3 xyz coordinates
0 0 0
1 0 0
0 1 0
1 0 0
0 0 1
1 0 1
0 1 1
1 0 1
0 0 2
1 0 2
0 1 2
1 0 2
Use float[3] in order to encode a vector field instead of a scalar field. Likewise, you may modify
the fields primitive data type. Instead of ScalarField you may use any other name in the data
definition statement.
14.3.5
Label fields are closely related to ordinary scalar fields with uniform coordinates. However, the data
values at each voxel are interpreted as labels denoting the different materials or regions the voxels have
been assigned to during a segmentation process. Therefore, the most important difference of label
fields compared to uniform scalar fields is the occurence of a Materials section in the AmiraMesh file.
Whenever such a section occurs and elements of type byte denoted Labels are found, the AmiraMesh
file is interpreted as a label field. Here is a simple example of a label field containing two different
materials:
# AmiraMesh ASCII 1.0
define Lattice 2 2 2
594
Parameters {
CoordType "uniform",
# BoundingBox is xmin xmax ymin ymax zmin zmax
BoundingBox 0 1 0 1 0 1
}
Materials {
{ Id 0, Name "Exterior" }
{ Id 4, Name "Something" }
}
Lattice { byte Labels } = @1
Lattice { byte Probability } = @2
@1
0 0 0 4
0 0 4 4
@2
255 255 130 180
255 200 190 230
Each material should have a parameter Id specifying the correspondence between labels and materials.
In the example above all voxels labeled with 0 belong to material Exterior, while all voxels labeled
with 4 belong to material Something.
Optionally, label fields may contain probability information or weights as shown in the example above.
These weights denote the degree of confidence of the labeling. This information is used by the GMC
module when extracting boundary surfaces.
14.3.6
The data type Landmark Set is useful for registration and alignment of multiple 3D image data sets.
It allows you to store multiple sets of corresponding marker positions. The data type can also be used
to represent a simple list of 3D points in Avizo. In this case you would only specify a single set of
markers. Consider the following example:
# AmiraMesh ASCII 1.0
define Markers 3
AmiraMesh Format
595
Parameters {
ContentType "LandmarkSet",
NumSets 2
}
Markers { float[3] Coordinates } = @1
Markers { float[3] Coordinates2 } = @2
@1
38.5363 15.2135 20.3196
35.1264 14.0106 37.155
31.6494 14.2791 31.0932
@2
40.2112 15.907 20.3119
35.9551 13.8241 40.4785
30.1375 13.7279 28.9235
In this example, first the number of markers or points is defined to be 3. In the parameter section of
the AmiraMesh file the content type is specified, as well as the number of marker sets. The marker
coordinates of the first set are denoted Coordinates (xyz-values stored as float[3]). Likewise,
the marker coordinates of the second set are denoted Coordinates2. If more sets are defined, the
coordinate values must be called Coordinates3, Coordinates4, and so on.
It is also possible to define additional data values for each marker such as MarkerTypes or
Orientations. How these values are interpreted in detail will be specified in a future release
of Avizo.
14.3.7
Line Segments
The data type Line Set is used to represent a generic set of indexed line segments, i.e., line segments
defined by an index into a vertex list. Optionally, an arbitrary number of scalar data values may be
associated with each vertex.
In order to store line sets in an AmiraMesh file, two 1D arrays have to be defined, namely Lines, used
to store the indices, and Vertices, used to store the vertex coordinates as well as additional vertex data.
Here is an example:
# AmiraMesh ASCII 1.0
define Lines 15
define Vertices 12
596
Parameters {
ContentType "HxLineSet"
}
Vertices { float[3] Coordinates } = @1
Vertices { float Data } = @2
Lines { int LineIdx } = @3
@1 # 12 xyz coordinates
0.9 0 0
1 0 0.1
1 0 1.9
0.9 0 2
0 0.9 0
0 1 0.1
0 1 1.9
0 0.9 2
-0.9 0 0
-1 0 0.1
-1 0 1.9
-0.9 0 2
@2 # 12 data values
1 1 1 1 2 2 2 2 1 1 1 1
@3 # 15 indices, defining 3 line segments
0 1 2 3 -1
4 5 6 7 -1
8 9 10 11 -1
Lines are defined using vertex indices as shown above. The index of the first vertex is 0. An index
value of -1 indicates that a line segment should be terminated. An arbitary number of additional vertex
data values can be defined. Multiple values should be distinguished by denoting them Data2, Data3,
and so on.
14.3.8
Colormaps
AmiraMesh Format
597
editor.
Colormaps are encoded in an AmiraMesh file as follows:
# AmiraMesh ASCII 1.0
define Lattice 256
Parameters {
ContentType "Colormap",
MinMax 10 180
}
Lattice { float[4] Data } = @1
@1
1 0 0 0
1 0.00392157 0 0
1 0.00392157 0 0.00392157
1 0.0117647 0 0.00392157
1 0.0196078 0 0.0196078
1 0.027451 0.00392157 0.0196078
...
The RGBA values are stored in floating point format. A component value of 0 means no intensity
(black), while a component value of 1 means maximum intensity (white). The fourth component
denotes opacity (alpha). Here a value of 0 indicates that the color is completely transparent while a
value of 1 indicates that the color is completely opaque.
14.3.9
Spatial Graph
The data type Spatial Grpah is used to store data organized in three dimensional networks. Points,
Nodes, and Segments are the three basic structural components used in this module. The Nodes are the
branching points and endpoints of the network, and the Segments are the lines connecting the nodes.
Segments, in turn, consist of Points describing the three-dimensional course of a segment. Each Point
is identified by spatial coordinates. A set of Segments connected by Nodes will be termed a Graph
and a SpatialGraph data object can store even several Graphs. One or more scalar data items can be
optionally stored for each network item, while labels can be associated only with Nodes and Segments.
In order to store Spatial Grpah sets in an AmiraMesh file, three 1D arrays have to be defined, namely
EDGES, used to store the Segments indices, VERTEX, used to store the Nodes coordinates, and POINT,
for the Points. Scalar values can be attached to Segments, Nodes and Points, while labels and label groups only to Segments and Nodes. Multiple values should be distinguished by denoting them
598
Data2, Data3, and so on. Here is an example with 5 Nodes, 4 Segments and 242 Points, with one
label (LabelGroup0) associated to the Segments and one scalar (Data0) to the Points:
# AmiraMesh 3D ASCII 2.0
define VERTEX 5
define EDGE 4
define POINT 242
Parameters {
LabelGroup0 { Id 0, Color 0.8 0.16 0.16 }
ContentType "HxSpatialGraph"
}
VERTEX { float[3] VertexCoordinates } @1
EDGE { int[2] EdgeConnectivity } @2
EDGE { int NumEdgePoints } @3
EDGE { int LabelGroup0 } @4
POINT { float[3] EdgePointCoordinates } @5
POINT { float Data0 } @6
# Data section
@1
# Coordinates Nodes
132.078 164.902 101.783
141.066 186.003 116.899
176.625 138.721 111.86
141.066 187.176 117.907
152.788 199.68 130
@2
0 1
2 1
1 3
3 4
@3
59
143
4
36
@4
0
AmiraMesh Format
599
0
0
0
@5
#
132.078
132.354
132.619
...
Coordinates Points
164.902 101.783
165.293 102.499
165.684 103.136
@6
# Scalar associated Points
0.345
0.463
0.865
...
Once the Nodes are defined, the Segments follow using Nodes indices as shown above. For each
Segment the number of included Points and their coordinates should be specified. The index of the
first item is 0. An index value of -1 indicates that a item should be terminated.
14.4
AmiraMesh as LargeDiskData
Image data stored in an uncompressed AmiraMesh file can be loaded as LargeDiskData. Use the File
Dialogs Popup Menu to force the file format to AmiraMesh as LargeDiskData.
The file is opened readonly. You cannot change the image data, nor add or modify parameters.
14.5
Analyze 7.5
This format was used by older versions of the Analyze medical imaging software system. Today it has
been widely replaced by the AnalyzeAVW format. The format is used to store 3D medical images.
The actual image data and the header information are stored in two different files. In order to import
the data in Avizo, you must select just the header file in the Avizo file browser. The header file is
recognized by the extension .hdr. If it has some other extension, you must manually select the file
format via the file browsers popup menu.
The header file contains the dimensions of the 3D image, the voxel size, and the primitive data type
(8/16/32-bit grayscale, 24-bit color). In addition, some other information such as a short data description or a patient id are contained in the header. This information will be stored in the parameter section
of the generated Avizo data object.
600
Note that the input data type may be interpreted as unsigned short if the key for the maximum value
(glmax) in the header of the Analyze file contains a value of larger than 32,768.
Note that if the input contains values that cannot be represented as numbers (NaN, Not a Number) a
label field is created as additional output. The label Inside will indicate the region with valid data.
14.6
AnalyzeAVW
This format is used by newer versions of the Analyze medical imaging software (version 2.5 or higher).
Previous versions used the Analyze 7.5 format, where image data and header information were stored
in different files. The Analyze AVW format can be used to store 2D, 3D, and 4D medical images, but
the 4D time series option is currently not supported in Avizo. Additional attributes stored in the files
(like patient name or examination time) are stored in the parameter section of the generated Avizo data
objects. Analyze AVW files are safely recognized by inspecting the file header. The common file name
extension is .avw.
Besides Analyze AVW image files, sometimes also so-called Analyze AVW volume files are used, which
contain a list of 2D file names forming a 3D image stack. Such volume files currently cannot be
interpreted by Avizo. However, note that Avizo provides a very similar concept with the StackedSlices format.
Avizo exports scalar and color fields with uniform coordinates to the Analyze AVW format. Other
coordinate types can be written as well, but in these cases the coordinate information will be lost and
no accurate recovery will be possible.
14.7
Avizo Script
Avizo scripts are written in the Tcl command language. Scripts allow you to start demos, to perform
routine tasks, or to create animations. Networks are saved as script files too. When such a file is
executed the network is restored. A detailed description of the Avizo scripting facilities is contained
in the Avizo users guide (Scripting chapter). A script file is recognized either by the special comment
# Avizo Script
in the first line of the file, or by the file extension .hx.
14.8
BMP is a standard image format mainly used on the Microsoft Windows platform. Image data is stored
with 8 or 24 bits per pixel without applying any compression. When writing RGBA color fields the
alpha channel will be discarded. When reading BMP images an alpha value of 255 (full opacity) will
be assumed. BMP files are automatically identified by the file name extensions .bmp.
AnalyzeAVW
601
Regarding the import and export of multiple slices the same remarks apply as for the TIFF image
format. When reading BMP images the channel conversion dialog is popped up. This dialog is also
described the TIFF section.
14.9
DICOM export
The DICOM data format and its predecessor the ACR-NEMA format are widely used to exchange
medical image data, provided by various modalities, but also in many other areas dealing with volume image data. DICOM stands for Digital Imaging in Communications and Medicine, and it was
originally designed as pure transfer format between imaging modalities and image retrieval systems
(client/server). The data stream has a so called tagged format, with a variable amount of tags (DICOM
data elements). Each element is defined by a unique group-element identifier. These group-element
pairs are always sorted in ascending order within the DICOM data stream.
14.10
DICOM import
The DICOM data format and its predecessor the ACR-NEMA format are widely used to exchange
medical image data, provided by various modalities, but also in many other areas dealing with volume image data. DICOM stands for Digital Imaging in Communications and Medicine, and it was
originally designed as pure transfer format between imaging modalities and image retrieval systems
(client/server). The data stream has a so called tagged format, with a variable amount of tags (DICOM
data elements). Each element is defined by a unique group-element identifier. These group-element
pairs are always sorted in ascending order within the DICOM data stream.
In Avizo the import of sequences of axis-aligned CT or MRI images stored in DICOM or ACR-NEMA
format is supported. It will be checked whether the spacing between subsequent slices is constant or
not. In the first case an image stack with uniform z-coordinates is created, in the latter one so called
stacked coordinates are used. Nonuniform stacks can be easily converted into uniform stacks using the
arithmetic module. Both image stacks, either uniform or stacked, can be segmented using the image
segmentation editor. Such labeled data can be converted into polygonal models using the SurfaceGen
module, and furthermore into tetrahedral models using the TetraGen module.
602
When reading DICOM or ACR-NEMA image stacks, all files of the data volume must be selected simultaneously within the file browser. This is done by selecting each file with a mouse
click holding the control key down or by clicking the first file and then shift-clicking the last
one. Avizo automatically identifies files in DICOM or ACR-NEMA format if the file name suffix is .dcm, dc3, .ima or .ani, if the file name matches a DICOM unique instance ID, e.g.,
1.3.12.2.1107.5.1.2.20395.19980429..., or if the DICM sequence can be found at byte
position 128 within the data stream. Individual files are automatically uncompressed if they were
compressed using gzip or compress, and if the file name ends with the suffix .gz or .Z.
After choosing files from the file selection dialog, a list of images is displayed within the DICOM
loader dialog view (see below), which allows you to adjust several parameters for image stack generation. This intermediate step is necessary because the conversion of sequences of DICOM images
into image stacks can be ambiguous, although in many cases the standard settings will produce the
desired results. The evolution of the ACR-NEMA/DICOM file format is fast and striking. However,
the primary goal of reading image stacks into Avizo is the consistency of the entire data volume. The
Loader has to handle retired data elements, different transfer syntaxes, explicit or implicit value representation, image compression, and multi-frame data, to name a few specialties. Furthermore, the
availability of certain tags is not always guaranteed, and so-called private data elements can be added
at will by any creating instance. Further information on the DICOM 3.0 data format can be found in
NEMA: Standards Publications PS3.x
DICOM import
603
604
images are automatically combined to one stack if they are not affected by any other stack break
criterion. Stack break criteria can be modified or disabled within the dialog that is displayed after you
press the Stack Break Criteria button on the DICOM Loader.
The slice location options are defined as follows:
ignore: Do not use the slice location as the criterion to break the stack.
constant: Within a stack, slice location must be constant. In this case, the stack would be, for
example, a time stack instead of a volume stack.
monotonic: For two consecutive slices, the slice location must be equal to or greater/smaller
than the previous throughout the entire stack. Stacks may have two slices at the same location
and slice distance may vary.
strictly monotonic: For two consecutive slices, the slice location must be greater/smaller than
the previous throughout the entire stack. No two slices may have the same location, but slice
distance may vary.
linear: Slice distance must be equal.
Similar options are available for other numerical stack break criteria.
Load options can also be removed completely by choosing the appropriate column, right clicking on
the columns header and selecting remove column from the popup menu showing up at this point. Op-
DICOM import
605
tions are disabled when ignore is selected from the Stack Break Criteria dialog. After any modification
of load options, the new settings can be applied to the list of images by either pressing the Apply button
or accepting all options by leaving the dialog with OK. Any changes are immediately visible through
rearrangement of the images and stacks within the list view.
Initially the major stack criteria, like slice location, image number, patient name, patient id, series id
and date, as well as the file name and the load index, are shown in different columns. If any of the
parameters remain constant for all images (except the slice location), the respective column will not
show up. Columns can be manually removed by clicking on the columns header with the right mouse
button and choosing remove column from the popup menu. New columns can also be added to the list
view.
Imagine that you were loading a time series of images showing cardiac motion or the distribution of
nuclear tracers. The location could be the same for all images but there might be another parameter
of interest describing the order of acquisition. Usually the image number or even the file name will
suffice to represent such an order, but there are other parameters that might be of interest, too. Clicking
on any image row with the right mouse button shows a popup menu where the menu option DICOM
parameters will open up a list of all DICOM data elements for the belonging image series.
The parameter list is sorted by the group-element pairs as described in the DICOM format. It can be
sorted by element description or parameter values as well, for easily finding a certain data element.
Any parameter can be appended as stack criterion by pressing the Add button. Moving this parameter
606
column to the first position will break sequences of images according to the load option in effect, which
can be either constant for alphanumeric values or incrementing for numerical values.
If you would like to force all images into one stack of a given sorting order, remove all insignificant
columns or set their load options to ignore. This will only fail if any of the stringent stack criteria
(image size, etc.) varies. If the sorting order conflicts with the order of slice locations, or no slice
locations are given at all, you will be prompted for the position of the first image within the list view
and the spacing between two adjacent images. Note that this will always result in stacks with uniform
image distribution.
DICOM import
607
14.11
DXF
The DXF file format is a general-purpose format used by the AutoCAD (TM) software, The format
is able to store a large variety of 2D and 3D geometries. Currently, Avizo only exports files in plain
ASCII format containing 3D triangular surfaces and 3D line sets. The information defined in the
parameter section of an Avizo data object will only be saved in case of 3D trianglar surfaces.
3D line sets can be exported in two different ways: the whole line set in a single file or on a per-slice
basis (DXF slice-by-slice). The latter format can only be selected if the line set contains a special
parameter describing the structure of the individual slices. Groups of lines belonging to the same slice,
i.e., having the same x, y, or z coordinate, are saved in the same DXF file. Line sets of this special type
are produced by the module ComputeContours.
When importing DXF files Avizo will create an Open Inventor scene graph object. You may use the
module IvToSurface in order to convert the scene graph into an Avizo surface. Currently, only DXF
files in ASCII format can be read.
DXF files are identified by the file name extension .dxf.
14.12
Encapsulated PostScript
Avizo is able to save snapshots as well as individual slices of a 3D image data set in Encapsulated
PostScript format. You may directly send EPS files to a PostScript printer, or you may include these
files in many standard desktop publishing programs. The EPS files produced by Avizo contain bitmaps
rather than vector information.
The import of EPS files is not supported.
14.13
HTML
HTML files loaded via the Avizo file dialog are displayed in the online help viewer. The help
viewer supports certain but not all HTML formatting tags. It also is not able to resolve web links.
Only links to local files are resolved. Nevertheless, it is very convenient to describe projects and
to invoke demo scripts from an HTML page displayed in the Avizo help viewer. Whenever a file
with the extension .hx is linked, this file is interpreted as an Avizo script. The script is executed when the link is clicked. As an example you may look at the demo pages provided with
the online users guide, for example share/usersguide/recon.html or other files listed in
share/usersguide/HxIndexDemo.html.
14.14
HxSurface
Simplified version. The surface format has been designed to represent triangular non-manifold surfaces. The triangles of such a surface are grouped in patches. In addition, information about so-called
608
boundary contours and branching points can be stored in a surface file. However, since this information can be recomputed automatically if required, we discuss a simplified version of the format first.
Here is an example:
# HyperSurface ASCII
Parameters {
Info "GMC: 3 colors, case 13"
}
Materials { {
color 0.83562 0.78 0.06,
Name "Yellow" }
{
color 0.21622 0.8 0.16,
name "Green" }
{
color 0.8 0.16 0.596115,
name "Magenta" }
}
Vertices 11
1.000000
0.666667
1.000000
0.500000
0.000000
0.000000
1.000000
0.500000
1.000000
0.500000
0.523810
0.666667
0.500000
0.500000
1.000000
0.000000
1.000000
1.000000
0.000000
0.500000
1.000000
0.523809
0.500000
1.000000
0.000000
0.000000
0.500000
0.500000
0.500000
1.000000
1.000000
1.000000
0.500000
Patches 3
{
InnerRegion Green
OuterRegion Yellow
Triangles 7
3 1 11
4 3 11
6 4 11
5 6 11
8 5 11
HxSurface
609
2 8 11
1 2 11
}
{
}
{
InnerRegion Magenta
OuterRegion Yellow
Triangles 1
9 2 1
InnerRegion Magenta
OuterRegion Green
Triangles 2
2 10 7
7 1 2
The first line is required and identifies the surface format. Additional comments starting with a hashmark (#) may appear at any point in the file. Next, an optional parameter section and a material section
follow. These sections have the same format as in an AmiraMesh file. The parameter section may contain an arbitrary number of name-value items. The material section contains additional information
about imaginary regions the surface patches are supposed to separate. In contrast to an AmiraMesh
file, individual materials need not to have an Id since they are referenced via their names.
The statement Vertices 11 indicates that the x, y, and z coordinates of 11 vertices follow. Likewise, the statement Patches 3 indicates that 3 patches follow. The definition of each patch is
enclosed by a pair of curly braces { and }. Inside these braces InnerRegion and OuterRegion
indicate the two regions the patch is supposed to separate. If you dont want to generate a tetrahedral
grid from your surface, you may omit these statements, or you may choose both regions to be the same.
Finally, the triangles of a patch are specified by indexing vertices defined in the vertex section. Like in
an AmiraMesh file, indices start at 1, not at 0.
Extended version. In its extended version the surface format is able to store additional topological
information of a surface. Before we discuss this in detail, let us first provide some definitions and
introduce the underlying concepts.
Region: In finite element applications regions are usually called materials. A region is defined
by its surrounding surface, which may consist of multiple patches. Each region must have a
unique name.
Surface: A surface is defined by the boundary of a 3D region and therefore must be closed. This
means that, for example, each edge must be connected to an even number of triangles. In one
half of the triangles the edge is referenced in forward orientation, in the other half in backward
orientation. A surface may consist of multiple pieces, so-called patches. In the file format the
patches of a surface are given by a list of signed indices. A negative index means that the patch
610
0.0
1.0
0.0
0.0
0.0
0.0
NBranchingPoints 2
NVerticesOnCurves 2
BoundaryCurves 3
{
Vertices 3
HxSurface
611
} {
Vertices 2
1 2
} {
Vertices 3
1 4 2
}
Patches 5
{
InnerRegion Material1
OuterRegion OUTSIDE
BranchingPoints 0
BoundaryCurves 2
1 -2
Triangles 3
5 1 3
1 5 2
5 3 2
} {
InnerRegion Material2
OuterRegion OUTSIDE
BranchingPoints 0
BoundaryCurves 2
3 -1
Triangles 2
3 1 4
2 3 4
} {
InnerRegion Material3
OuterRegion OUTSIDE
BranchingPoints 0
BoundaryCurves 2
-3 2
Triangles 3
4 1 6
2 4 6
1 2 6
} {
InnerRegion Material1
OuterRegion Material2
612
BranchingPoints
BoundaryCurves 2
2 -1
Triangles 1
3 1 2
} {
InnerRegion Material2
OuterRegion Material3
BranchingPoints 0
BoundaryCurves 2
-3 2
Triangles 1
1 2 4
}
Surfaces 3
{
Region Material1
Patches 2
1 4
} {
Region Material2
Patches 3
2 -4 5
} {
Region Material3
Patches 2
3 -5
}
14.15
Icol
This is a simple ASCII file format coming in two variants, indexed and non-indexed, to store colormaps. The Icol file format and the Icol Colormap Editor originate from the Graphics and Visualization Lab (GVL) of the Army High Performance Computing Research Center (AHPCRC), Minnesota.
The structure of an Icol format can be immediately understood by looking at the examples in Avizos
demo data directory.
Icol
613
14.16
Interfile
Interfile is a file format for the exchange of nuclear medicine image data.
With this reader you can import files in the Interfile exchange format into Avizo. Interfile data objects
consist of two files, a .hdr file containing the header information and an .img file which contains the
raw image data. Both files should be in the same directory.
Limitations:
The .hdr file must start with the sequence !INTERFILE to be recognized by the reader.
14.17
JPEG is a standard format which can be used to store RGB and grayscale images in a highly compressed form. However, note that the compression algorithm is lossy. The quality of the compression
for file export can be specified by typing the command
set AmiraJPEGQuality <quality>
into the Avizo console prior to the export, where <quality> ranges from 0 to 100. The default is
90. When writing RGBA color fields the alpha channel will be discarded. When reading RGB images
an alpha value of 255 (full opacity) will be assumed. JPEG files are automatically identified by the file
name extensions .jpg or .jpeg.
Regarding the import and export of multiple slices the same remarks apply as for the TIFF image
format. When reading JPEG images the channel conversion dialog is popped up. This dialog is also is
also described the TIFF section.
14.18
Saves an Avizo data object as a MATLAB MAT file. Only the raw data will be saved but information like the size of the bounding box will be lost. MATLAB arrays are generated that may be
4-dimensional. For example an RGBA colorfield will be saved as a 4-dimensional data set where the
first three dimensions represent spatial coordinates and the fourth dimension contains the RGBA values. The data variables will be named like the Avizo variable name with an Avizo in front of them
and all . characters replaced by characters (to avoid conflicts with structs in MATLAB).
MAT files are identified by the file name extension .mat.
14.19
614
Files that contain code in the MATLAB language are called M-files. You create M-files using a text
editor. You may use the module CalculusMatlab in order to load, save, and execute M-files.
14.20
Nifti
14.21
Open Inventor
The Open Inventor file format is used for storing 3D geometries. The format is very powerful. The
VRML format known from the World Wide Web is very similar to Open Inventor. Since Avizo is
built on top of Open Inventor, it naturally supports this format. However, Avizo has added a lot of
special purpose nodes to Open Inventor. Therefore currently some geometries which can be displayed
in Avizos 3D viewer cannot be saved in Open Inventor file format.
Nifti
615
When reading an Open Inventor file a data object of type IvData will be created. This data object stores
the Open Inventor scene graph and can be visualized using a IvDisplay module. IvData objects can be
saved again in ASCII or binary Open Inventor format. In addition, Avizo surfaces can be exported in
Open Inventor format.
14.22
PNG stands for Portable Network Graphics. The format is mainly used for internet applications.
Usually, image data is stored in compressed form using a lossless compression algorithm. The format
is able to store an alpha channel besides the ordinary color channels. PNG files are automatically
identified by the file name extensions .png.
Regarding the import and export of multiple slices the same remarks apply as for the TIFF image
format. When reading PNG images the channel conversion dialog is popped up. This dialog is also is
also described the TIFF section.
14.23
This format includes the PPM, PGM, and PBM image formats. These formats are used to store RGB
color images, grayscale images, as well as black and white images, respectively. For each of the three
formats there is a binary and an ASCII version. Avizo is able to read all six of them, but will only
write binary PPM and PGM files. Black and white PBM images can only be read if the image width is
a multiple of eight. PNM files will be automatically identified by their file headers.
Regarding the import and export of multiple slices, the same remarks apply as for the TIFF image format. When reading PNM images the channel conversion dialog is popped up. This dialog is described
in the TIFF section.
14.24
PSI format
The PSI format stores a set of 3D points with additional data variables associated to them in a columnoriented way. In Avizo PSI files are represented by data objects of type Cluster.
A PSI file starts with an (optional) header section. This section describes the contents of the file,
i.e., the number and the meaning of the individual data columns. The file syntax is illustrated in the
following example:
# PSI Format 1.0
#
# column[0] = "x"
# column[1] = "y"
616
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
column[2]
column[3]
column[4]
column[5]
column[6]
column[7]
=
=
=
=
=
=
"z"
"Energy"
"Grain"
"Id"
"Coordination Number"
"Crystallographic Class"
symbol[3]
symbol[4]
symbol[6]
symbol[7]
=
=
=
=
"E"
"g"
"n"
"c"
type[3]
type[4]
type[6]
type[7]
float
byte
byte
{ PFCC, GFCC, PHCP, GHCP, OT12, OTHR }
=
=
=
=
5 2694 115001
1.00 0.00 0.00
0.00 1.00 0.00
0.00 0.00 1.00
-0.748
-0.735
-0.742
-0.757
-0.747
-0.748
-0.739
-0.784
-0.769
-0.762
-0.777
-0.757
-0.754
-0.766
-0.745
-4.3840
-4.3840
-4.3400
-4.3823
-4.3638
15
15
15
15
15
327909
327910
328800
328812
328813
12
12
12
12
12
PFCC
PFCC
GFCC
PFCC
PFCC
The very first line indicates that this is a PSI file. The statement column[0] = "x" indicates that
the first data column represents the x-coordinates of the points. In this example in total eight data
columns are defined. Note that the names "x", "y", "z", and "Id" have a special meaning. These
columns are required.
Next, the statement symbol[3] = "E" defines a symbol for the data column labeled "Energy".
This symbol may be used in an arithmetic filter expression as provided for example by the modules
ClusterView and ClusterDiff. Note that symbol definitions for the four special columns labeled "x",
"y", "z", and "Id" have no effect.
Finally, the statement type[3] = float indicates that internally energy values should be stored
as 32-bit floating point numbers. Alternatively, data values may be stored as 32-bit integers (int) or
as 8-bit characters (byte). As a special feature, data values may also be represented by textual tokens.
In this case, the set of allowed tokens should be specified in a comma-separated list as shown in the
above example.
PSI format
617
The header section may also contain any other user-defined comment, provided the first character of a
comment line is a #. The first non-blank line after the header section specifies the number of points,
as well as two other parameters, which are ignored by Avizo. Next, the bounding box of the data set
is specified. However, Avizo will ignore this definition. Instead, the bounding box will be calculated
from the point coordinates itself.
If a PSI file contains no header section at all, Avizo assumes that the file contains exactly eight data
columns and that these data columns are arranged like in the example above.
14.25
Ply Format
The Ply format was developed at Stanford University Computer Graphics Lab. It is used for storing
points and geometries. In Avizo it is possible to read and save surfaces in this format. When writing
Avizo surfaces in this format, additional information such as the material section of the surface will
be written into Ply files as well. However, other application will not be able to interpret this additional
data.
Avizo identifies a Ply file by its header.
14.26
Raw Data
Sometimes you may want to read data defined on uniform lattices in raw format, i.e., plain threedimensional arrays of data. Tomographic images might be given in this way, and raw data is often the
easiest format to produce with, e.g., custom simulation programs.
To read in raw data, use the Load/Load Data menu, select the file in the file browser and click OK.
Since Avizo cannot recognize the file format automatically, a dialog will popup. Within this dialog
choose Raw Data as file format and click OK. Since the raw data file does not contain any information
on how to format the data, some user specifications are required. Avizo will bring up a dialog:
Now adjust the parameters:
Data Types. Primitive type of data: byte for 8-bit data, short for 16-bit data, int32 for 32-bit
integer data, float for 32-bit float data, double for 64-bit floating point data.
In addition, the number of data values per data point must be specified: 1 for scalar data, 3 for
vector data, 6 for complex vector fields.
Dimensions. Size of the three-dimensional array. If incorrect dimensions are specified, the data
will be scrambled.
Min/Max Coords. The bounding box of the data. These parameters are not as critical as the
other ones. In particular the bounding box can be adjusted afterwards using the crop editor.
Header. Many file formats consist of a raw data block with a prepended header. If such files are
read with this method, the size of the header can be specified here. The header will then simply
be skipped when reading the file
618
Endianess. The byte order of data types other than byte is system dependent. If you read your
files on the same type of processor as on which they have been produced, the default setting will
be okay. But if you read data produced, e.g., under Linux (little endian) on an SGI (big endian),
you must specify the correct byte order of the data to be read (little endian in this case).
Index Order. Order in which the data points are read.
Instead of filling in this data dialogue, you might prefer to load the data using the Tcl interface. The
syntax is
load -raw FileName Endianess IndexOrder
DataType nDataVar dimX dimY dimZ
xMin xMax yMin yMax zMin zMax
where
Raw Data
619
xMin xMax yMin yMax zMin zMax denotes the bounding box of the data set.
The raw data format is a very powerful tool, especially for quick-access/prototyping use. However it
may sometimes be tricky to figure out the parameters. Some tools which may help are vi or od -c
(to examine the header of files).
After loading, click on the icon. If the data range is obviously completely wrong, then you have either
specified a wrong data type, or a wrong endianess, or a too short header. If most of the volume looks
okay, but is shifted in the x direction, then you probably have specified a wrong header. If the data
range looks okay, but the data seems scrambled, then you have specified incorrect dimensions or a
wrong index order.
14.27
This file format allows to load subvolumes out of one large raw data block on disk. Use the File
Dialogs Popup Menu to force the file format to Raw Data as LargeDiskData. The format of the
file and the parameters you have to provide are described in Raw Data. The file will be loaded as a
LargeDiskData object.
The file is opened readonly. You cannot change the image data, nor add or modify parameters.
14.28
This is the SGI file format for RGB and grayscale images. When writing an RGBA color field the
alpha value will be discarded. When reading RGB images full opacity is assumed. 16-bit data values, even though allowed by the SGI file format specification, are not supported. SGI-RGB files are
automatically identified by the filename extensions .sgi, .rgb, or .bw.
Regarding the import and export of multiple slices the same remarks apply as for the TIFF image
format. When reading SGI-RGB images the channel conversion dialog is popped up. This dialog is
also is also described the TIFF section.
14.29
STL
STL is a CAD format for Rapid Prototyping. It is a faceted surface representation, i.e., a list of
the triangular surfaces with no adjacency information. Currently the ASCII version of the format is
supported for writing Avizo objects of type Surface.
620
14.30
Stacked-Slices
This file format allows a stack of individual image files to be read, with optional z-values for each
slice. The slice distance need not to be constant. The images must be one-channel images in an image
format supported by Avizo (e.g., TIFF). The reader operates on an ASCII description file, which can
be written with any editor. Here is an example of a description file:
# Amira Stacked Slices
# Directory where image files reside
pathname C:/data/pictures
# Pixel size in x- and y-direction
pixelsize 0.1 0.1
# Image list with z-positions
picture1.tif 10.0
picture7.tif 30.0
picture13.tif 60.0
colstars.jpg 330.0
end
Some remarks about the syntax:
# Amira Stacked Slices is an optional header, which allows Avizo to automatically
determine the file format.
pathname is optional and can be included in case the pictures are not in the same directory as
the description file. A space separates the tag pathname from the actual pathname.
pixelsize is optional too. The statement specifies the pixel size in the x and y direction. The
bounding box of the resulting 3D image is set from 0 to pixelsize*(number of pixels-1).
picture1.tif 10.0 is the name of the slice and its z-value, separated by a blank.
end indicates the end of the description file.
Comments are indicated by a hashmark character (#).
14.31
This is the 2D TIFF file format. It can be used to read and write one or more 2D images. If multiple
images of equal size have been selected in the file dialog, they will be combined into a single 3D image
volume, i.e., a uniform scalar field of bytes or an RGBA color field. TIFF files will be automatically
identified by looking at the file header, irrespective of the actual file name extension.
Stacked-Slices
621
Likewise, if a 3D image data set is to be saved in TIFF format, in fact, for each slice a separate file
will be created. If you choose the 2D TIFF format in the file dialogs format menu, a sequence of
hashmark characters [#] will be automatically inserted into the filename. When saving the images,
the hashmark sequence will be replaced by the current slice number (formatted with leading zeros).
For example, if the base filename is image.####.tif, the files actually being written will be named
image.0000.tif, image.0001.tif, and so on.
Note that not all variants of the TIFF format are supported. In particular, the following limitations
apply:
622
First of all, the dialog displays the number of files to be read, the number of 2D slices (in most cases
equal to the number files), the size of a 2D slice in pixels, as well as the number of channels stored in
the files. An option menu lets you select whether a 1-component uniform scalar field should be created
or a 4-component RGBA color field. Depending on the type of input not all options may be active.
The meaning of the individual items is described below.
Maximum. The maximum value of the red, green, and blue channel is stored in a uniform scalar
field (3- and 4-channel input only).
Weighted Average. A grayscale uniform scalar field is created according to the NTSC formula,
I=.3*R+.59*G+.11*B (3- and 4-channel input only).
Channel 1. The first channel of the input is converted into a uniform scalar field (will always
be active).
Channel 2. The second channel of the input is converted into a uniform scalar field (3- and
4-channel input only).
Channel 3. The third channel of the input is converted into a uniform scalar field (3- and 4channel input only).
Channel 4. The fourth channel of the input is converted into a uniform scalar field (4-channel
input only).
Color Field. An RGBA color field is created (4-channel input or 1-channel input with additional
colormap).
If the first image file contains a colormap, the map will be loaded as a separate object if Channel 1 is
selected, or it will be used to compute an RGBA color field if Color Field is selected.
Moreover, the dialog allows you to adjust the bounding box of the resulting image data set. The
bounding box specifies the world coordinates of the center of the lower left front voxel (min values)
and the center of the upper right back voxel (max values). For example, if your input is 256 pixels
wide and the size of each voxel is 1mm, then you may set xMin to 0 and xMax to 255. The bounding
box of a data object may also be changed later using the ImageCrop Editor.
14.32
Tecplot
Tecplot, Inc. delivers visualization software for engineers and scientists to analyze, discover, and
communicate results. With this reader youre able to import your Tecplot data into Avizo and take
advantage of Avizo visualization and computation modules.
The .tec extension is registered in Avizo for ASCII Tecplot files. The .plt extension is registered in
Avizo for Binary Tecplot files.
If the AVIZO TECPLOT USE TIME SERIES environment variable is defined, then if more than one
variable is defined in the VARIABLES section (after X, Y, and Z), the generated fields will be controlled through an HxDynamicSeriesCtrl Avizo object. This can be used, for instance, if each variable
represents a different time step for a given parameter, so you can play back animation in Avizo.
Tecplot
623
Limitations:
The following ZONE types are supported:
IJK POINT and BLOCK generate HxHexaGrid data. (I1 && J1 && K1). Each additional variable creates an HxHexaScalarField3.
FEPOINT and FEBLOCK TRIANGLE, QUADRILATERAL generate HxSurface data.
Each additional variable creates an HxSurfaceScalarField.
FEPOINT and FEBLOCK TETRAHEDRON generate HxTetraGrid data. Each additional
variable creates an HxTetraScalarField3.
FEPOINT and FEBLOCK HEXAHEDRON, BRICK generate HxHexaGrid data. Each
additional variable creates an HxHexaScalarField3.
14.33
VRML
VRML is a file format for storing 3D geometries. The format is especially popular for web or internet
applications.
If you are using an Avizo version that is linked with the Open Inventor 2.5 or higher, you may import
VRML files as scene graph objects. Use IvToSurface in order to convert the surface parts of the scene
graph into a surface object.
On the other hand, surface objects may be exported into a VRML file using the VRML-Export module.
Unlike most other formats, VRML-Export is implemented as a module rather than an export filter. The
reason is that in addition to the surface itself, other data objects, e.g., 3D image data, can be included
in the VRML file.
624
14.34
This reader adds support for images acquired using a Vevo 770 ultrasound scanner from Visual Sonics. The reader imports the B-Mode, 3D B-Mode and 3D PW Doppler images exported in the
.rdi/.rdb raw data file format of the scanner. To load the data, select either the .rdi or the .rdb
file in the File/Open data ... dialog. B-Mode images will be imported as a 2D slice, 3D B-Mode
images will be imported as single channel uniform scalar fields while and 3D PW Doppler images are
imported as 2-channel fields. In the latter case the B-Mode image is assigned to the first channel and
will be connected to a gray color map and the PW Doppler image is assigned to the second channel
and is connected to the doppler.am color map. Both color maps, if they do not already exist, will
be loaded into the workspace from the /data/colormaps directory.
625
626
Chapter 15
CPS-3
Reader for seismic horizons, fault surfaces, and fault stick files.
15.2
IESX-Card7
15.3
LAS20
Each file consists of numerous sections. These sections are not order specific except that the last section must always be the data section. The first section is usually the VERSION section containing the
version number of the LAS format and identifies whether the data is in wrap mode. The WELL INFORMATION section contains information on the well name, location, and the start and stop depths
of the data in this file. The CURVE INFORMATION section contains the curve mnemonics, units
used, and the definitions of these mnemonics, in the order that they appear in the data section. The
PARAMETER section contains information on parameters or constants (such as mud resistivities)
and is optional. The OTHER section is also optional and contains any other information or comments. The last section is always the ASCII LOG DATA section. Depth values normally appear in
the first column and each column of data must be separated by a space.
15.4
Photon
15.5
SEG-Y
Reader for SEG-Y (Society of Exploration Geophysicists format Y) files. SEG-Y has long been a
standard format for storing seismic data and header information. Almost every seismic processing
package can read and write seismic data in SEG-Y format.
628
Chapter 16
Abaqus
16.2
Abaqus Input
16.3
Ansys
16.4
Ansys Input
16.5
CGNS
630
All element node results are converted to an element result for output.
All node and element results are converted to the global coordinate system.
Writer for CGNS files:
Associated file extension: .cgns.
Limitations: Data cannot be written.
16.6
Ensight
16.7
FIDAP Neutral
16.8
Fluent/UNS
Ensight
631
16.9
LSTC LS-Dyna
16.10
16.11
Madymo
MADYMO from TNO Automotive is a software package used to simulate the dynamic behavior of
mechanical systems, such as automobile crash situations (multibody and finite elements techniques).
The MADYMO kinematics format (.KN3) describes 3D animation of geometric entities such as ellipsoids, planes, etc. It contains static as well as time-dependent information.
After describing the static geometry, the MADYMO file contains a number of time steps, each time
step specifying further positions, orientations, etc. Avizo loads the geometry and then displays a
dedicated module called MadymoControl, which allows the user to select the desired time step. In this
way, the evolution of the data over time can be followed. The MADYMO reader creates a data module
containing Open Inventor geometry data that can be displayed using an IvDisplay module.
This reader currently supports MADYMO version 6.0.
Note that this reader is available as a separate option for Avizo.
632
16.12
Madymo Time-history
Madymo, from TNO Automotive, is a software package used to simulate crash situations (multibody
and finite elements techniques).
The Madymo Time-history files contain time-history output from Madymo. The Madymo Timehistory reader creates a SpreadSheet data module containing a first column time and one column
for each parameter:channel in the time-history. This data can be displayed using a TimeHistoryPlot
module.
This reader currently supports Madymo version 6.0.
Note that this reader is available as a separate option for Avizo.
16.13
NASA/Plot3D
16.14
16.15
Nastran Output2
Madymo Time-history
633
16.16
Radioss
Radioss from Mecalog is a finite element analysis tool used, for example, for crash simulation.
The Radioss format (.RAD) describes 3D animation of geometric entities and associated scalar or vector data. Simulation results come as a set of files. The user can use either Load.. or Load time series...
to load multiple time steps. Loading multiple time steps will create a module TimeSeriesControl which
allows the user to select the desired time step. See TimeSeriesControl for more information.
To load a Radioss solution, you need to load an output file of type:
[xxxY000.RAD] - initial output file (optional)
[xxxYnnn.RAD] - result output for time step nnn
The reader also requires xxx.RAD to be present in the same directory as the loaded files. This file
stores the definitions for parts (/PART/) and possibly subsets (/SUBSET/). This file will be automatically loaded, you should not try to load it.
If xxxY000.RAD is explicitly loaded, a set of initial surface/grid/lines is created without attached
fields.
Using Load... with a single result file, a set of surface/grid/lines is created with attached fields. For
lines, node data is directly stored in the HxLine module: data set 0 stores the node id, data sets 1, ..., n
correspond to node data in order (see console messages).
Using Load time series... a unique set of surface/grid/lines is created. Do not select the initial output
file xxxY000.RAD when using the time series option. Otherwise, it is not possible to interpolate
between subsequent time steps.
Selecting multiple files with the Load... command does the same, except that the initial state read
from xxx.RAD is inserted as an initial time step (time 0). In this case xxxY000.RAD should not be
selected.
The Radioss reader can group the data objects read by using setTightness. This is enabled by Tcl
variable radiossForceTightness (set by default in radioss.hx).
634
This reader currently supports the Radioss version 4.1k ASCII file format.
The following element types are interpreted: SOLID, QUAD, BEAM, SPRING, TRUSS, SHELL,
SH3N, ADMAS, CLOAD, RWALL, RWALLCYL, CYLJOINT, RBODY, ACCEL, SECT.
Only GRNOD/NODE groups are interpreted.
Note that this reader is available as a separate option for Avizo.
16.17
SDRC/IDEAS Universal
16.18
STAR-CCM
SDRC/IDEAS Universal
635
16.19
Tecplot
636
Chapter 17
NetCDF
NetCDF (Network Common Data Form) is a machine-independent, self-describing, binary data format standard for exchanging scientific data. Avizo supports the NetCDF Climate and Forecast (CF)
Metadata Conventions version 1.0. NetCDF is used extensively in the atmospheric and oceanic science
communities.
638
Chapter 18
An Avizo XScreen Pack config file is an Open Inventor file with a .cfg extension containing one or
more SoScreen nodes (one for each screen of the VR system), optional nodes SoTracker (containing
information about the tracking system) and SoVRProperty (containing general information), as well
as optional Open Inventor nodes (containing possibly a visual representation of the room).
For further information please refer to the Config file reference section.
640
Chapter 19
LDA
This is the native VolumeViz file format for storing hierarchical multi-resolution volume data, defined
by VSG. It can be a single file (.lda) or coupled with a .dat file. In the latter case, the .lda file references
the .dat file. This innovative technology allows rendering of extremely large data sets with reliable
interactive navigation even on relatively low-end machines.
19.2
LargeDiskData
This is the native Avizo file format for blockwise access of image data stored on disk as described
in LargeDiskData. It supports read/write operations, multi-resolution access and saving of changed
parameters. The data is stored in a couple of files, e.g.:
visMaleCT
visMaleCT-SUPR.dat
visMaleCT-0001.dat
visMaleCT-0000.dat
visMaleCT-0002.dat
The first one is recognized by Avizo as an AmiraMesh file. It contains the parameters and a link to the
other files. It can be loaded into Avizo with the File Dialog. The other files contain the actual image
data.
You can create such a fileset with the ConvertToDiskData module.
19.3
Stacked-Slices as LargeDiskData
Stack of image files can be loaded as LargeDiskData. This file format allows to read a stack of individual image files with optional z-values for each slice. The slice distance need not to be constant. The
images must be one-channel images in an image format supported by Avizo (e.g., TIFF). The reader
operates on an ASCII description file, which can be written with any editor.
Here is an example of a description file:
# Amira Stacked Slices as ExternalData
# Directory where image files reside
pathname C:/data/pictures
# Pixel size in x- and y-direction
pixelsize 0.1 0.1
# Image list with z-positions
picture1.tif 10.0
picture7.tif 30.0
picture13.tif 60.0
colstars.jpg 330.0
end
The format of the file and the parameters you have to provide are described in StackedSlices.
The image files are opened readonly. You cannot change the image data but you can add or modify
parameters in the description file. The file will be loaded as a LargeDiskData object.
642
Chapter 20
AVS Field
This format provides a bridge between Avizo and AVS, the Advanced Visual System software. It
enables you to read and write data in the native AVS field format.
Note that AVS supports fields of arbitrary dimensions and with an arbitrary number of components
per node. For some combinations there are no corresponding Avizo data objects. Thus, the following
restrictions apply:
Avizo identifies AVS Field files by the file name suffix .fld.
20.2
The AVS UCD (Unstructured Cell Data) format can be used to represent finite-element grids and associated data fields in 2 and 3 dimensions. Currently, in Avizo only 2D triangular cells, 3D tetrahedral
cells, and 3D hexahedral cells are supported. Grids with these cells types will be converted into objects
of type Surface, TetraGrid, or HexaGrid, respectively. Corresponding data fields will be converted into
appropriate Avizo objects as well, provided the data is defined on a per-node basis. Cell data are
currently not supported.
Two variants of the AVS UCD format exist, an ASCII version and a binary version. Avizo is able to
read and write both of them. Avizo identifies AVS UCD data files by the file name suffix .inp.
20.3
FIDAP NEUTRAL
The FIDAP NEUTRAL describes 3D simulations on geometries consisting of 3D vertices and a number
of geometry elements based on them. Avizo can only read FIDAP NEUTRAL files in plain ASCII
format containing 3D triangular/quad surfaces, and tetrahedral grids.
After describing the geometry, the FIDAP NEUTRAL file contains a number of time steps, each time
step specifying the same subset set of data sets defined on the 3D nodes (velocity, pressure, temperature
etc.). Avizo loads the geometry and then displays a dedicated module called FIDAPControl which
allows the user to select the desired timestep. In this way, the evolution of the data in time can be
followed.
20.4
Fluent / UNS
The Fluent file format is used for storing 2D and 3D geometries, such as unstructured finite-element
grids. The format is quite powerful. Currently, Avizo only supports Fluent files containing 3D triangular surfaces, tetrahedral or hexahedral grids.
When exporting Fluent files, additional information defined in Avizos surface or grid structures such
as the material section is saved as well. However, other applications wont be able to read or interpret
these additional data.
Fluent files are identified automatically by analyzing the file header.
20.5
Hypermesh
The Hypermesh (TM) file format is used by the Altair HyperWorks product family. The format describes 3D geometries consisting of 3D vertices and a number of cells based on them. Avizo can only
read Hypermesh files in plain ASCII format containing 3D triangular surfaces, tetrahedral grids, or
644
so-called tria6 components (a special kind of triangles). If tetrahedral components are present, the
result of the import is a TetraGrid, otherwise it is a 3D surface.
Tetrahedral grids and 3D surfaces can also be exported in Hypermesh format. Every 3D surface component (patch) is saved with its interior-exterior material names, separated by a -. However, it is not
guaranteed that other applications understand this coding. A tetrahedral grid is saved together with
its boundary surface. The patch structure of the boundary surface is retained. In order to separate the
boundary into different patches, the boundary condition ids are interpreted. The material ids of every
tetrahedron are also saved.
Avizo identifies Hypermesh files by the extensions .hm or .hmascii. The decision whether the file
contains a 3D surface or a tetragrid is made after reading and analyzing the content.
20.6
The I-DEAS universal file format is a general format originally used by SRDCs I-DEAS Master Series
software to encode CAD/CAM models and FEM simulation results. The format is able to store lots of
different data entities and FEM cell types. In Avizo the following subset of so-called universal data
set numbers is supported when importing I-DEAS files:
15: Nodes with single precision coordinates.
781, 2411: Nodes with double precision coordinates.
71, 780, 2412: Cell definition. Lines, triangles, quads, tetrahedra, hexahedra, and prisms with
linear shape functions are supported. Quads are decomposed into triangles. Prisms are decomposed into triangles as well. Hexahedra are decomposed into tetrahedra if tetrahedra or prisms
appear too (Avizo currently is not able to handle meshes with mixed element types or elements
with higher-order shape functions).
55, 2414: Data at nodes.
The common file name extension of this format is .unv. For I-DEAS files with some other extension
the file format has to be specified manually via the popup menu of the file dialog. Surfaces, tetrahedral
grids, and hexahedral grids can also be exported into an I-DEAS universal file.
20.7
Plot3D is a simple binary file format, to represent structured curvilinear grids and scalar or vector fields
defined on these grids. This format originates from the Plot3D program developed by Pieter Buning at
NASA Ames. This reader will also accept complex valued solution files.
To read data in this format, you have to select a Grid file, and optionally additional scalar, vector, or
solution files. The preferred file name suffix for Plot3D files is .p3d. In order to load Plot3D files
from the command line use load -plot3d.
645
To write a data object in Plot3D format first create the grid file by choosing Plot3D Grid File in Avizos
file dialog. Then write the data itself by choosing Plot3d Data File. From the command line you may
use save -plot3dgrid and save -plot3ddata, respectively.
The Plot3D may contain binary 32-bit values in either big or little endian format. The reader will
attempt to detect the correct type and convert the data if necessary. In detail Plot3D files must have the
following structure:
Grid File:
3 integers:
[IDIM, JDIM, KDIM]
IDIM x JDIM x KDIM (call this product NPOINTS) floating-point X
coordinates (brackets indicate one record):
[x1,x2,...,xNPOINTS,
NPOINTS floating-point Y coordinates:
y1,y2,...,yNPOINTS,
NPOINTS floating-point Z coordinates:
z1, z2,...,zNPOINTS]
Solution File:
3 integers:
[IDIM, JDIM, KDIM]
4 floating-point conditions:
(free-stream mach number, angle-of-attack, Reynolds number, and
integration time)
[FSMACH, ALPHA, RE, TIME]
IDIM x JDIM x KDIM (call this product NPOINTS) floating-point Q1
values (brackets indicate one record):
(Q1 is density (RHO), may be complex)
[q11, q12,...,q1NPOINTS,
NPOINTS floating-point Q2 values:
(Q2 is x momentum (RHO*U), may be complex)
q21,q22,...,q2NPOINTS,
NPOINTS floating-point Q3 values:
(Q3 is y momentum (RHO*V), may be complex)
q31,q32,..., q3NPOINTS,
NPOINTS floating-point Q4 values:
(Q4 is z momentum (RHO*W), may be complex)
q41,q42,...,q4NPOINTS,
NPOINTS floating-point Q5 values:
(Q5 is total energy per unit volume (E), may be complex)
q51,q52,...,q5NPOINTS]
Scalar File:
4 integers:
646
Vector File:
4 integers:
[IDIM, JDIM, KDIM, 3]
IDIM x JDIM x KDIM (call this product NPOINTS) floating-point F values:
[fx1,fx2,...,fxNPOINTS,
NPOINTS floating-point FY values:
fy1,fy2,...,fyNPOINTS,
NPOINTS floating-point FZ values:
fz1,fz2,...,fzNPOINTS]
647
648
Chapter 21
The Bio-Rad confocal file format is used to store 3D image data from confocal microscopy. It essentially consists of a 76 byte header section followed by the image data in big endian raw format. Avizo
recognizes Bio-Rad files automatically by the suffix .pic. In order to load Bio-Rad files from the
command line use load -biorad <filename>.
Since the header section of the format doesnt contain full information about the voxel size, the bounding box of the 3D image has to be adjusted manually for the resulting uniform scalar field using Avizos
crop editor. Note that Bio-Rad confocal files can only be read but not be written by Avizo.
21.2
FEIStackedScalarField3
21.3
FEIUniformScalarField3
21.4
Leica 3D TIFF
This reader is able to read 3D TIFF files containing a whole stack of 2D images. In particular, the 3D
TIFF format is used by newer Leica laser scanning microscopes.
In addition to the image data itself special parameters like pixel size or slice distances may be stored
in a 3D TIFF file. If such information is found it will be interpreted in order to create a uniform
scalar field of the proper type. However, if no bounding box information is encountered, the channel
conversion dialog described in the 2D TIFF section will be popped up.
21.5
This is the Leica binary file format used by Leica laser scanning microscopes. It consists of an lei
file as well as several TIFF slices. In order to read these files, select only the lei file. Parameters like
pixelsize or slice distance are read from the lei file.
21.6
The Leica Image File (LIF) format is used by Leicas LAS AF software which is shipped with all
Leica laser scanning microscopes starting with May 2006. It consists of a single binary XML files
that contains one or multiple image data objects. Selecting a *.lif file in the Open data ... file browser
brings up a dialog that lists all data sets contained in the file. The user may highlight one or multiple
entries and click OK to load the corresponding images, volumes, or series into the Avizo workspace.
Currently the LIF import supports the following image types: 2D images, z-stacks, 2D time lapse
series and 3D (z-stacks) time lapse series.
21.7
This is the file format used by the older Leica laser scanning microscopes. It consists of an info file as
well as several raw or TIFF slices, which all must reside in the same directory. In order to read these
files, select only the info file. Parameters like pixelsize or slice distance are read from the info file. If
the file contains colormaps, they will be read, too.
21.8
MRC
650
21.9
The MetaMorph Stack (STK) file format is used to encode 3D image data, e.g. from confocal microscopy. It is a special version of the TIFF file format. Thus, STK files are indicated as TIFF files in
the format column of the file dialog.
STK files can be read just as ordinary 3D TIFF files. The channel conversion dialog is popped up, letting the user decide how to proceed with multiple channel images and letting him define the bounding
box of the 3D image. Note that size hints stored in the STK file itself are currently not interpreted.
Also note that Avizo can only read but not write STK files.
21.10
Olympus (.oib/.oif)
The Olympus OIB/OIF file format is used by Olympus FluoView 1000 confocal microscopes to store
single and multi-channel image stacks, single images, and time lapse series. Two variants of the
format are available. One (file extension oib) uses a single binary file to store images and meta
information. Another (file extension oif) stores all frames of an image stack as separate files in
a directory hierarchy. A simple ASCII text file is used for storing the meta information. The latter
version exists primarily to work around the 4GB file size limit on some operating systems. To import
Olympus OIB/OIF data, load the .oib/oif file with File-Open Data from the main menu.
Note: Because this file format uses Microsoft OLE2 Compound Document Format this reader is only
available on the Windows platform.
21.11
Zeiss LSM
This format stores 3D image data from Zeiss LSM(TM) confocal laser scanning microscopes in a
single file. An LSM image stack can store up to four separate channels or an RGB(A) color.
651
652
Chapter 22
AMBER
AMBER is a format consisting of three different file formats for storing structures of biomolecules
and molecular simulations such a trajectories and its velocities. The three supported file formats are:
*.top files: saving the structural information of molecules such as atoms position, their
residues. Additional information may be stored here (dihedral angles, meta information on
the molecule...). This file can be loaded on its own, since enough information to display the
molecule are guaranteed.
*.crd files: storing for each time step the position of every atom of the molecule. Additional
information is included for each time step, such as velocities, energy status... In order to load
this file, a name.top file has to be loaded, and the name.md.crd file has to exist (where name is
variable). It will be loaded automatically (no need to load the two files simultaneous)
*.vel files: storing for each time step the velocities of every atom of the molecule. Additional
information is included for each time step, such as velocities, energy status... In order to load
this file, a name.top file has to be loaded, and the name.md.vel file has to exist (where name is
variable). It will be loaded automatically (no need to load the two files simultaneous)
Supported records
Avizo uses all information supplied in a AMBER Structure or Topology file. Following record types
can be parsed while reading those files:
ATOMS RESIDUES DIHEDRALS ANGLES BONDS USER-DEFINED
Though not all information supplied by the trajectory File is parsed. Only the position of each atom is
saved for every time step of the trajectory.
You can get further information about AMBER at http://amber.scripps.edu/
22.2
AMF
AMF is an XML based data description format for molecular data in Avizo XMolecular Pack.
It is able to store all data contained in the Molecule data-structure in a human readable format. It thus
should be the format of choice if you want to edit add or remove levels, attributes, or observables by
hand.
By default, AMF stores the xml file in gzip compression. If you want to edit the contents of the file,
you may decompress it with the gzip program. To do so, you first need to rename the file to end on gz:
mv Molecule.amf Molecule.amf.gz
gzip -d Molecule.amf.gz
Both uncompressed and compressed files can be loaded. Avizo detects amf files by the ending and the
file header.
AMF can be used to store 3 different data types which will be described in the following sections:
Molecule
MolTrajectory
MolTrajectoryBundle
Each of these entries, which is encountered in a file, will be loaded into a separate data module in
Avizo.
AMF stores the topology of each structure by defining levels (e.g. atoms and bonds) and groups in
that level (e.g. a single bond in the bond level). Each level has a reference level (bonds reference
atoms) and each group contains indices of groups of the reference level (e.g. a bond contains two atom
indices). Attribute values are defined in the order of the groups in the level. Note that unlike in the rest
of Avizo where counting of level, group and attribute indices starts with 1, in AMF each index starts
with 0, therefore indices will be shifted by -1 compared with what you see after loading it into Avizo.
A first Example: As a first simple example the following text shows how to define a water molecule.
The levels atoms, bonds and residues exist. The first two levels are of fixed group size. As
root level, the atom level has no reference level and has therefore groups of size 0. This is a special
case and the GROUP element can be omitted. Bonds always reference two atoms and are therefore of
fixed group size 2. The indices can therefore be read as consecutive groups of 2. Residues reference
an arbitrary number of atoms and the first number for each residue reference in the groups element
therefore needs to contain the number of atoms referenced by the residue (in this case 3), followed by
654
these reference indices (0 1 2). These levels represent the 3 possibilites of defining a level: Variable
group size means that the number of group elements occurs in the list before each group, fixed group
size of n means that each group is an n-tuple in the list, and the atom level is a special case because it
is the root level and atoms do not reference any other groups. The coordinates are in a different section
and the list contains consecutive 3-tuples (x,y,z) for each atom in the order of their index.
<?xml version="1.0" encoding="ASCII"?>
<!DOCTYPE AMF SYSTEM "amf.dtd">
<AMF version="1.00">
<MOLECULE name="water">
<TOPOLOGY>
<LEVEL name="atoms" size="3" fixedgroupsize="0">
<ATTRIBUTE name="atomic_number" type="int32">
1 8 1
</ATTRIBUTE>
<ATTRIBUTE name="MMFF94_type" type="string">
<![CDATA[HOH OH2 HOH ]]>
</ATTRIBUTE>
</LEVEL>
<LEVEL name="bonds" size="2" fixedgroupsize="2">
<GROUPS>
1 0 1 2
</GROUPS>
<ATTRIBUTE name="type" type="int32">
1 1
</ATTRIBUTE>
</LEVEL>
<LEVEL name="residues" size="1">
<GROUPS>
3 0 1 2
</GROUPS>
</LEVEL>
<COORDINATES>
0.251 -0.36 -0.046 0.249 0.684 0.231 0.586 -0.954 0.791
</COORDINATES>
</MOLECULE>
</AMF>
Now suppose you want to have a trajectory of a water molecule with 3 time steps. How would the file
differ? First of all the MOLECULE element would be replaced by a
<MOLTRAJECTORY name="water" size="3">
AMF
655
Next the COORDINATES element needs to contain 3 times as many coordinates. The list starts with
the first timestep and gives all coordinates and continues with the second timestep and so on. Finally,
a trajectory may contain observables, which for example might be the intramolecular energy per time
step as computed during a simulation in an NVT ensemble.
<OBSERVABLE name="intramolecular_energy">
-1.31 -1.29 -1.30
</OBSERVABLE>
Molecule:
A molecule consists of a topology, optional coordinates and an arbitrary number of fields.
A topology consists of an arbitrary number of levels which contain groups and an arbitrary number of
attributes.
There is a set of predefined levels and attribute which is used by some of the data, viewer or computational modules in Avizo. A molecule must have the root level atoms which needs to be of fixed
group size 0. The atom level must contain the attribute atomic number. Bonds must be defined in
the level bonds of fixed group size 2 and usually have the attribute order which has the following
meaning: 0=undefined, 1=single, 2=double, 3=triple, 4=aromatic bond.
Modules for sequence alignment additionally require a level residues with an attribute type.
Modules requiring secondary structure information require a level secondary structure with the reference level residues and the attributes type which can be helix, sheet or turn.
MolTrajectory:
MolTrajectories are saved like Molecules except that they can contain several different timesteps (i.e.
sets of coordinates) and an arbitrary set of observables. Observables are fields which contain one value
per timestep.
Data types
Data can be stored as int32 (c-type: integer), float, or string (c-type: char[]).
ASCII Data
The encoding of the file must be ASCII.
Data tokens in PCDATA records must be separated by one or more whitespaces.
DTD:
<!ELEMENT AMF (MOLTRAJECTORYBUNDLE*,MOLTRAJECTORY*,MOLECULE*)>
<!ATTLIST AMF
version CDATA #REQUIRED>
<!ELEMENT MOLTRAJECTORYBUNDLE (MOLTRAJECTORY*)>
<!ATTLIST MOLTRAJECTORYBUNDLE
name CDATA #REQUIRED>
<!ELEMENT MOLTRAJECTORY (TOPOLOGY,COORDINATES?,OBSERVABLE*)>
<!ATTLIST MOLTRAJECTORY
name CDATA #REQUIRED
656
22.3
DX
The dx file format contains the electrostatic field generated by APBS [1-2]. The reader was written to
work with the output of APBS version 0.5.1.
References
1 http://apbs.sourceforge.net
2 Holst M, Baker N, Wang F. Adaptive multilevel finite element solution of the PoissonBoltzmann equation I: algorithms and examples. J Comput Chem, 21, 1319-1342, 2000.
22.4
GROMACS
Gromacs is a format consisting of three different file formats for storing structures of biomolecules
and molecular simulations such a trajectories. The three supported file formats are:
*.gro files: saving the structural information of molecules such as atoms position, their
residues. Additional information may be stored here (dihedral angles, meta information on
DX
657
the molecule...). This file can be loaded on its own, since enough information to display the
molecule are guaranteed.
*.top files: saving topological information of molecules such as bonds, secondary structures...
This file must be loaded in combination with the structural file (*.gro) since it is not providing
enough information to display the molecule.
*.trr files: storing for each time step the position of every atom of the molecule. Additional
information is included for each time step, such as velocities, energy status...
Supported records
Avizo uses all information supplied in a Gromacs Structure or Topology file. Following record types
can be parsed while reading those files:
ATOMS RESIDUES DIHEDRALS ANGLES BONDS USER-DEFINED
Though not all information supplied by the trajectory File is parsed. Only the position of each atom is
saved for every time step of the trajectory.
When saving a Molecule, the following record types will be written:
ATOMS RESIDUES BONDS
When saving a Trajectory, only the positions of each atom in the molecule will be saved.
You can get further information about GROMACS at http://www.gromacs.org
22.5
MAP
The map file format contains the interaction grids generated by Autogrid which is part of the Autodock
suite [1-2]. The import routine was written for output generated by Autogrid version 4.0.
References
1 http://autodock.scripps.edu
2 Huey, R., Morris, G. M., Olson, A. J. and Goodsell, D. S. (2007), A Semiempirical Free Energy
Force Field with Charge-Based Desolvation J. Computational Chemistry, 28: 1145-1152.
22.6
MDL
The sdf file format is part of the set of MDL file formats used for saving chemical structures.
Avizo uses and writes the information of the atom and bond blocks.
658
22.7
PDB
PDB is a file format for storing structures of biomolecules. The format is used for archiving molecules
in the online protein data base. [http://www.rcsb.org/pdb/]
Supported records
Avizo uses most, but not all, information supplied in a PDB file. The following record types will be
parsed:
HELIX SHEET TURN SITE MODEL ENDMDL ATOM HETATM TER CONECT END
The rest will be skipped.
When saving a structure, the following record types will be written:
HEADER TITLE AUTHOR
SEQRES HELIX SHEET TURN SITE SSBOND
ATOM HETATM TER CONECT MASTER END
Avizo supports PDB files that follow the conventions of PDB format version 2.0 or higher.
How to identify PDB groups in Avizo
In Avizo all levels (atoms, residues, bonds , ...) contain a set of information fields called attributes.
Every level contains the field index which is an internal identifier that does not necessarily correspond
to the succession of the groups in the file.
If the molecule has been read from a PDB file then the atom name field is composed of the chain
name and the sequence number (columns 7 - 11) of the respective ATOM records. The field index
only corresponds to the sequence number if the enumeration of pdb atoms is continuous.
The type field contains the information of the field named atom name (columns 13 - 16) in the PDB
file.
The name field of chains contains the chainID (column 22) of the respective ATOM record. HETATM
records whose chainID field is empty will not belong to any chain in Avizo. The chain name of atoms
belonging to ATOM records whose chainID field is empty will be set to NIL.
The name field of residues is composed of the chain name and the residue sequence number (columns
23 - 26). If the residue is a het-group, the name will start with HET.
The field type contains the residue names (columns 18 - 20). If none is given, the field will be set to
UNK (for unknown).
Example:
ATOM
441 CB VAL L 58
...
21.025 37.362 -2.515 ...
1.00 8.15 1IGM 562
The atom will be known with name L441 and comment CB. It will belong to the residue with name
L58 and of type VAL which is sited on the chain with name L.
PDB
659
It is possible to save trajectories in the PDB format. Note, however, that this is inefficient due to the
redundancy of information of the atom records in each model entry.
Possible problems
Some molecular modeling packages use slightly altered conventions for saving PDB files. If you
encounter any problems in reading such files please check the following section and adjust your files
as necessary.
Avizo can read several models of one molecule as a trajectory if the different versions are separately
declared between MODEL and ENDMDL records. If there are several possible conformations in one
model (by using alternate location identificators), Avizo will read only the first version (that one with
the altLocId A).
Molecules that are declared as models need to have the same number of atoms as Avizo will only read
the topology once. Only the coordinates are read in for each timestep. If you have several different
molecules in one PDB file, you can separate them by END records. Avizo will load every molecule
ended by an END record separately, creating its own data object.
The automatic creation of bonds of peptide and RNA/DNA residues is done by comparing the atoms
of the residues with a residue database. The method requires the atom names and the residue names
to follow the PDB standard. Sometimes third party programs write atoms like O3* as O3. This will
prevent Avizo from recognizing the atoms in the database. Connections between consecutive residues
is done by checking the sequence of residues of each chain. Bonds of non-standard residues must be
declared in the connect records.
Columns 77-78 should contain the element name of the atom. In some PDB files, this field is empty or
contains other information. In this case, Avizo uses the first two letters of the atom name to determine
the atom type. However, in special cases this is not unequivocal. The field is not allowed to contain
non-numerical information.
All information in columns 79-80 is interpreted as the charge of the atom. Thus, line numbers in this
field will lead to strange charge values.
You can get complete documentation of the file format at http://www.rcsb.org/pdb/.
If you have an active network connection and know the PDB-Id, you can also load the structure directly
from rcsb.org. To do so use the Tcl command
newMolFromPDB <PDB-ID>
where PDB-ID is the ID of the structure (for example 1HVR). The command works asynchronously.
Depending on file size and bandwidth the process may take a few seconds up to several minutes. The
requested pdb entry will appear as a new object in the object pool.
660
22.8
PHI
The phi file format is generated by the Poisson Boltzmann solver of CONGEN [1-2]. The file import
routine was written for output generated by Congen version 2.1.2178.
References
1 http://www.congenomics.com/congen/congen toc.html
2 R. E. Bruccoleri Application of Systematic Conformational Search to Protein Modeling,
Molecular Simulations 10, 151-174 (1993)
22.9
PSF/DCD (CHARMM)
This is a format used by CHARMM. It consists of two files, one containing the structural information
(suffix .psf), and one containing the trajectory, i.e., the atom coordinates (suffix .dcd).
Avizo can read this format and translates the sections of the psf file into grouping levels.
22.10
Tripos
The mol2 file format is used to save Tripos Sybyl molecule information [1].
If more than one molecule record is found when reading a file, Avizo loads the data as either a Trajectory (if all molecules have the same number of atoms and bonds), or as a TrajectoryBundle (if at least
2 molecules differ in their number of atoms or bonds). Avizo uses and writes the information given in
the molecule atom and bond records.
References
[1] http://www.tripos.com/data/support/mol2.pdf
22.11
UniChem
The UniChem file format (extension uni) is used by the UniChem molecular modeling software to save the structure of molecules and computational results.
See more at
http://www.oxmol.com/software/unichem/.
Avizo uses all structural information supplied in the COORDINATES and BONDS blocks. Files that
are exported by Avizo follow file format version 4.0 and can be used with the UniChem software.
PHI
661
22.12
The zmf file format is a structured file format developed for exchanging molecular data.
This description is divided into two parts. First we describe the general and context-independent file
structure. Second, we explain our structuring conventions for molecular data.
Structured Files
A structured file consists of a header and two sections: a plain text section describing the files structure, and a binary section containing the actual data:
STRUCTURED FILE V0.1
TYPE
struct {
atoms : array of
id
:
name
:
mass
:
properties :
};
};
DATA;
......... binary
BINARY_BE MOLECULE_TRAJECTORY
struct {
integer*4;
string;
real*4;
integer*4[8];
data ...........
The file structure is similar to a structured data type in C or PASCAL. There are two composite data
types (array and struct), and three elementary data types (integer, real, and string).
Finally there exists a special type (extern) for including other structured files.
struct contains named fields of arbitrary heterogeneous type.
array contains numbered fields of the same type. Arrays are one-dimensional only. Their size
can either be specified in the type declaration (Example: array[3] of integer) or in the data
section.
real and integer contain numerical, possibly multi-dimensional, data. The number of bytes in
an element may be specified using *n. At the moment only 4-byte types are allowed. The rank
(number of dimensions) must be specified in the type declaration. The number of elements in each
dimension may be specified in the type declaration or in the data section (indicated by .). Example:
integer*4[4,.,3].
string contains ASCII data of arbitrary length. Again the length can be specified in the type declaration (Example: string*22) or in the data section.
extern is a special kind of a string. The length must be specified in the data section. The string
is interpreted as a structured file whose contents should appear as part of the current file structure.
662
The leading 3 specifies the dimension unspecified in the data type. The 24 numbers that follow it are
the entries of the array.
663
};
typbase : struct {
atoms : array of struct{
id : integer*4;
name : string;
number : integer*4;
radius : real*4;
};
};
};
In the following we will use a notation inspired by C to denote elements of the structure. A structs
field will be specified as the struct followed by a . and the name of the field. For array elements
we will write the array followed by brackets ([]). For example, molecules[].groupings.atoms[].id
means the field id in an element of the array atoms which is a field of the struct groupings
which is a field of an element of the array molecules.
The overall type of the file is a struct containing the fields molecules and typbase. molecules is an
array of elements, each of which describes a molecule. molecules[].name contains the name of the
molecule.
molecules[].groupings specifies the topology of the molecule, i.e., which atoms it contains. Every
element of molecules[].groupings.atoms describes one atom of the molecule. atoms[].id is a unique
numerical identifier. atoms[].type is a numerical reference to a field in the typebase described below.
atoms[].name is a textual identifier unique with respect to all atoms. It is used to specify this atom on
the command line.
molecules[].trajectory is an array with every element describing one time step of a molecule trajectory. trajectory[].coordinates has the same number of elements as molecules[].groupings.atoms and
every element specifies a position for the corresponding atom.
typbase is structured analogously to molecules[].groupings.
Corresponding to
molecules[].groupings.atoms, the array typbase.atoms holds information common to
atoms of the same type.
Specifically, the type information of an atom is stored in the
molecules[].groupings.atoms[].typeth element of typbase.atoms.
typbase.atoms[].id holds a numerical identifier that should be identical to the element index. typbase.atoms[].name is a textual label for making the types user transparent. typbase.atoms[].number
and typbase.atoms[].radius are the atomic number and radius of an atom having this type.
Bonds
Bonds can be specified by adding an array named bonds to molecules[].groupings:
bonds : array of struct{
664
id : integer*4;
type : integer*4;
components : integer*4[2];
index : integer*4;
};
bonds[].id is a unique numerical identifier which should be greater than any value specified in
atoms[].id. Analogous to atoms[].type for atoms, bonds[].type specifies a numerical type for every bond, although this information is not yet interpreted by Avizo. The array bonds[].components
holds the numerical identifiers of the two atoms connected by the bond. bonds[].index finally indicates if it is a single (1), double (2), triple (3), or an aromatic bond (4). The value 8 indicates a bond
of unknown type.
665
};
};
};
molbase file:
struct {
typbase
: extern;
molecules : array of struct{
id
: integer*4;
observations : struct {
global_obs
: string[.];
};
text : string[.];
name : string;
groupings
: struct {
atoms
: array of struct{
id
: integer*4;
type
: integer*4;
name
: string;
};
bonds
: array of struct{
id
: integer*4;
components : integer*4[2];
type
: integer*4;
index
: integer*4;
};
dihedrals
: array of struct{
id
: integer*4;
components : integer*4[4];
type
: integer*4;
};
residues
: array of struct{
id
: integer*4;
name
: string;
remark
: string;
type
: integer*4;
from_id
: integer*4;
to_id
: integer*4;
};
};
trajectory
: array of struct{
coordinates
: real*4[3,.];
666
};
};
};
typbase file:
struct {
atoms
: array of struct{
id
: integer*4;
type
: integer*4;
name
: string;
number
: integer*4;
periodic_row : integer*4;
mass
: real*4;
charge
: real*4;
partial_bond_charge_increment : real*4[2];
radius
: real*4;
N_i
: real*4;
A_i
: real*4;
g_i
: real*4;
alpha
: real*4;
datyp
: string;
properties
: integer*4[8];
equivalence : integer*4[4];
};
};
Some yet undescribed features appear in this example. The first is the possibility to supply scalar observables corresponding to the single time steps. Possible values are different energies like kinetic and
potential energy. The names of the observables are read from molecules[].observations.global obs[]
in the trajectory file. Their values are stored in molecules[].trajectory[].global obs[].
Besides bonds, the file can contain arbitrary groups of atoms or groups of groups. These groups are
organized in levels which appear here as the elements of molecules[].groupings.
Every level is an array whose elements describe the particular groups. Every group is a struct with
the fields id and type, and also fields specifying the contents of the group. id is numerical identifier
unique over all groups specified for the molecule. Specifically, the identifiers in one level should be
consecutively numbered and bigger than all the identifiers used in the preceding levels.
There are two ways of specifying a group. The general way is to specify all elements explicitly. In that
case, the group contains a field components[] containing the ids of all elements of the group. If the
elements of a group cover a consecutive sequence of ids, it is sufficient to specify only the first and the
last id. In that case the group contains the fields from id and to id.
667
dihedrals are groups of four atoms connected by three bonds like a chain. Every such group defines
two intersecting planes. The angle of intersection is called a dihedral angle or torsion angle. For
performance reasons Avizo will read dihedrals only if the molecule has less than 500 atoms. Torsion
angles can be displayed with the MoleculeView.
residues are groups representing the building blocks of a complex molecule, for example the amino
acids of a protein. All groupings can be used to color the molecule in the MoleculeView or in the
BondAngleView using the general coloring facilities.
668
Chapter 23
CATIA5
Reader for CATIA V5 (Computer Aided Three-dimensional Interactive Application Version 5) files.
File format developed by Dassault Systemes and IBM. For this reader and other CAD readers some
additional package might be required, please contact our support lines for more information.
670
Chapter 24
IGES
Reader for IGES (Initial Graphics Exchange Specification) files. The IGES format serves as a neutral
exchange format for 2D or 3D CAD product models, drawings, and graphics.
672
Chapter 25
STEP
Reader for STEP (Standard for the Exchange of Product Data) files. STEP is an ISO standard industrial automation systems product data representation and exchange format. For this reader and other
CAD readers some additional package might be required, please contact our support lines for more
information.
674
Part IV
Chapter 26
Avizo
26.1
AnnaScalarField3
This data class represents a user-defined 3D scalar field based on an arithmetic expression. It provides
a port Expression by which an arithmetic expression depending on Cartesian coordinates x, y, z can
be entered that defines the value for each point in space. The range of values with respect to the unit
cube (default) domain is indicated as Component Range. A data object of type AnnaSccalarField3
has three additional input ports that can be connected to other data objects representing 3D fields,
e.g., to image data objects. The predefined variables a, b and c are available for referencing such
connected data objects in the arithmetic expression, this way a scalar field depending on other fields
can be defined. Whenever an expression evaluation is triggered to compute the value for a point (x,y,z),
the variables a, b and/or c will be be substituted by the corresponding input values at the same point
(x,y,z). For instance the value at a single point may be obtained by attaching a PointProbe module
to the AnnaScalarField3 data object and entering the points coordinates by the Coord port of that
module.
If inputs contain undefined values, each of them will be used during the expression evaluation. If an
undefined value is found, 0 will be used during this evaluation instead of the real undefined value.
Therefore, the undefined value isnt propagated to the result.
An expression consists of variables and mathematical and logical operators, the syntax is basically the
same as for C expressions. The following variables are always defined:
x: the x-coordinate of the current point
y: the y-coordinate of the current point
z: the z-coordinate of the current point
If data objects Field A, Field B or Field C are connected to port InputA, InputB and InputC respectively,
Connections
InputA [optional]
Optional scalar field.
InputB [optional]
Optional second scalar field.
Ports
Shared colormap
In case a colormap is connected to the scalar field, this colormap will be shown here. If no colormap
is connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
Expr
Input field for arithmetic expression defining the scalar field values.
Domain
This port is only visible if other fields are connected as input a, b or c. These input fields might not
be defined everywhere. If set to unrestricted the field can be evaluated everywhere, a value of 0 is
used for the input fields of a, b or c if evaluated outside their domain. If set to dependent field, the
field is only evaluated inside all domains of the dependent fields a,b and c.
678
26.2
AnnaVectorField3
This data class represents a user-defined 3D vector field based on an arithmetic expression. It provides
ports X, Y, Z by which arithmetic expressions can be entered that define the component mappings with
respect to Cartesian coordinates x, y, and z. The (default) domain is the unit cube, thus for each point
(x,y,z) in it, the associated vector (X,Y,Z) is given by scalar functions X(x,y,z), Y(x,y,z), and Z(x,y,z)
which can be specified by the user in the same way as a function for a HxAnnaScalarField3 data object.
The range of vector magnitudes, defined as Euclidean vectors lengths, is indicated as Magnitude.
A data object of type HxAnnaVectorField2 has three additional input ports named InputA, InputB,
InputC that can be connected to other data objects representing scalar or vector fields. There are some
predefined variables for referencing such connected data objects in the arithmetic expressions, namely
a, b, c for scalar fields and ax, ay, az, bx, by, bz, cx, cy, cz for x-, y-, and z-components respectively
of vector fields. This way a vector field depending on other scalar and/or vector fields can be defined.
Whenever an evaluation of the three expressions is triggered to compute the vector associated to a point
(x,y,z), each of the variables mentioned that occurs in them will be substituted by the corresponding
input values at the same point (x,y,z). For instance the component values of a vector associated to
a single point may be obtained by attaching a PointProbe module to the HxVectorField3 data object,
entering the points coordinates by the Coord port of that module and setting the Vector toggle to all.
If inputs contain undefined values, each of them will be used during the expression evaluation. If an
undefined value is found, 0 will be used during this evaluation instead of the real undefined value.
Therefore, the undefined value isnt propagated to the result.
An expression consists of variables and mathematical and logical operators, the syntax is basically the
same as for C expressions. The following variables are always defined:
x - the x-coordinate of the current point
y - the y-coordinate of the current point
z - the z-coordinate of the current point
If a scalar data object is connected to any of the ports InputA, InputB, InputC a corresponding variable
for access to the data values is also defined, namely:
a - the values of input object A
b - the values of input object B
c - the values of input object C
If a vector data object is connected to any of the ports InputA, InputB, InputC corresponding component
variables for access to the data values are also defined, namely:
ax, ay, az - the xyz vector components of input object A
bx, by, bz - the xyz vector components of input object B
cx, cy, cz - the xyz vector components of input object C
AnnaVectorField3
679
The same C style mathematical and logical operators as well as built-in functions that are available for
arithmetic expressions can be used here, see Arithmetic module description.
Connections
InputA [optional]
Optional scalar or vector field.
InputB [optional]
Optional second scalar or vector field.
InputC [optional]
Optional third scalar or vector field.
Ports
X
Input field for arithmetic expression defining the x-component field values.
Y
Input field for arithmetic expression defining the y-component field values.
Z
Input field for arithmetic expression defining the z-component field values.
Domain
This port is only visible if other fields are connected as input a, b or c. These input fields might not
be defined everywhere. If set to unrestricted the field can be evaluated everywhere, a value of 0 is
used for the input fields of a, b or c if evaluated outside their domain. If set to dependent field, the
field is only evaluated inside all domains of the dependent fields a,b and c.
26.3
B-Splines
Free-form curves that are defined by their polynomial degree and a sequence of control points. They
can be created or modified by the CurveEditor.
A curve is displayed by the module LineSetView.
680
26.4
CameraRotate
This object can be created from the main windows Create menu. It lets you rotate the cameras of all
viewers activated in the objects viewer mask. This is useful in order to create simple animations. The
animations can be stored in MPEG movie files by attaching a MovieMaker module to this object. More
complex camera animations can be created using the CameraPath object and its associated editor
Connections
Time [optional]
Optional connection to some other object providing a time source. This allows you to synchronize
multiple time-dependent objects.
Ports
Time
The current time value. Changing the time modifies the cameras in all viewers activated in the
objects viewer mask, i.e., with the orange viewer mask button being set.
Action
This port lets you specify the orientation of the camera rotation. Whenever the recompute button is
pressed or a new menu option is selected the camera path is recomputed, i.e., the center of rotation
and the radius are determined by analyzing the camera in the main viewer.
26.5
Cluster
Data objects of type Cluster are used to represent sets of 3D points with additional data variables
associated to them. For each point, at least the x-, y-, and z-coordinates as well as an additional id are
stored. The id is an arbitrary number which can be used to identify corresponding points in different
data sets. Note that the id is to be distinguished from the index of each vertex which refers to the
internal consecutive numbering of the vertices.
For each point an arbitrary number of additional data columns may be defined. The elements of a data
column may be stored as 32-bit floats, as 32-bit integers, or as 8-bit characters. Each data column also
has a string specifying its name. Data columns are consecutively numbered starting with 0. Optionally,
a symbol may be defined, which is used to denote the column in an arithmetic filter expression as
provided by the modules ClusterView and ClusterDiff.
Finally, for each data point one or more text labels can be specified. As with data columns, label
columns have a name and are consecutively numbered starting with 0. Labels can be displayed using
ClusterStringLabels.
CameraRotate
681
Commands
computeBounds
Computes the bounding box of the cluster.
computeConnectivity
Computes connectivity information required to display bonds between neighboring points. Bond
detection does not take into account any chemical information. Instead, merely nearest neighbors
are computed. Each point may have at most 12 such neighbors. In addition the length of the longest
bond of a point may not be larger than 1.4 times the length of the shortest one.
addPoint <x> <y> <z>
Adds a new point to the cluster. The arguments are the three coordinates. The new point will be
assigned the id 0. The command returns the index of the new point.
removePoint <index>
Removes a point from the cluster. The index is passed as argument.
resetIds
Resets the ids of all points so that they are equal to the respective point indices.
setId <index> <id>
Sets the id of the point specified by index.
getId <index>
Returns the id of the point specified by index.
getIndex <id>
Returns a list of the indices of all points with the specified id. This method performs a linear search
over all points and thus is slow.
clear
Deletes all points and sets the number of data columns to zero.
setNumDataColumns <number of columns>
Set the number of data values that are stored for each point. The number of data columns is passed
as argument. If the number is less than the number of existing data columns, trailing columns are
removed. If the number is greater than the number of existing data columns, empty columns are
added.
getNumDataColumns
Returns the number of data columns, i.e., the number of data values per point.
setDataValue <column> <index> <value>
Sets the value of a point in a data column.
getDataValue <column> <index>
Returns the value of a point from a data column.
682
26.6
ColorField3
An RGBA color field is a regular 3D field with 4 data components per voxel. Each data component
is an 8-byte value. The first 3 components are interpreted as red, green, and blue color values. The
fourth component represents an opacity value (alpha). Color fields usually have uniform coordinates,
i.e., equal slice distances in all directions, but other coordinate types are possible as well.
Color fields can be visualized using the slicing modules OrthoSlice and ObliqueSlice. They are especially useful in combination with a Voltex module for direct volume rendering. Since the color field
stores an RGBA tuple for each voxel, no additional transfer function is required. This allows you for
example to visualize different data sets in a single volume rendered image at once. The conversion of
one or multiple scalar fields into a color field is accomplished using the ColorCombine module.
Commands
alphaAverage [min] [max]
Sets the alpha value of all voxels equal to the luminance 0.3*R + 0.59*G + 0.11*B, i.e., brighter
objects become more opaque. If min and max are specified the alpha values are scaled so that they
fill this range. By default min and max are 0 and 255, respectively.
ColorField3
683
alphaSet <alpha>
Sets the alpha value of all voxels to the specified value.
alphaThreshold <luminance>
Sets the alpha value of all voxels with a luminance smaller than the specified value to 0. The alpha
of all other voxels is set to 255. Luminance is computed as 0.3*R + 0.59*G + 0.11*B.
swapRGBA
Swaps ABGR tuples into RGBA tuples or vice versa.
26.7
Colormap
A Colormap is a sequence of RGBA-tuples, where every tuple specifies a color by a red, green and
blue value in the RGB color model. Each value ranges from 0.0 to 1.0 and is represented by a floating
point value. A fourth value, the so-called alpha value, defines opacity. It also ranges from 0.0 to 1.0,
where 0.0 means that the color is fully transparent, and 1.0 that the color is fully opaque. A colormap
usually stores 256 different RGBA-tuples, but other sizes and even procedurally defined colormaps are
possible too.
Beside the raw RGBA values, the colormap also stores two coordinates defining a range used for color
interpolation. Color lookup requests for an argument smaller than the minimum coordinate evaluate to
the first colormap entry. Requests for an argument greater than the maximum coordinate evaluate to
the last entry.
Connections
Datafield
Connection to a data field from which the min-max values of the colormap are taken.
Ports
Colormap
This port displays the contents of the colormap. Transparent values are drawn over a checkerboard
background. The coordinate range can be edited via the two text fields left and right from the
graphics area.
Min-Max
This port is only visible if an input is connected to port Datafield. If this is the case and data minmax is selected, the coordinate range of the colormap is automatically adjusted so that it matches
684
the min max values of the connected data field. If grow range is selected, the coordinate range is
enlarged if the min max values of the connected data field fall outside the current range. The option
data window becomes active only if the connected data field contains a parameter DataWindow. If
the option is selected the coordinate range is set to the range specified by the DataWindow parameter
(see also section Parameters in chapter Program Description of the Avizo users guide).
Shift range
This slider allows you to shift the range assumed for a connected data field. Instead of the true min
max values, shifted values are used if the value is different from 0.
Scale range
This slider allows you to scale the range assumed for a connected data field. Instead of the true min
max values, scaled values are used if the value is different from 1. The scaling is applied relative to
the shifted center of the range. The shifted and scaled range will always be clamped to the original
range. The shift and scale ports are useful for investigating a subrange of a data set in detail.
Commands
Inherits all commands of Data.
setMinMax <min> <max>
Sets the coordinate range of the colormap.
minCoord
Returns the lower bound of the coordinate range.
maxCoord
Returns the upper bound of the coordinate range.
isTransparent
Checks whether the colormap contains transparent values or not.
getRGBA <u>
Returns the interpolated RGBA values for the parameter <u>, which is a value between 0.0 and 1.0.
The value 0.0 corresponds to the first colormap entry, while 1.0 corresponds to the last colormap
entry.
getRGB <u>
Similar to the above command, but returns only three values (RGB, not alpha).
makeSteps <numsteps>
Discretizes the colormap so that only numsteps different colors remain.
Colormap
685
setInterpolate {0|1}
Turns interpolation on or off. When interpolation is on, the colors of two neighboring colormap
entries are interpolated when a color is looked up. When interpolation is off, the color of the nearest
colormap entry is returned. This is useful if a colormap modified with the makeSteps command
is used.
getInterpolate
Checks whether interpolation is on or off.
makeRandom
Replaces all colors of the colormap by random values.
makeVolren <r> <g> <b> <power> <huewidth>
Replaces the colormap by something useful for volume rendering. The first three arguments specify
the base color of the colormap. power denotes an exponent used to compute an alpha curve. If
this is 1, the colormap goes linearly from fully opaque to fully transparent. <huewidth> indicates
the width of the color spectrum around the base color between 0 and 1.
interpol <map1> <map2> <u>
Replaces the colormap by the weighted average of two other colormaps <map1> and <map2>.
The interpolation parameter <u> should be chosen between 0 and 1.
26.8
Data
This is the base class of all Avizo data objects. Data objects are usually represented by green icons in
the Pool. In contrast to modules, data objects can be duplicated and saved to a file. They also provide
a hierachical list of parameters or attributes. This list can be edited using the parameter editor.
Commands
Inherits all commands of Object.
touch
Touches the data object, marking it as modified. When the network is fired modules connected to a
data object will only be invoked if the data object was modified.
duplicate
Duplicates the data object and returns the name of the duplicated object.
save [format] [filename]
Saves the data object. If no arguments are specified the command does the same as choosing Save
from the File menu, i.e., it saves the object under the same name as it was saved before. Otherwise,
a format and a file name must be specified. The format should be the name of a format as it
is displayed in the file dialogs file type menu, e.g., "Amiramesh ascii" or "HxSurface
686
binary". When an object is saved its name is replaced by a possibly modified version of the
filename. The command returns the actual name of the object after it has been saved.
parameters [options ...]
Provides access to the data objects parameter list. This command takes several different options
allowing you query and set parameters. A list of all folders containing parameters too can be
obtained using list. The name of each folder is used to access that folder. For example, to get a
list of all materials of a surface or of a label field, use parameters Materials list.
A parameter value can be set using setValue <name> <value>, and it can be returned using
getValue <name>. For example, to set the color of the material Exterior of a surface or of a
label field, use parameters Materials Exterior setValue Color <color>.
setDefaultFileFormat [format]
Sets the default file format for the data object. The default file format is used when the objects save
method is called without a format string, or when a data object needs to be stored in oder to create
a network script. The default file format will also be used to initialize the file format combo box of
the file dialog when choosing Save Data As... from the main menu. For most native Avizo data
objects the default file format is the AmiraMesh format. The format itself should be specified by
the format name (same name as shown in the file type combo box of the file dialog). If called with
a parameter the method returns the current default file format.
setEditor [editor]
Attaches the given editor to the data object. If called without arguments the currently attached editor
is detached. For example, the following command opens the parameter editor for the data object
lobus.am: lobus.am setEditor [create HxParameterEditor]
getEditor
Returns the name of the editor currently attached to the data object. If no editor is attached, an
empty string is returned.
26.9
Field3
This class is the base class for all 3D fields in Avizo, e.g., scalar fields, vector fields, or color fields
with uniform, stacked, or some other coordinates, or for fields defined on unstructured finite-element
grids. This class provides a transparent interface to evaluate the field at any position without needing
to know how the field is actually represented. This interface can be accessed via the Tcl command
eval described below. A field may have an arbitrary number of data variables which can be queried
using the Tcl command nDataVar. For example, a scalar field has one data variable, while a vector
field has three.
Commands
Inherits all commands of SpatialData.
Field3
687
nDataVar
Returns the number of data variables of the field.
eval <x> <y> <z>
Evaluates the field at the position <x> <y> <z>. On success the command returns as many
numbers as there are data variables. The command may fail because the specified position lies
outside of the grid the field is defined on. In this case the string domain error is returned.
primType
Returns the primitive data type of the field, i.e., the way how the values are represented internally.
A number with the following meaning is returned: 0 = bytes, 1 = 16-bit signed integers, 2 = 32-bit
signed integers, 3 = 32-bit floating point values, 4 = 64-bit floating point values, 7 = 16-bit unsigned
integers.
26.10
HexaGrid
A data object of type HexaGrid represents an unstructured finite-element grid composed of hexahedrons. The geometric information is stored in terms of vertices, edges, faces, and hexahedrons. Like a
LabelField with its uniform hexahedral grid structure a hexahedral grid also contains a dictionary of
different material types or regions. In addition to the material names the dictionary may contain colors
and other parameters related to material properties.
Commands
hasMaterial <name>
Returns true if the specified material is defined in the material section of the HexaGrid.
hasDuplicatedNodes
Returns the number of duplicated nodes, i.e., nodes with exact identical coordinates. Such nodes
may be used in order to represent discontinuous piecewise linear fields.
removeDuplicatedPoints
Removes all duplicated points from the grid. No field object must be connected to the grid.
add <othergrid>
Copies all vertices and hexahedrons from an other hexahedral grid into this one.
removeHexa <n>
Marks the hexahedral cell specified by <n> as obsolete.
cleanUp
Removes all obsolete hexahedrons from the grid.
fixOrientation
Fixes the orientation of all hexahedrons so that the enclosed volume is positive.
688
26.11
HexaScalarField3
This is a class of 3D scalar fields defined on hexahedral grids. See also its base class ScalarField3.
Ports
Shared colormap
In case a colormap is connected to the scalar field, this colormap will be shown here. If no colormap
is connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
26.12
IvData
This is a simple data object which encapsulates an Open Inventor scene graph. The scene graph
can be displayed in Avizo using the module IvDisplay. However, it cannot be edited or processed
further. Instead, Avizo provides a separate data type Surface for representing triangular surfaces with
connectivity information and with an optional patch structure. An Open Inventor scene graph can be
converted into an Avizo surface object using the module IvToSurface.
26.13
LandmarkSet
This data type represents specific points or markers in 3D space. It can be used to flag markers in MRI
images, or to specify pairs or n-tuples of corresponding points in multiple data sets.
An empty set of landmarks can be created by typing create HxLandmarkSet into the Avizo
console window, cf. section Console Window in chapter Program Description of the Avizo users
guide.
Individual landmarks can be interactively added, repositioned, or removed from a landmark set by
means of the landmark editor.
Commands
setNumSets <n>
Sets the number of point sets contained in this data object. Upon creation a landmark set contains
one set of points. In order to represent pairs of corresponding points two sets are required.
getNumSets
Returns the number of point sets in this data object.
HexaScalarField3
689
690
26.14
LargeDiskData
A LargeDiskData object is useful for working with large image data. It allows you to extract subvolumes loaded as a normal field object. In this way Avizo can manage data that is larger than main
memory. Note that only uniform coordinates are supported.
A selection of file formats can be loaded as LargeDiskData: (AmiraMesh, Raw Data, Stacked-Slices,
and LargeDiskData).
To access the data, you must attach an Access module. It provides an interface to load a subblock into
Avizo. You can use all the Avizo visualization techniques on this subblock.
Like every other Avizo data object, a LargeDiskData object has parameters associated with it. In contrast to most other data types, the LargeDiskData cannot be saved directly. But some of the mentioned
file formats allow you to save the actual parameters to the file defining the LargeDiskData. This is
done by pressing the save parameters button. It is only visible if you have write access to the file.
The Save As menu entry allows export of the data into a common image file format or as raw data. It
does not save parameters. This might seem strange at a first glance, but in contrast to all other data
formats, the LargeDiskData values are not in main memory. The actual data resides only on disk and
cannot be saved to another place by Avizo.
Ports
Action
26.15
Lattice3
This class represents regular 3D data arrays. Every node of a regular data array can be addressed by
an index tuple (i,j,k). The data array is characterized by its dimensions (the number of nodes in each
direction), the primitive data type (e.g., bytes or shorts), the number of data variables per node, and by
its coordinates, compare section Coordinates and Grids in chapter Program Description of the Avizo
users guide. In Avizo uniform, stacked, rectilinear, and curvilinear coordinates are supported. Lattice3
is a simple but powerful data type. In particular, all 2D and 3D images in Avizo are represented by this
type.
As a technical detail it should be mentioned that in contrast to other data types Lattice3 is not a data
class by itself, i.e., it is not derived from Data or Object. Instead it is a so-called interface class which
is used by other classes such as RegScalarField3, RegVectorField3, or RegColorField3. Usually this
fact will not be important for end-users, but only for Avizo XPand Pack users.
LargeDiskData
691
Commands
Data objects using this class inherit all commands of Field3.
getDims
Returns three numbers indicating the number of nodes in each direction of the 3D array.
coordType
Returns a number indicating the coordinate type of the lattice, 1 = uniform, 2 = stacked, 3 = rectilinear, 7 = curvilinear.
getValue <i> <j> <k>
Evaluates the field at the index position <i> <j> <k>. As many numbers are returned as there
are data variables in the lattice.
setValue <i> <j> <k> <value1> [<value2> ...]
Sets the field values at the index position <i> <j> <k>. The number of values specified by this
command must match the number of data variables of the field.
swapByteOrder
Swaps the byte order of the lattices data values from little endian to big endian or vice versa.
clearSlice <k>
Sets all values of slice <k> to zero.
exchangeSlices <k1> <k2>
Swaps the contents of the slices <k1> and <k2>.
crop <imin> <imax> <jmin> <jmax> <kmin> <kmax> [<value>]
Crops the lattice. The first six arguments specify the index bounds of the subvolume to be cropped.
It is possible to enlarge the data set by specifying negative lower bounds or upper bounds exceeding
the current size of the lattice. In this case the last slice is replicated unless <value> is specified.
If this is the case the new slices are initialized with <value>.
flip {0|1|2}
Flips the lattice in i-, j-, or k-direction, depending on whether the argument was 0, 1, or 2.
swapDims <iIdx> <jIdx> <kIdx>
Performs a kind of rotation about 90 degrees. The arguments tell at which position an index was
before, i.e., they must be a permutation of 0, 1, 2. For example, to convert ijk into jki you have to
use the arguments 1 2 0.
setBoundingBox <xmin> <xmax> <ymin> <ymax> <zmin> <zmax>
Sets the bounding box of the lattice. The bounding box encloses the centers of all voxels of the
lattice (not the complete voxels). In case of stacked, rectilinear, and curvilinear coordinates the
coordinates of inner points are scaled appropriately.
692
26.16
Light
Light objects are used to define additional lights in the Avizo viewer windows. Actually light objects
are neither modules nor standard data objects. Nevertheless, they are displayed in the Pool. Like
modules they provide some ports allowing the user to adjust the objects properties. In particular, three
different light types are supported, namely directional lights, point lights, and spot lights. Lights can be
define d in scene coordinates or in camera coordinates (camera slave mode). In order to interactively
change the light parameters appropriate Open Inventor draggers can be activated.
Note that the Avizo viewers define separate headlights by default. Light objects represent additional
light sources and are not related to the viewers head light. New lights can be interactively created
using the View Lights menu of the Avizo main window. This menu also allows to activate new light
settings consisting of multiple lights. A light setting is stored as an Avizo script in the subdirectory
share/lights in the Avizo installation directory. New settings can be added dynamically by copying new scripts into this directory.
Ports
Type
This radio box determines the light type. Three different types are supported:
A directional light emits parallel light. It is faster to compute than the other lights. Another advantage is that it has no particular location (although the dragger used to edit the light is located
somewhere). Therefore light settings consisting of directional lights only can be easily applied to
new scenes, regardless of the actual size or position of the objects in that scene.
The second type is a point light. A point light is specified by its location only. It emits light
symmetrically in all directions.
The third type is a spot light, which has a position like a point light, but which also defines cone
restricting the shape of the light being emitted.
Light
693
Options
First, this port provides a color button indicating the color of the light. Pressing the button pops up
the color dialog and lets you change the lights color.
The next toggle called camera slave specifies, whether the light remains fixed relative to the camera.
If not, the lights position and direction are fixed with respect to other objects in the scene.
Finally, the last toggle called show dragger allows you to activate an Open Inventor dragger which
can be used to move the light or to modify its direction.
Direction
Shows the direction of the emitted light. The values represent the direction in world or camera
coordinates depending on the camera slave setting. The port is not available for point lights.
Location
Shows the location of the light source. The values represent the location in world or camera coordinates depending on the camera slave setting. The port is not available for directional lights.
Spot
Here the two additional parameters for spot lights are specified:
The cut off angle determines the spread of the cone of the emitted light, measured from one edge of
the cone to another.
The drop off rate controls how concentrated the light is. The lights intensity is highest in the center
of the cone. Its attenuated toward the edges of the cone. A value of 0 produces very sharp edges,
A value of 1 produces very soft edges.
Commands
Inherits all commands of Object.
getColor
Returns the color of the light as an RGB tuple of floating point number.
setColor <color>
Sets the color of the light. The color can be specified either as a tuple of three RGB integer values
in the range 0...255, or as a tuple of three RGB floating point values in the range 0...1, or as a text
string.
694
getIntensity
Returns the intensity of the light.
setIntensity <value>
Sets the intensity of the light. The intensity modulates the lights color. Instead of modifying the
lights intensity the brightness of the lights color could be changed as well.
getDirection
Returns the direction of the light (undefined for a point light).
setDirection <x> <y> <z>
Sets the direction of the light. Has no effect for a point light.
getLocation
Returns the location of the light. For a directional light the location of the associated light dragger
is returned.
setLocation <x> <y> <z>
Sets the location of the light. For a directional light the location of the associated light dragger is
set.
26.17
LineSet
A LineSet data object is able to store independent line segments of variable length. Optionally, for
each vertex one or more scalar data items can be stored. LineSet objects inherit the vertex set interface,
cf. section Vertex Set in chapter Program Description of the Avizo users guide. In order to visualize
the line segments of a LineSet object the module LineSetView can be used. LineSets sets can be stored
using the AmiraMesh file format.
Commands
Inherits all commands of VertexSet. In particular, the methods getNumPoints, getPoint, and
setPoint are inherited.
setNumPoints <num>
Sets the number of points of the line set. The coordinates of new points need to be initialized
afterwards using setPoint. Care must be taken that only existing points are referenced, i.e., that
no point index is bigger than n-1.
addPoint <x> <y> <z>
Adds a new point to the line sets vertex array. The new point will not yet be referenced by any line
segment. The method returns the index of the new point.
getNumDataValues
Returns the number of data values per point.
LineSet
695
setNumDataValues <num>
Sets the number of data values per vertex. New data values need to be initialized afterwards using
setData.
getNumLines
Returns the number of lines.
getLineLength <line>
Returns the number of points of the specified line.
getLineVertex <line> <point>
Returns the index of point <point> of line <line>.
getData <line> <point> [<set>]
Returns the data value in set <set> of point <point> of line <line>. If <set> is omitted the
first data value at that point is returned.
setData <line> <point> <value> [<set>]
Sets the data value in set <set> of point <point> of line <line>. If <set> is omitted
the first data set is used. Before using this method the number of data sets has to be set using
setNumDataValues.
addLine <p1> [<p2> [<p3> ...]]
Adds a new line consisting of the points <p1>, <p2>, <p3> ... to the line set. The index of the
new line is returned.
deleteLine <line>
Deletes the specified line without changing the number of points of the line set.
deleteAllLines
Deletes all lines of the line set.
removeDuplicatePoints [<tolerance>]
Removes duplicate points in a line set. If tolerance is not specified, only exact matches are considered. Data values are taken from the last occurance of a duplicate vertex.
removeLineVertex <line> <point>
Delete point <point> of line <line>. The method does not remove the point from the global
vertex array even if the point is not referenced by any other line.
addLineVertex <line> <point> [<pos>]
Adds an additional vertex to line <line>. The second argument <point> is the index of the
referenced point. <pos> specifies the position of the new vertex within the line. If this argument is
omitted the new vertex will be appended after all other vertices of the line.
smooth <factor>
Smoothes the lines by replacing the coordinates of each vertex by the weighted average of its neighboring vertices. The bigger <scale> the more are the vertices smoothed.
696
getRange
Returns the min and the max of all data values of the line set.
26.18
Movie
This data module stores a movie description. The general concept of Avizo movies is described in the
manual section of the MoviePlayer module.
Connections
Master
If this port is connected to a MoviePlayer modules result port, this movie can be used as destination
movie during a movie conversion process.
Ports
Number of streams
Select the requested number of streams. After this, the appropriate number of the following file
name fields will appear.
Stream1
Source specification of the image sequence for stream one. This may be an Avizo movie data file (
.amovstream ), a single image file or a sequence of images specified by a wildcard expression. For
example specify c:/mymovie/left*.jpg to get all JPEG-images from directory c:/mymovie starting
with left in the filename. Possible wildcards are * and ?. * matches a sequence of arbitrary
characters. ? matches a single character. If specifying an Avizo movie data file (which is an Avizospecific file containing a series of images) wildcards are not permitted. For experts: to specify a
whole list of wildcard patterns or single image files edit the Avizo movie info file ( .amov ).
Stream2
Movie
697
Stream4
Select here how the MoviePlayer module has to interpret and render the final image sequence.
mono - every image forms a single frame.
stereo - two images form a stereo frame.
stereo(interlaced) - every image forms a stereo frame. The left eye channel is stored in the
even lines and the right in the odd lines. Internally the module resorts the lines to get an
image of the type stereo(up/down) .
stereo(up/down) - every image forms a stereo frame. The left eye channel is taken from the
upper half of the image and the right from the lower one.
stereo(left/right) - every image forms a stereo frame. The left eye channel is taken from the
left half of the image and the right from the right one.
Render method
This option affects the playback behavior. If set to GLdraw, the images are copied directly to the
OpenGL frame buffer by using the function glDrawPixels(). If set to texture, the images are first
transferred into an OpenGL texture object and then rendered as polygons textured with this texture.
If an image was compressed using the OpenGL texture compression feature by a preceding movie
conversion process, this image gets rendered as textured polygon independently of how this port is
set. Be warned, that OpenGL texture compression is not available for all systems. SGI for example
seems to implement it less often in its OpenGL. On PC systems OpenGL texture compression
seems to be a standard, due to the limited bandwidth and memory storage. Which render method
performs better depends on the individual hardware and software conditions.
Aspect ratio
Force the the aspect ratio of the rendered images to a fixed value. If set to 0 the aspect ratio is taken
from the individual image resolutions.
Swap stereo
698
Flip
Limit the playback speed to a maximal value of frames per second. Set this value also if the movie
playback looks jerky, that gives the content retrieval more time between the single frames. A value
of 0 disables this feature.
Max threads
On multiprocessor systems, the image retrieval and decompression is performed by default with as
many threads as processors are available. That gives much speed but can hamper other users or
tasks on this machine. Set this option to a value greater than 0 (which is to disable limitations)
to change the number of retrieval threads. Set this to 1 if the movie includes images read by non
thread-safe readers.
26.19
MultiChannelField3
Multi-channel objects are used to group multiple gray level images of the same size. Display modules
such as OrthoSlice, ProjectionView, or Voltex then can be directly connected to the multi-channel
object, thus allowing all channels to be operated on simultaneously.
Multi-channel objects are created automatically when reading microscopic image files containing
multi-channel information, e.g., Zeiss TIF files or Leica image files. Alternatively, channels can be
manually attached to a multi-channel object.
For each scalar field attached to a multi-channel object a special-purpose port is shown, allowing you to
define the channels data window as well as its preferred color. The data window is usually interpreted
in such a way that the lower data value is mapped to black while the upper is mapped to the channels
preferred color.
Connections
Channel 1 [required] Used to attach the first scalar field to the multi-channel object. This
input determines the dimensions and the data type of the multi-channel object.
Channel 2 [optional] Used to attach a second scalar field to the multi-channel object. The
second input must have the same dimensions and the same data type as the first one. After a second
input has been connected, a new input called Channel 3 will be created, and so on. In this way an
arbitrary number of channels can be connected.
MultiChannelField3
699
Ports
Channel 1
Determines the preferred data window of a channel as well as its colormap. For constant colormap,
if the lower bound of the data window is set to 100, voxels with values less than or equal to 100 will
be drawn in black by the slicing modules OrthoSlice and ObliqueSlice.
Channel 2
26.20
Object
All Avizo objects represented by icons in the Pool are derived from this base class. The class provides
some basic Tcl commands allowing to select or deselect on object, or to show or hide its icons. The
class is not of interest for end users, but only for script programmers and developers.
Commands
hasInterface <typename>
Checks if the object provides an interface matching the specified type. For more information about
interfaces please refer to the Avizo Programmers Guide.
showIcon
Makes the objects icon visible.
hideIcon
Hides the objects icon. Although the object is no longer displayed the object itself is still contained
in the Pool.
iconVisible
Checks if the objects icon is visible or not.
select
Selects the object, so that the ports are shown in the Properties Area.
deselect
Deselects the object, hiding the ports in the Properties Area.
setLabel <name>
Renames the object. If another object with the same name already exists, the specified name is
modified so that it becomes unique. In any case, the new name of the object is returned.
700
fire
Updates the object and all downstream objects.
compute
Updates the object by calling its update and compute methods. In contrast to fire downstream
objects are not updated.
allPorts
Returns a list of all ports of an object.
connectionPorts
Returns a list of all connection ports of an object.
downStreamConnections
Returns a list of all objects connected to this object. For each object also the name of the corresponding connection port is reported. That is, each element of the returned list in turn is a list
containing the the name of the connected object and the name of the connection port.
setIconPosition <x> <y>
Sets the position of the objects icon in the Pool.
getIconPosition
Returns the position of the objects icon in the Pool.
clipGeom <PlaneModule>
Causes all geometry display of the object to be clipped by the plane defined by <PlaneModule>.
For example, a plane module is any module derived from Arbitrary Cut. The geometry of an object
might be clipped by up to six clipping planes. Also see unclipGeom below.
unclipGeom <PlaneModule>
Undo the effect of the clipGeom command described above.
destroy
The object is removed, as well as certain dependent objects.
getTypeId
Returns the type name of the object.
help
Displays all commands specific to that object.
setLabel <name>
Changes the name of the object to <name>. If already some other object with the same name exists,
<name> will be automatically modified.
setViewerMask <mask>
This command is used to show a possible 3D output of the object in certain viewer windows and to
Object
701
hide it in other viewers. The bits in <mask> controls the viewers, e.g., a mask value of 2 shows the
output in viewer 1 and hides it in viewer 0.
26.21
RawAsExternalData
This file format allows to load subvolumes out of one large raw data block on disk. Use the File
Dialogs Popup Menu to force the file format to Raw Data as LargeDiskData. The format of the
file and the parameters you have to provide are described in Raw Data. The file will be loaded as a
LargeDiskData object.
26.22
RegScalarField3
This is a class of 3D scalar fields defined on regular lattices. See also Lattice3 and its base class
ScalarField3.
Ports
Shared colormap
In case a colormap is connected to the scalar field, this colormap will be shown here. If no colormap
is connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
26.23
ScalarField3
This class is the base class for all 3D scalar fields in Avizo. See also its base class Field3.
Ports
Shared colormap
Every 3D scalar field has a Shared Colormap port. In case a colormap is connected to the scalar
field, this colormap is shown in the port. If no colormap is connected, only the Edit menu is visible.
To connect, disconnect or change the colormap, use the Edit menu or, equivalently, the popup menu
under the right mouse button. See also Colormap and PortSharedColormap.
702
26.24
ScriptObject
Note: If you have worked with script objects prior to Avizo version 3.0, please read the compatibility
notes at the end of this file.
Avizo is fully scriptable via its built-in Tcl interface (see the Scripting chapter in the Avizo users
guide). The ScriptObject module allows the user or a custom solution provider to create scripts that fit
seamlessly into the Avizo user interface, and define their own user interface components.
A script object is an object showing up in the Pool similar to an OrthoSlice or an Axis module. It can
have ports, like sliders or buttons. The ports are defined by Tcl code and the reaction to a change of
the ports is also implemented in Tcl. The Tcl code consists of a portion for initialization and a Tcl
procedure that is called whenever the script has to react to changes of input parameters, the compute
procedure.
Any Avizo script can be turned into a script object by putting a special header line into the script. Write
an Avizo script (using your favorite text editor) and put a special header for script objects in the first
line:
# Amira-Script-Object V3.0
echo "Hello world, a script is called."
Load this file into Avizo. A blue icon appears. Each time you click on the Restart button, the script
will be read and executed and the above message appears in the console window.
During the execution of a script object, the global variable $this always contains the name of the
currently active script object. This allows to easily access object-specific commands, the so-called
methods. Declaring a method is very similar to declaring an ordinary Tcl procedure:
$this proc name args body
Just like the Tcl command proc, you can declare a method by using $this proc. Methods can be
executed by calling $this name args. The syntax is completely analogous to global Tcl procedures (see section Introduction to Tcl in the Scripting chapter of the Avizo users guide). The special
point about a method is that inside the method the $this variable is set appropriately. Example:
# Amira-Script-Object V3.0
$this proc sayHello {} {
echo "module $this is greeting you"
}
If you load this script object, nothing will happen visibly. However, if your script object is called
MyScript.scro, you can type
MyScript.scro sayHello
ScriptObject
703
in the Avizo console window, and you will get a personalized greeting line as the result.
There are several methods with a special meaning:
$this proc constructor {} {...} defines a method that is called when the script
object is created. This is used for creating user interface elements and initializing the object.
$this proc destructor {} {...} defines a method that is executed when the object
is deleted or restarted. Used for cleaning up or terminating communications.
$this proc compute {} {...} defines a method that is called whenever a user interface component of the script object is changed by the user. See examples below.
Here is an example that uses the constructor and compute methods in order to define a simple
user interface and to query the current state of that user interface:
# Amira-Script-Object V3.0
$this proc constructor {} {
$this newPortIntSlider myValue
$this myValue setLabel "Value:"
}
$this proc compute {} {
set val [$this myValue getValue]
echo "The value is $val"
}
In the example, the constructor creates a new port, an integer slider which will appear in the user
interface. The port has the internal name myValue and its visible label is set to Value. Whenever the
user modifies the value of the slider, the compute method is called, and outputs the current port value.
In addition to defining methods, a script object also allows to define member variables. Analogous to
Tcl variables, a member variable is a placeholder for a certain value, but a member is local to each
script object. If you have two script objects A and B, both can have a member variable x, and the
values of these two variables is kept separately. In order to define and query member variables, use the
commands $this setVar and $this getVar (see below).
You can save Avizo networks containing script objects. When loading the saved network into Avizo,
the following things will happen:
704
Connections
Data [optional]
Can be connected to any data object. Can be used by the script.
Ports
Script
This port is available for any script object. The Restart button deletes all dynamically created ports,
sets the isFirstCall flag to 1 and calls the script. The text field indicates the location of the
script file.
Commands
newPortButtonList <name> <number-of-buttons>
Creates a new button list port.
newPortButtonMenu <name> <number-of-buttons> <number-of-options>
Creates a new button menu port.
newPortColormap <name>
Creates a new colormap port.
newPortDoIt <name>
Creates a new DoIt port.
Note: Starting with Amira 4.0, a green Apply button is displayed by default, rather than the usual
DoIt port. See the DoIt port documentation for further details.
newPortFilename <name>
Creates a new filename port.
newPortFloatSlider <name>
Creates a new float slider port.
newPortFloatTextN <name> <number-of-fields>
Creates a new float text port.
newPortMultiMenu <name> <num-options-1> [<num-options-2>
[<num-options-3>]
Creates a new multi menu port.
ScriptObject
705
newPortInfo <name>
Creates a new info port.
newPortIntSlider <name>
Creates a new integer slider port.
newPortIntTextN <name> <number-of-fields>
Creates a new integer text port.
newPortRadioBox <name> <number-of-toggles>
Creates a new radio box port.
newPortSeparator <name>
Creates a new separator port.
newPortText <name>
Creates a new text port.
newPortTime <name>
Creates a new time port.
newPortToggleList <name> <number-of-toggles>
Creates a new toggle list port.
newPortConnection <name> <type-name>
Creates a new connection port. The type name specifies what type of objects can be connected to
the port. The type name of an existing object can be obtained using the Tcl command getTypeId.
deletePort <name-of-port>
Deletes a port which has been created using one of the newPort commands.
proc name args body
Define a Tcl member procedure (see above). The syntax is analogous to the global Tcl proc command. This command is not specific to the ScriptObject, but it is available in all Avizo objects.
setVar <variable> <value>
Variables stored in this way keep their values between successive calls of the compute procedure.
Ordinary Tcl variables get lost. This command is not specific to the ScriptObject, but it is available
in all Avizo objects.
getVar <variable>
Returns the value of a variable set using setVar. This command is not specific to the ScriptObject,
but it is available in all Avizo objects.
testBreak
This commands checks if the stop button has been pressed. If so the execution of the script is
automatically terminated. Use this command inside long animation loops or similar constructs.
706
In addition to the script object extensions, each script objects inherits a number of methods from the
general Avizo object type.
Compatibility Note: The semantics of script objects has slightly changed with Amira 3.0 compared to
older Amira versions. If the first line of the script contains the line # Amira-Script-Object V0.1, the
old behavior is enforced.
26.25
SpatialData
In Avizo all data objects embedded in 3D space are derived from this class. Every spatial data object
provides a 3D bounding box as well as an optional transformation matrix. The transformation matrix
allows the user to translate, rotate, or scale the object and the geometry of any display modules attached to it. Transformations can be defined interactively using the Transform Editor, animated using
a TransformAnimation module, or modified from a script using the Tcl commands described below.
Commands
Inherits all commands of Data.
getBoundingBox
Returns the bounding box of the data object. The bounding box consists of 6 values denoting the
xmin, xmax, ymin, ymax, zmin, and zmax coordinates in that order. For data objects defined by a
set of discrete points like point clusters, surfaces, tetrahedral or hexahedral grids, the bounding box
is the smallest box containing all points. For 3D images it is the smallest box containing all voxel
centers, but not all voxels as is.
getTransform [-d]
Returns the transformation matrix of the data object. The transformation matrix is a 4x4 matrix
which can be applied to a 3D vector in homogeneous coordinates. It encodes a translation, rotation, and scaling operation. If the -d option is specified, the transformation matrix is returned in
decomposed form, i.e., the translation, rotation, and scaling operations are separated.
setTransform [<a11> <a12> ... <a44>]
Sets the transformation matrix of the data object. If no arguments are given the transformation is
reset to the identity matrix.
getInverseTransform
Returns the inverse transformation of the data object as a 4x4 matrix.
getTranslation
Returns the translation part of the decomposed transformation matrix of the object.
setTranslation [<x> <y> <z>]
Sets the translation part of the decomposed transformation matrix of the object. If no arguments are
given the translation part is reset to zero.
SpatialData
707
getRotation
Returns the rotation part of the decomposed transformation matrix of the object. Four numbers are
returned. The first three numbers denote the axis of rotation. The fourth number denotes the angle
of rotation in degrees (0...360).
setRotation [-center <x> <y> <z>] <x> <y> <z> <degrees>
Sets the rotation part part of the decomposed transformation matrix of the object. The rotation is
specified by a rotation axis and an angle of rotation. The optional argument center can be used
to specify the center of rotation.
getScaleFactor
Returns the scaling part of the decomposed transformation matrix of the object. Three numbers are
returned, denoting the scaling in x-, y-, and z-direction.
setScaleFactor [<x> <y> <z>]
Sets the scaling part of the decomposed transformation matrix of the object. If no arguments are
given the scaling part is reset to unity.
translate [-l|-w] <x> <y> <z>
Translates the object by modifying its transformation matrix. The optional argument -l indicates
that the translation is applied in local coordinates (after the existing transformation). This is the
default. The optional argument -w indicates that the translation is applied in world coordinates
(before the existing transformation).
rotate [-lx|ly|-lz|-wx|-wy|-wz| [-l|-w] <x> <y> <z>] <degrees>
Rotates the object by modifying its transformation matrix. The object can be rotated around the
local x-, y-, or z-axis or around the world x-, y-, or z-axis (as indicated by the arguments -lx to
-wza). Alternatively, the object can be rotated around a user-specified axis in either local or world
coordinates. degrees specifies the angle of rotation in degrees (0...360).
scale [-l|-w] <x> <y> <z>
Scales the object by modifying its transformation matrix. The optional argument -l indicates that
the scaling is applied in local coordinates (after the existing transformation). This is the default. The
optional argument -w indicates that the scaling is applied in world coordinates (before the existing
transformation).
multTransform [-l|-r] <a11> <a12> ... <a44>
Multiplies the current transformation matrix with the specified matrix. The arguments -l and -r
indicate whether the matrix should be multiplied from left or from right. Multiplication from left
means that the matrix is applied to the objects local coordinates.
hasUndefinedValue
Indicates if an undefined has been set or not.
getUndefinedValue
Return the undefined value. If hasUndefinedValue returns 0, the result of this command is undefined.
708
setUndefinedValue <undefinedValue>
Set the undefined value. This method should be called immediately after having read associated
data. Normally, the reader should do this job.
hasDataWindow
Indicates if a data window has been set or not.
setDataWindow <min> <max>
Set the data window.
removeDataWindow
Remove the data window.
getRange [-d|-w]
This method is provided here for convenience because many spatial data objects (although not
all) contain data values for which min/max values can be computed. If such data is available the
minimum and maximum data component is computed. For fields with more than one data variable,
for example vector fields, this is not the magnitude range of the field. Details of the behavior might
depend the specialization of this module and would be noted there.
If the spatial data object didnt contain any data, result values are 1 0 (The minimum value will be
greater than the maximum).
The optional argument -d indicates that the returned values do not include the undefined value.
The optional argument -w indicates that the returned values correspond to the data window. If no
data window is found, the returned values correspond to the raw data range.
touchMinMax
This method is provided here for convenience because many spatial data objects (although not all)
contain data values for which min/max values can be computed. Invalidates cached min and max
values.
26.26
SpatialGraph
A SpatialGraph data object is able to store data organized in three dimensional networks. Points,
Nodes, and Segments are the three basic structural components used in this module. A Point is uniquely
identified by spatial coordinates. A Segment is an independent line segment of variable length included
between two Points. A Node is a specific branching or ending Point. A set of Segments connected by
Nodes will be termed a Graph, and a SpatialGraph data object can store several Graphs. For each
Segment, Node, and Point one or more scalar data items can be stored, while labels can be associated
only with Nodes and Segments. Labels can be also grouped in Label Groups, so that a set of several
labels can be used to tag structures that are conceptually connected. In order to visualize the network
of a SpatialGraph object the module SpatialGraphView can be used. SpatialGraph sets can be stored
using the AmiraMesh file format.
SpatialGraph
709
Commands
merge <spatialgraph2>
Merges spatialgraph2 into the spatial graph.
26.27
SpreadSheet
This data type represents a spreadsheet. A spreadsheet will be created e.g., by the module MaterialStatistics.
26.28
StackedLabelField3
Data objects of type LabelField are used to represent the result of a segmentation applied to a 3D image
volume.
A LabelField is a regular cubic grid with the same dimensions as the underlying image volume. For
each voxel it contains a label indicating the region that the voxel belongs to. Use module LabelVoxel
to create a LabelField from an image data stack. You can manually modify a LabelField using Avizos
image editor GI.
In addition to the labels themselves a LabelField may also contain weights indicating the degree of
confidence of the label assignment made for each voxel. Such weights are calculated automatically
when you choose option sub-voxel accuracy in LabelVoxel, when you apply the smoothing filter of GI,
or when you resample a LabelField to a smaller resolution using the Resample module.
You can visualize a LabelField by attaching an OrthoSlice module to it. If a LabelField contains
weights, the port Primary Array allows you to choose whether the labels or the probabilities are to be
displayed.
Connections
Master [unused]
ImageData [required]
Connection to the image data that the segmentation results refer to. You cannot connect this port
to an image object with dimensions different from that of the LabelField, except the LabelField
has been newly created via the Create menu. In this case, the LabelField will be resized so that it
matches the dimensions of the image object.
710
Ports
Shared colormap
In case a colormap is connected to the field, this colormap will be shown here. If no colormap is
connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
Primary Array
An option menu which only appears if the LabelField contains weights. In this case the menu lets
you select whether the labels or the weights are the primary data array.
Commands
hasMaterial <name>
Returns true if the specified material is defined in the material section of the LabelField.
makeColormap
Creates a new colormap object in Avizos Pool, containing the default colors of all materials of the
LabelField.
relabel
Computes new labels so that the materials are numbered in consecutive order starting from 0.
deleteAltData
Deletes the weight information if it is present.
26.29
StackedScalarField3
This is a class of 3D scalar fields consisting of parallel slices. See also its base class RegScalarField3.
Ports
Shared colormap
In case a colormap is connected to the scalar field, this colormap will be shown here. If no colormap
is connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
StackedScalarField3
711
26.30
Surface
In Avizo data objects of type Surface are used to represent non-manifold triangulated surfaces. Such
surfaces are required as an intermediate step in generating a tetrahedral patient model from the results
of segmentation of a 3D image stack.
Surfaces mainly consist of a list of triangles as well as a list of 3D coordinates. Each triangle is defined
by three indices pointing into the list of coordinates. Moreover, triangles are grouped into so-called
patches. Conceptually, a patch describes the boundary between two adjacent regions. These two
regions, called inner region and outer region, are represented by indices into the surfaces material
list. Although required for grid generation, the patch structure of a surface does not necessarily define
a valid space partitioning. However, any surface must have at least one patch.
Surfaces may also contain additional data, such as edges, boundary contours, or connectivity information. Because these data can be computed online they are usually not written into a file. If the data are
not already present but a certain module requests them, they are recomputed automatically. You may
notice a small time delay in this case. Recomputation of the connectivity information can be enforced
by the Tcl command recompute.
Surfaces may additionally contain level-of-detail information, which can be generated using the Simplification Editor. If such data is present, the surface receives a port Level of Detail, where the desired
level can be set.
You may use the SurfaceGen module to extract boundary surfaces from a LabelField describing the
results of s segmentation. You can visualize surfaces by attaching a SurfaceView module to it.
There are two editors that can be applied to modify surfaces: the Surface Simplification Editor and the
Surface Editor. Use the former once to reduce the number of triangles contained in the surfaces. The
latter allows you to perform an intersection test and to modify the surfaces manually.
Commands
recompute
Recomputes any additional data such as edges, boundary contours, or connectivity information from
scratch. If the surface contained patches consisting of unconnected groups of triangles these patches
are automatically subdivided into new patches consisting of connected triangles only.
fixOrientation [patch]
Checks if all triangles of a given patch are oriented in the same way. If this is not the case some
triangles will be inverted in order to fix the orientation. If no patch number is specified all patches
of the surface will be processed in this way.
invertOrientation
Inverts all triangles of the surface.
makeOnePatch
Puts all triangles of the surface into a single patch.
712
cleanup
Removes any additional data such as edges, boundary contours, or connectivity information from
the surface.
getArea <i>
Compute area of all surface patches incident on material i.
getVolume <i>
Compute volume of material i.
setColor <material> <color>
Defines the color of a material used in module SurfaceView. The material may be specified by
either a material name or by a material index. The color may be specified by either an RGB triple
in range 0...1 or by a common X11 color name, e.g., red or blue.
setTransparency <material> <t>
Defines the transparency of a material used in module SurfaceView when draw style is set to transparent. The material may be specified by either a material name or by a material index. The
transparency value t must by a floating point number in range 0...1.
add -point <x> <y> <z>
Adds a new point to the surface. The method returns the index of the new point.
add -triangle <p1> <p2> <p3>
Adds a new triangle to the surface and returns its index. The triangle will be inserted into the first
patch of the surface. If no patch exists already, one will be created.
merge <surface2>
Adds surface2 to the surface. A return value of 1 indicates success.
refine
Refines the surface by subdividing all edges. After this operation the surface will contain four times
the number of triangles.
refineSubdivideEdges <maxEdgeLength>
Refines the surface by subdividing the edges until all edges are shorter than maxEdgeLength.
This method works iteratively and takes always the largest edge. The new point that is added on the
edge will be connected to the triangle vertex opposite the divided edge.
26.31
This module represents one or more paths on a surface, consisting of one or more nodes connected by
line segments. The three types of nodes are:
Vertex nodes: can only lie on a vertex of the surface
713
Connections
Surface [required]
A path set must be connected to a Surface on which it is defined.
26.32
TetraGrid
A data object of type TetraGrid represents an unstructured finite-element grid composed of tetrahedra.
The geometric information is stored in terms of vertices, edges, faces, and tetrahedra. For instance such
data objects are useful as patient models. Like a LabelField with its uniform hexahedral grid structure
a tetrahedral grid also contains a dictionary of different material types or regions. In addition to the
material names the dictionary may contain colors and other parameters related to material properties.
Avizo is able to reconstruct tetrahedral grids from 3D image data. This procedure involves several
steps, including image segmentation, extraction of boundary faces, surface simplification, and finally
grid generation. The tutorial Creating a Tetrahedral Grid from a Triangular Surface in the First steps
in Avizo chapter of the Avizo users guide illustrated this process in more detail. The actual grid
generation step is performed by the computational module TetraGen. The quality of a tetrahedral grid
may be improved by applying certain operations provided by the Grid Editor.
Commands
hasMaterial <name>
Returns true if the specified material is defined in the material section of the TetraGrid.
hasDuplicatedNodes
Returns the number of duplicated nodes, i.e., nodes with exact identical coordinates. Such nodes
may be used in order to represent discontinuous piecewise linear fields.
removeDuplicatedPoints
Removes all duplicated points from the grid. No field object must be connected to the grid.
add <othergrid>
Copies all vertices and tetrahedra from an other tetrahedral grid into this one.
removeTetra <n>
Marks the tetrahedral cell specified by <n> as obsolete.
714
cleanUp
Removes all obsolete tetrahedra from the grid.
fixOrientation
Fixes the orientation of all tetrahedra so that the enclosed volume is positive.
26.33
TetraScalarField3
This is a class of 3D scalar fields defined on tetrahedral grids. See also its base class ScalarField3.
Ports
Shared colormap
In case a colormap is connected to the scalar field, this colormap will be shown here. If no colormap
is connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
26.34
Time
Modules such as Time Series Control or other data objects dealing with time-dependent data provide a
time port, i.e., a special slider which also can be animated. Multiple such modules can be synchronized
by connecting them to one global Time object. The time object provides the same functionality as the
time port in the modules themselves. In fact, the time value can be changed in both the time port or
in an upstream time object. A time object can be created by choosing Time from the main windows
Create menu. Alternatively, it can be created by choosing Create time from the popup menu of a time
port (press the right mouse button over a time slider in order to activate this menu).
Connections
Time [optional]
Connection to an upstream time object. Usually there will only be one instance of a time object and
this port will not be connected.
Ports
Time
TetraScalarField3
715
This slider specifies the current time value. Additional settings can be modified via a popup menu
which is activated by pressing the right mouse button over the slider. The inner buttons proceed one
step in backward or forward direction, respectively. The outer buttons activate animation mode. The
popup menu lets you choose between simple animation (play once) and two endless modes (loop
and swing). Animation is always restricted to a subrange of the whole time interval. The subrange
can be controlled graphically via the two upper arrow buttons. All settings can also be adjusted in a
configure dialog which can be activated via the popup menu, too.
26.35
UniformLabelField3
Data objects of type LabelField are used to represent the result of a segmentation applied to a 3D image
volume.
A LabelField is a regular cubic grid with the same dimensions as the underlying image volume. For
each voxel it contains a label indicating the region that the voxel belongs to. Use module LabelVoxel
to create a LabelField from an image data stack. You can manually modify a LabelField using Avizos
image editor GI.
In addition to the labels themselves a LabelField may also contain weights indicating the degree of
confidence of the label assignment made for each voxel. Such weights are calculated automatically
when you choose option sub-voxel accuracy in LabelVoxel, when you apply the smoothing filter of GI,
or when you resample a LabelField to a smaller resolution using the Resample module.
You can visualize a LabelField by attaching an OrthoSlice module to it. If a LabelField contains
weights, the port Primary Array allows you to choose whether the labels or the probabilities are to be
displayed.
Connections
Master [unused]
ImageData [required]
Connection to the image data that the segmentation results refer to. You cannot connect this port
to an image object with dimensions different from that of the LabelField, except the LabelField
has been newly created via the Create menu. In this case, the LabelField will be resized so that it
matches the dimensions of the image object.
Ports
Shared colormap
716
In case a colormap is connected to the field, this colormap will be shown here. If no colormap is
connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
Primary Array
An option menu which only appears if the LabelField contains weights. In this case the menu lets
you select whether the labels or the weights are the primary data array. The primary data array is
the default array visible to modules expecting an ordinary uniform scalar field like OrthoSlice or
Arithmetic.
Commands
hasMaterial <name>
Returns true if the specified material is defined in the material section of the LabelField.
makeColormap
Creates a new colormap object in Avizos Pool, containing the default colors of all materials of the
LabelField.
relabel
Computes new labels so that the materials are numbered in consecutive order starting from 0.
deleteAltData
Deletes the weight information if it is present.
26.36
UniformScalarField3
This is a class of 3D scalar fields defined on a uniform lattice. See also Lattice3 and its base class
RegScalarField3.
Ports
Shared colormap
In case a colormap is connected to the scalar field, this colormap will be shown here. If no colormap
is connected, only the Edit menu is visible. To connect, disconnect or change the colormap, use the
Edit menu or, equivalently, the popup menu under the right mouse button. See also Colormap and
PortSharedColormap.
UniformScalarField3
717
26.37
VertexSet
The HxVertexSet class is an abstract base class. It is derived by many other Avizo data objects containing a list of 3D vertices, for example landmark sets, surfaces, or tetrahedral grids. HxVertexSet
provides an interface allowing other modules to access the vertices in a transparent way.
In order to visualize the vertices of a vertex set you may use the VertexView module.
Commands
applyTransform
This command changes the coordinates of the vertices of the data object according to the objects
current transformation matrix. This matrix can been defined using the Transform Editor. After the
vertices have been transformed the transformation matrix is reset to the identity.
This command is useful in order to make transformations permanent. In particular, it should be
issued before a transformed data object is written to a file. Otherwise, the transformation will be
ignored by most file formats.
translate <dx> <dy> <dz>
Translates all vertices by a constant amount.
scale {<f> | <fx> <fy> <fz>}
Scales all vertices by a common factor. If three arguments are specified the x-, y-, and z-coordinates
are scaled by different factors.
jitter {<d> | <dx> <dy> <dz>}
The coordinates of the vertices are jittered randomly. The arguments indicate the maximal amount
of jitter. Each coordinate of a vertex will be changed change by at most d/2. The method is useful
in order to resolve problems due to degenerate configurations in certain geometric algorithms.
getNumPoints
Returns the number of vertices of the data object.
getPoint <n>
Returns the coordinates of the specified vertex.
setPoint <n> <x> <y> <z>
Sets the coordinates of the specified vertex.
26.38
ViewBase
This module is the base class for several other Avizo modules displaying a set of triangles, like Isosurface, SurfaceView, GridVolume, and others. ViewBase is not useful on its own but provides special
features common to all derived modules. In particular, these features comprise the following:
718
A dedicated port allowing the user to modify the draw style of a triangular surface in an easy
and consistent way. All modules derived from ViewBase thus have a similar GUI. Among the
supported draw styles is a physically correct transparency mode.
A generic buffer concept allowing the user to select triangles by means of an Open Inventor
tab-box dragger. Only triangles added to the internal buffer will be displayed. Thus, complex
surfaces may be decomposed into smaller pieces.
An arbitrary 3D scalar field may be visualized on top of the triangular surface by means of
pseudo-coloring. Pseudo-coloring may be achieved via Gouraud shading (mapped vertex colors
will be interpolated) or, more accurately, via texture mapping (vertex values will be interpolated
linearly and mapped to color afterwards).
The set of triangles currently being visible can be converted automatically into a Surface object.
This is useful for example in order to post-process isosurfaces or to extract parts from a bigger
surface.
Common Tcl commands allow control of many parameters of modules derived from ViewBase.
This includes line width, outline color, highlight color, specular color, shininess, alpha mode,
normal binding, and more.
Connections
Color Field
Arbitrary scalar field to be visualized via pseudo-coloring. The color field will be evaluated at the
surfaces vertex positions and the vertex color will be set appropriately.
Colormap
Colormap used for pseudo-coloring. To connect the port to a colormap use the popup menu under
the right mouse button. To change the ports default color click it with the left mouse button. See
also Colormap.
Texture [optional]
The texture field must be an HxUniformColorField3 2D slice. When connected, the texture is
mapped onto the surface geometry along the texture normal axis. A transformation can be applied
to the data to change the texture projection axis and texture coordinates scale. Note that texture
projection override pseudo-color mode.
Ports
Draw Style
This port determines the draw style of the surface. Five major styles may be selected via an option
menu:
Outlined: Opaque shaded display with edges superimposed.
ViewBase
719
720
Triangle normals: Enables per-triangle normals. Shading will be discontinuous at the triangles
edges.
Vertex normals: Enables per-vertex normals. An average normal is computed for all triangle vertices.
Direct normals: An averaged normal is computed for every vertex a triangle. No averaging is
performed if two neighboring triangles form an angle bigger than the crease angle set via the Tcl
command setCreaseAngle. The default is 30 degrees.
With the Line width and the Outline color options you can modify the line width and the outline
color of the surface. The Line width option is enabled if the Outlined or the Lines draw style is
selected, otherwise it is disabled. The Outline color option is enabled only if the Outlined draw
style is selected.
Buffer
This port can be used to modify the list of currently visible triangles. All triangles being visible
are stored in an internal buffer. You may add or remove triangles from this buffer via an Open
Inventor tab-box dragger. Triangles selected by this dragger will be highlighted, i.e., displayed in
red wireframe. If the dragger is not visible, click on one of the buttons to activate it.
Add: Adds highlighted triangles to the buffer. If the Shift key is held down while pushing the button
the buffer will be cleared before adding. The Shift key is especially useful in conjunction with the
Draw selection.
Remove: Removes highlighted triangles from the buffer.
Clear: Removes all triangles from the buffer.
Show/hide: Shows or hides the tab-box dragger without modifying the internal buffer.
Draw: Activates a lasso style selection mechanism: Using the mouse you can draw a curve in the
viewer. All triangles within this curve will be highlighted. If CTRL is pressed while drawing, the
triangles within the curve are un-highlighted.
TextureWrap
Wrap mode used for the texture projection on the surface when a texture is applied to the surface.
There are two wrap modes: Repeat: The texture is repeated outside its 0-1 texture coordinate range.
Clamp: Clamps texture coordinates to lie within 0-1 range. This port is hidden if there is nothing
connected to the Texture connection port.
Culling mode
This port lets you choose the culling mode for the surface.
ViewBase
721
Both faces: All triangles are rendered (whether front or back facing).
Front face: Enables back face culling. May increase rendering speed but may lead to artifacts for
non-closed surfaces.
Back face: Enables front face culling. May increase rendering speed but may lead to artifacts for
non-closed surfaces.
Commands
createSurface [name]
Converts set of visible triangles into a surface.
setAlphaMode {opaque|constant|fancy}
Triangles may be drawn either opaque or transparent. Two transparent modes are possible: with a
constant alpha value (constant) or an alpha value varying according to triangle normal (fancy).
setNormalBinding {perTriangle|perVertex}
Normals can be bound either per triangle or per vertex. In the first mode the triangles appear flat.
setPointSize size
Sets the size of points.
setPolygonOffsetMode {auto|on|off}
If lines are to be drawn on top of a surface, the surface must be rendered with an offset to avoid
artifacts. This can be done automatically (auto), always (on) or never (off).
setHighlightColor color
Sets wireframe color of selected triangles.
setEmissiveColor color
Sets the emissive color of the surface.
setSpecularColor color
Sets the specular color of the surface. This will only take effect if specular lighting has been enabled
in port Draw Style.
setShininess shininess
Sets the shininess of the surface.
showBox
Shows box that is used for selecting triangles.
hideBox
Hides box that is used for selecting triangles.
722
Chapter 27
FaultSticks
This is a specialized LineSet data type provided for convenience in seismic visualizations. See also
FaultSurface.
27.2
FaultSurface
This is a specialized Surface data type provided for convenience in seismic visualization. See also
FaultSticks.
27.3
Horizon
This is a specialized Surface data type provided for convenience in seismic visualizations.
27.4
MultiVolumeManager
Multi-channel objects are used to group multiple seismic volume data. This is a specialized MultiChannelField3 module provided for convenience in seismic visualization. Display modules such as
Crossline, Inline, TimeSlice or CroppedVolume then can be directly connected to the multi-channel
object, thus allowing all channels to be operated on simultaneously.
For each seismic volume attached to a multi-channel object a special-purpose port is shown, allowing
you to define the channels data window as well as its preferred color. The data window is usually
interpreted in such a way that the lower data value is mapped to black while the upper is mapped to
the channels preferred color.
Connections
Channel 1 [required] Used to attach the first seismic volume to the multi-channel object. This
input determines the dimensions of the multi-channel object.
Channel 2 [optional] Used to attach a second seismic volume to the multi-channel object.
The second input must have the same dimensions as the first one. After a second input has been
connected, a new input called Channel 3 will be created, and so on. In this way an arbitrary number
of channels can be connected.
Ports
Channel 1
Determines the preferred data window of a channel as well as its colormap. For constant colormap,
if the lower bound of the data window is set to 100, voxels with values less than or equal to 100 will
be drawn in black by the slicing modules.
Channel 2
Specifies the settings of the second channel.
27.5
Seismic2DLineData
Connections
Shared colormap [optional]
The default colormap used by every display module connected to this data. By default, this is the
Default seismic colormap from SeismicSettings.
Ports
Shared colormap
The default colormap used by every display module connected to this data. By default, this is the
Default seismic colormap from SeismicSettings.
724
27.6
SeismicVolumeDataObject
This is a specialized VolumeDataObject data type provided for convenience in seismic visualizations.
Connections
Shared Colormap [optional] The default colormap used by every display module connected
to this data. By default, this is the Default seismic colormap from SeismicSettings.
Ports
Action
If data parameters have been edited via the parameter editor, use this button to save them into the
lda file.
Aligned view
Use this buttons to align the viewing to the corresponding data axis: Crossline, Inline or Time.
Shared Colormap
The default colormap used by every display module connected to this data. By default, this is the
Default seismic colormap from SeismicSettings.
SeismicVolumeDataObject
725
726
Chapter 28
UnstructuredModel
This data type stores an unstructured polyhedral grid. This grid can be either a 2D or a 3D grid
containing boundaries. It can be exported along with its datasets to an AmiraMesh file.
Hexahedral, tetrahedral, wedge and pyramid cells can be mixed in the same 3D grid.
Triangle and quadrangle cells can be mixed in the same 2D grid.
The model can be subdivided into several regions which can be assigned a rendering color (see model
color editor).
28.2
UnstructuredModelDataSet
Stores a field mapped onto an unstructured grid. This field can be bound either per cell or per node.
The data can be scalar values, 3D vectors or tensors.
It can written to an AmiraMesh file when saving the unstructured grid it maps onto.
Connections
Grid [required]
Connection to the unstructured grid the field maps onto.
Colormap [required]
The colormap used by all visualizations of this field. By default, its range is adjusted to the contained field range.
Ports
Options
Displays a legend describing the colormap (colorbar, range, name and units). See display legend
module.
728
Chapter 29
VolumeDataObject
This data type is an uniform scalar field specialized for the out-of-core management. The whole data
set does not need to fit in memory to be visualized. Typically, the file extension associated to this data
type is the LDA file format.
Ports
Action
If data parameters have been edited via the parameter editor, use this button to save them into the
lda file.
730
Chapter 30
AnalyticTensorField
This module generates standard analytical symmetric second order tensor fields. You can use the
Arithmetic module to sample the tensors on a uniform grid but note that the interpolation method used
in Arithmetic does not take into account the metric tensor space. Because of this, the tensors sampled
may have negative eigenvalues.
Ports
Metric
Selects a tensor metric. The Schwarzschild and the Kerr metrics are used in astronomy to describe
the structure of black holes. The Moebius strip metric, the spherical tensor field, and the random
tensor field are used primarily as analytical fields to test tensor analysis modules.
Scale
This port scales the fields with the distance from the center of the data cube. This is useful because
the Arithmetic module usually samples fields in the interval -1..1. In the random metric setting this
port scales the entries of the tensor entries.
Mass
Angular moment
732
Chapter 31
Mosaic
The Mosaic data class can be used as a container for other SpatialData objects. It stores a reference to
the location on file and the bounding box information.
A useful application is to arrange several bricks of overlapping image data and use a MosaicToDiskData to convert them into one large image stored on disk.
Ports
Info
Press add files to select files on disk which will be added to the mosaic.
Use update to reread all files from disk and update the information stored in the mosaic. You should
force an update if you change the data objects referenced by the mosaic.
734
Chapter 32
MolSurface
The data class MolSurface represents molecular surfaces in Avizo, generated by the computational
modules CompMolSurface and CompMolInterface. The class MolSurface is derived from the class
Surface and hence, everything that can be done with an object of type Surface can also be done with
an object of type MolSurface. Additional information stored in class MolSurface includes:
the molecular surface type, i.e., van der Waals, solvent accessible, or solvent excluded surface,
the solvent probe radius,
for each molecule that contributed to the surface, its number of atoms,
and for each point or triangle, the index of the atom it belongs to.
The entire functionality of the editors provided for objects of type Surface is available, including
simplification. However, some care needs to be taken. If you modify the number of points or triangles,
the module MolSurfaceView will no longer be able to color the surface according to atom attributes.
In contrast, other operations, such as edge flipping to improve the surface quality, will not affect the
representation.
Connections
Master [optional]
Connection to the module that generated the molecular surface.
Commands
For a description of Tcl commands, see the documentation of the Surface data class in the Avizo
Users Guide.
32.2
MolTrajectory
Connections
Bundle [optional]
The trajectory may be connected to a trajectory bundle. If so, the Trajectory port will appear in
the user interface of the data object which enables you to control which member of the bundle this
trajectory represents.
Ports
Trajectory
The Trajectory port is visible only if the connection port Bundle is connected to a trajectory bundle.
The menu lets you select one of the trajectories contained in the bundle.
Commands
getTrajectoryName
Returns the name of the trajectory.
Timestep editing commands:
getNumTimeSteps
Returns the number of time steps in the trajectory.
getCoordinate <stepIx> <atomIx>
Returns the coordinate of atom atomIx of timestep stepIx. No return value.
setCoordinate <stepIx> <atomIx> <x> <y> <z>
Sets the coordinate of atom atomIx of time step stepIx. No return value.
removeTimestep <stepIx>
Removes stepIxth timestep. No return value.
removeTimestepRange <firstStepIx> <lastStepIx>
Removes all timesteps starting with the firstStepIxth end ending with the lastStepIxth. No
return value.
736
appendTrajectory <trajectory2>
Appends all timesteps of a trajectory of given name in the object pool. This only works if both
trajectories have the same topologies and observables. No return value.
splitByObservable <observableIx>
Splits the trajectory by creating a trajectory for each different value found in the observable. Each
new trajectory will contain all timesteps which had the specific observable value. Return the name
of the new trajectory bundle object containing all trajectories.
Topology editing commands:
addHydrogens
Add hydrogens until the valences of all atoms are saturated. No return value.
addMMFFParameterization
Adds parameters of MMFF94 force field. No return value.
removeWater
Removes all water molecules and unbonded oxygens and hydrogens. No return value.
addHydrogens
Add hydrogens until the valences of all atoms are saturated. No return value.
removeHydrogens
Removes hydrogens. No return value.
removeNonPolarHydrogens
Removes hydrogens on non polar heavy atoms. No return value.
generateSmiles
Returns SMILES string of molecule.
assignKekuleBondOrders
Converts all aromatic bond orders to single and double to create a kekule structure. No return value.
assignNonKekuleBondOrders
Reverses the kekule structure assignment. No return value.
Observables commands:
getNumObservables
Returns number of observables.
getObservableNames
Returns the names of all observables as a list.
getObservableIx <obsName>
Returns index of obervable with given name. Returns 0 if no such observable exists.
MolTrajectory
737
getObservableName <obsIx>
Returns name of obervable with given index.
addFloatObservable <name>
Adds a new float observable with the given name. Initial values will be 0. Returns index.
addIntegerObservable <name>
Adds a new integer observable with the given name. Initial values will be 0. Returns index.
setObservableValue <obsIx> <stepIx> <value>
Sets value of stepIxth timestep of observable with index obsIx to value. If stepIx is 0 the value
will be set for all timesteps. No return value.
getObservableValue <obsIx> <stepIx> <value>
Returns value of stepIxth timestep of observable with index obsIx.
sortByObservable <obsIx> [a/d]
Sorts timesteps of the trajectory so that the values of the given trajectory are in ascending (a) or
descending order. The sort order is an optional argument and is ascending. No return value.
computeObservableRange <obsIx>
Returns range (minimum and maximum) of values of given observable.
computeObservableStatistics <obsIx1> [<obsIx2>]
Computes variance and mean of the given observable. If a second observable is specified it will also
compute the correlation and covariance between the two observables.
Alignment:
alignTimestep <stepIx> <alignToStepIx>
Aligns coordinates timestep stepIx to coordinates of timestep alignToStepIx by minimizing
RMSD. No return value.
alignTimesteps <alignToStepIx>
Aligns coordinates of all timesteps to coordinates of timestep alignToStepIx by minimizing
RMSD. No return value.
Clustering commands:
clusterTimestepsKMeans <clusterNumber> [observableName]
Applies K-Means clustering to the timesteps of the trajectory with the rmsd between the coordinates of two timesteps used as distance metric. The parameter clusterNumber determines how
many clusters will be created. The command will generate an integer observable in the range of
[1...clusterNumber] containing the cluster index of each timestep. If no observable name is given,
the name clusterIx will be used. The K-Means algorithm is non deterministic. No return value.
clusterTimestepsQT <clusterRadius> <minMemberNum>
[observableName]
Applies QT clustering to the timesteps of the trajectory with the rmsd between the coordinates
738
of two timesteps used as distance metric. Unlike K-Means clustering, QT clustering does not
have a predefined cluster number. Instead the parameter clusterRadius determines the rmsd
threshold for a cluster and the larger this radius, the larger the clusters will be and the smaller the
number of clusters. To avoid a large number of small clusters and focus on significant clusters the
parameter minMemberNum restricts the clustering to clusters which have this minimum number
of members. The command will generate an integer observable in the range of [0...clusterNumber]
containing the cluster index of each timestep whereby 0 means that the timestep was not assigned
to any cluster. If no observable name is given, the name clusterIx will be used. The QT algorithm
is deterministic. QT-Clustering is singificantly more computationally demanding than K-Means.
The latter algorithms should be thus preferred for large trajectories. No return value.
Miscellaneous commands:
getGlobalWeight
Returns the global weight of the trajectory, which is the probability of the molecule to be in the
metastable conformation (conformational ensemble) represented by the trajectory.
setGlobalWeight
Sets the global weight.
loadIntoMemory
Makes sure that all coordinates of the Trajectory are stored in local memory.
32.3
Molecule
An object of data type Molecule contains information about the structure of the molecule. Typical
information that is stored are the types and positions of the molecules atoms and the bonds between
the atoms, plus the type of each bond. Furthermore, the data object stores information about groups
of atoms in a hierarchical way. For example a functional group consists of a number of atoms, several
functional groups may form a residue, and a couple of residues may form a secondary structure. This
allows quick traversal of the molecules structure.
Molecules can be loaded from a file or generated by several global tcl commands. They can be edited
by either using some of the data objects tcl commands which are described in the following sections
or by using the Molecule-Editor.
Molecules can be visualized with the following viewing modules: MoleculeView, BondAngleView,
SecStructureView, or TubeView. In addition, there are two modules for generating molecular surfaces.
The CompMolSurface module enables you to generate the solvent accessible, solvent excluded, and
van der Waals surfaces of a molecule. The CompMolInterface module can be used to generate intraand intermolecular interfaces, such as between single atoms or residues, or between two molecules,
respectively.
When comparing the structures of several molecules with each other, one is faced with the problem of
aligning molecules to each other. This can be easily done by connecting the AlignMaster connection
Molecule
739
port to a second molecule which will serve as reference. There are several alignment modes. If the
molecules have the same number of atoms you can align the two molecules to each other by using all
atoms, whereby the ith atom of the first molecule corresponds to the ith atom of the second molecule.
You can also select atoms in either the slave or the master molecule. The slave is the molecule to be
aligned. If the molecules have different numbers of atoms, the only way to align molecules is to select
atoms in both molecules.
Connections
Data [optional]
The molecule may be connected to a molecular dynamics trajectory. If so, a Time port will appear
in the Properties Area which enables you to load new time steps into the molecule.
Time [optional]
Sometimes it is necessary to synchronize two or more time-dependent data objects, such as a
molecule from a trajectory and the corresponding electrostatic field. In this case, the Time port
can be connected to a Time object.
AlignMaster [optional]
PrecomputedAlignment [optional]
You find the description of the two ports above are described in the section on alignment of
molecules.
Ports
Time
The Time port is visible only if the molecule object is time dependent, i.e., it is connected to a
molecular dynamics trajectory. In the slider you can select a specific time step. If you wish to step
through the trajectory, use the buttons next to the slider. For continuous animation, use the outer
buttons.
Alignment
You will find the description of the above three ports in the section on alignment of molecules.
Selection Browser
Press this button if you wish to open the selection browser for this molecule.
740
Transform
If you want to transform all atom coordinates of the molecule by the current transformation in order
to save the molecule with the transformed coordinates to a file, press the Apply button. As long as
the Transform Editor is active you can also undo your actions.
Commands
You can use the console window for entering additional commands for molecules. The easiest way
to use the console for a molecule is to click on the molecule object in the Pool and then press the
TAB key in the console window to display the name of the selected object. After the name you can
use the following selection commands:
list
Lists all levels defined for the molecule.
list <levelName>
Lists all groups of level levelName.
list <levelName/[groupName|groupRange]>
Prints information about a single group or multiple groups specified by a group range.
define <levelName/groupName> <groups>
This command defines a new group groupName in the level levelName. If levelName does not yet
exist, it will be added as a new level. groups is a list of groups of possibly different levels. Groups
can be specified using ranges.
Example: The following command defines group one in level test consisting of atoms 1 and 3 and
residues 4 to 6.
Molecule
741
savePQR
Saves the molcule in PQR format (pdb format with added partial charges and radii). If no attribute
names are supplied as parameters, the default values charge and radius will be used.
Viewer Commands:
The following commands allow to connect different kinds of viewer modules to the molecule from
the command line:
showSurface
Creates CompMolSurface and MolSurfaceView modules to show the molecular surface. No return
value.
showSticks
Creates a MolecuelView module to show the molecule in sticks representation. No return value.
showHBonds
Creates a HBondsView module to show all hydrogens bonds. No return value.
showHBondsTo
Create a new molecule in the object pool containing all hyrdogens bonds between molecule and
molecule2. A HBondView will be connected to this molecule to show the hydrogen bonds. Returns name of new molecule.
Selection Commands:
showBroswer
Shows the selection browser. No return value.
sel <atomExpr>
Lets you add atoms specified by atomExpr to the current selection.
Example: The following command will select all carbon atoms which are located in helices.
There is also a global command sel which applies the atom expressions to all molecules in the
object pool.
desel <atomExpr>
Lets you remove atoms from the selection. Like for sel there is also a global desel command
operating on all molecules.
selAtom <atomIx>
Selects atom with given index.
deselAtom <atomIx>
Deselects atom with given index.
742
isAtomSelected <atomIx>
Returns 1 if atom with given index is selected, 0 otherwise.
invertSelection
Atoms which are selected will become unselected and vice versa.
selWithinSelection <objectname> <range>
Atom expressions only work on single molecule objects. This command allows to use the WITHIN
operator of atom expressions in relation to another molcule object in the object pool. The command
will select all atoms that are within range Angstroem from any atom selected in the molecule
objectname.
selWithinCoordinate <x> <y> <z> <range>
Will select all atoms which are within range Angstroem from the given coordinate.
expandSelectionToGroupsOfLevel <levelIx>
Will expand selection to all groups of given level for which at least a single atom is selected.
selFromFiler [<objectName>]
Selects all atoms which are not hidden in the filter of the given downstream object. If the name of
the object is omitted it will select all atoms which are not hidden in any of the downstream object
filters. No return value.
printSelection
Prints a lists of all atoms which are selected.
printSelectionByAtoms
Same as printSelection.
printSelectionByResidues
Prints a lists of all residues which are entirely or partially selected.
printSelectionByLevel <levelName>
Prints a lists of all groups of the given level which are entirely or partially selected.
getSelectionCenter
Computes center of gravity of selected atoms and returns x,y, and z coordinate.
getSelectionBBox
Computes the bounding box surrounding
xmin,xmax,ymin,ymax,zmin,zmax.
all
selected
atoms
and
returns
it
as
addSet <name>
Adds current selection as a new group to the sets level. The name attribute of the new group will
have the value name. This set can be used to return to the current selection at a later time. Note
that there is also a global command which will apply addSet to all molecules in the object pool.
Molecule
743
removeSet <name>
Remove set of name name from sets level. No return value.
useSet <name>
Resets selection to atoms contained in the group in sets level which has the name attribute value
name. No return value. Like for addSet, there is also a global useSet command.
Labeling commands:
The following command allow modify labels of groups. They work on all downstream MolLabel
modules.
setGroupLabel <levelIx> <groupIx> <label>
Attaches a label to a group. This is done by setting the label in a create MolLabel module. If no
module exits, a new MolLabel will be created. No return value.
setGroupLabelSize [<levelIx>] <size>
This command works on all attached MolLabel modules and sets the font size of all labels for the
given level. If the level index is omitted, it will be applied to all levels. No return value.
setGroupLabelColor [<levelIx>] <red|green|blue|yellow|white|black>
This command works on all attached MolLabel modules and sets the color of all labels for the
given level. If the level index is omitted, it will be applied to all levels. No return value.
setGroupLabelColorRGB [<levelIx>] <r> <g> <b>
Same as setGroupLabelColor but instead of using a text string defining a color, the red green blue
value of the color (each within the range [0,1]) is specified. No return value.
Editing Commands: The following commands allow to access and edit all data entries inside of
the molecular data structure. The commands work index based. All indices must be valid. Note that
removing groups or attributes may invalidate locally stored indices.
getLevelIx <levelName>
Returns index of level with name levelName, 0 if no such level.
getLevelName <levelIx>
Returns name of level with index levelIx.
getNumLevels
Returns number of levels.
addLevel <levelName> <referenceLevelIx>
Adds level of name levelName which references the level with index referenceLevelIx. Returns
index of new level
removeLevel <levelIx>
Removes level with index levelIx. All dependant levels will also be removed. Level indices might
change after using this command. No return value.
744
getReferenceLevelIx <levelIx>
Returns the index of the referenced level of level levelIx. Returns 0 if it does not reference another
level.
getNumGroups <levelIx>
Returns number of groups of level with index levelIx.
getNumGroupElements <levelIx> <groupIx>
Returns number of elements of group groupIx of level levelIx.
getGroupElement <levelIx> <groupIx> <elementIx>
Returns index of elementIxth group which is referenced by group groupIx of level levelIx.
getGroupElements <levelIx> <groupIx>
Returns list which contains indices of groups which are referenced by group groupIx of level
levelIx.
removeGroupElement <levelIx> <groupIx> <elementIx>
Removes elementIxth reference of group groupIx of level levelIx. Element indices of the
group will change after using this command. No return value.
setGroupElement <levelIx> <groupIx> <elementIx> <refGroupIx>
Sets the reference of the elementIxth element of the group groupIx of level levelIx to the
group refGroupIx. No return value.
addGroupElement <levelIx> <groupIx> <refGroupIx>
Add the reference refGroupIx at the end of the of the elements of the group groupIx of level
levelIx. No return value.
removeGroup <levelIx> <groupIx>
Remove the group groupIx from index levelIx. Will also remove all dependant groups and
attribute entries. No return value.
removeGroups <levelIx> <groupIx1> <groupIx2> ...
Remove the given groups from level levelIx. Will also remove all dependant groups and attribute
entries. No return value.
restrictToGroups <levelIx> <groupIx1> <groupIx2> ...
Remove all groups of level levelIx except for the given groups. Will also remove all dependant
groups and attribute entries. No return value.
removeSelection
Remove all atoms which are selected and all dependant groups. No return value.
restrictToSelection
Remove all atoms which are not selected and all dependant groups. No return value.
Molecule
745
copySelection
Copies the selected atoms into a new Molecule object. The label of the new object in the object
pool will be returned.
splitSelection
Copies the selected atoms into a new Molecule object and removed them from the current. The
label of the new object in the object pool will be returned.
addMolecule <objectname>
Adds the molecule object in the object pool with the given name.
addMoleculeSelection <objectname>
Adds all selected groups of the molecule object in the object pool with the given name.
addGroup <levelIx>
Adds group to level levelIx. Returns index of new group.
addGroupSelection <levelIx>
Adds group to level levelIx and sets its group elements to the currently selected atoms. Returns
index of new group.
getNumAttributes <levelIx>
Return number of attributes of level levelIx.
getAttributeIx <levelIx> <attrName>
Return index of attribute attrName of level levelIx.
getAttributeName <levelIx> <attrIx>
Return name of attribute attrIx of level levelIx.
addStringAttribute <levelIx> <attrName>
Adds a string attribute of name attrName to level levelIx. Returns the index of new attribute.
Returns 0 if not successful.
addIntegerAttribute <levelIx> <attrName>
Adds an integer attribute of name attrName to level levelIx. Returns the index of new attribute.
Returns 0 if not successful.
addFloatAttribute <levelIx> <attrName>
Adds a float attribute of name attrName to level levelIx. Returns the index of new attribute.
Returns 0 if not successful.
removeAttribute <levelIx> <attrIx>
Remove attribute attrIx from level levelIx. No return value.
setAttributeName <levelIx> <attrIx> <attrName>
Sets name of attribute attrIx of level levelIx to attrName. No return value.
746
Molecule
747
assignNonKekuleBondOrders
Reverses the kekule structure assignment. No return value.
computeHBonds [<maxDistDA> <minAngleDAX>]
Will create a level hBonds containing potential hydrogen bonds. The optional parameters
maxDistDA determines the maximum distance between donor and acceptor atom and minAngleDAX the minimum angle between donor, acceptor, and a heavy atom bonded to the acceptor.
The default values are 3.9 and 120. For more fine grained control and more details look at the
documentation of the ComputeHBonds module. No return value.
Protein specific editing commands:
alignToProtein <mol2>
Aligns this molecule to another molecule in the object pool with the given label. The alignment will
be accomplished by residue sequence alignment with the CompSeqAlign module. Both molecules
need to contain the residues/type attribute with 3 letter code amino acid types. No return value.
alignProtein <mol2>
Aligns a molecule in the object pool with the given label to this molecule. Both molecules need to
contain the residues/type attribute with 3 letter code amino acid types. No return value.
appendAminoAcid <index> <terminus> <code>
Append a new amino acid to the amino acid that is the indexth group in the residues level. The type
of the new amino acid must be given in the 3 letter code. Terminus must be C or N depending on
which terminus the old indexth residue the new residue is appended. For this command to work, the
atoms/type attribute must contain the pdb atom types and the residues/type and bonds/type attribute
must exist. No return value.
substituteAminoAcid <index> <code>
Substitutes the amino acid that is the indexth group in the residues level with the amino acid of the
given 3-letter code. For this command to work, the atoms/type attribute must contain the pdb atom
types and the residues/type and bonds/type attribute must exist. No return value.
mutatePDB <mutationString>
This command acts similar as the substituteAminoAcid command except that the syntax of the
substitution definition differs to make this command more easily usable with pdb proteins. The
mutation string is a concatenation of the original type, the pdb index and the new type (example
LYS34ASP). Both 3 or 1-letter code may be used (L34H). The index refers to the pdb index attribute. If the original type is left out, the amino acid with the given index will be substituted
regardless of type (example 34H). If the index is left out, all amino acids of the given original type
will be substituted with the new type. In this latter case, 3-letter codes need to be used (example
LYSASP). A set of substitutions can be applied at once by seperating them by whitespaces and
enclosing the set in curly brackets (example {L23H G24S}). No return value.
getAminoAcidChirality [<index>]
Returns whether amino acid index is an L or D isomer. Returns N if residue is not an amino
748
acid or if required attributes are missing. If index is omitted a string containing L, D or N for
each residue will be returned. For this command to work, the atoms/type attribute must contain the
pdb atom types and the residues level must exist containing the amino acids.
setAminoAcidChirality <index> <chiralCode>
Sets amino acid to L or D isomer. For this command to work, the atoms/type attribute must
contain the pdb atom types and the residues level must exist containing the amino acids. No return
value.
Molecule
749
750
Part V
Chapter 33
Avizo
33.1
To modify existing colormaps push the edit button which is visible when the colormap is selected.
As you can see, there is a menu bar near the top border of the window with the submenus Edit,
Mode, and Brush, which will help you to control the behaviour of the colormap editor and to change
components of the chosen colormap. Below the menu bar a so-called color chart is displayed. The
red, green, and blue lines are the graphs of the color channel components of the colormap. The
underlying color model is RGB (at startup). The axes are not shown directly; the x-axis ranges from
the lowest to the highest colormap index and the y-axis from 0.0 to 1.0 according to the RGB model.
Thus, a point on a color line indicates the amount of color for the corresponding color channel and
color index. You can manipulate the course of a line by setting a brush onto any of its points and
moving it up or down. A brush is set by pressing a mouse button, the left one for the red line, the
middle one for the green line, and the right one for the blue line.
Below the color chart a color bar is displayed which is a larger version of the one used for display in
the colormap port. Its only function is to show you the actual appearance of the modified colormap in
a smoother way by linearly interpolating the colors between the indices.
The largest area of the editor window is occupied by the color buttons which represent the color in
every position (index) of the chosen colormap. Each position is called a color cell. You can set the
focus which is the target index of modifications applicable by the color sliders (see below), and it is
also possible to modify the colormap by dragging a color cell. The index of the focus color cell is
shown below the color buttons.
In the lower area of the window there are some color sliders, one for each color channel by which
you can modify color channel values with respect to the focus cell. This means that the values of
neighboring cells are affected as well, as you can see in the color chart. The sliders are manipulated
by dragging the small triangles; alternatively values in fixed-point format may be entered directly into
the text fields to the right of the sliders.
The last three buttons named OK, Apply, and Cancel are for quitting the editor, applying your changes
to the underlying Colormap data object, and quitting the editor without applying your changes.
Interactive editing of a colormap is facilitated by two user interface elements, the focus and colormap
knots.
Focus: The focus marks the active color cell which can be edited using the color sliders. It is represented by a black-and-white box drawn around the active color cell and by a black vertical line in the
color chart.
You set the focus by clicking with the left mouse button on a colormap entry in the color button panel.
A focus cell also gets a knot marker (see below); clicking again on a focus cell removes the knot and
places the focus on to the leftmost color cell, just setting the focus to a different cell does not remove
a knot.
Knots: Knots are fixed points in the colormap, i.e., they retain their values while the colormap is being
manipulated by snapping (see Menu bar/Edit/Snap) or by dragging the focus. Knots are represented
by a small black box with a white surrounding in a color cell and a white vertical line in the color chart.
You set a knot by setting the focus and remove a knot (with the focus) by clicking another time on a
color cell with the focus. The knots on the first and last cells of the colormap cannot be removed.
33.1.1
A. Menu Bar
The menu bar consists of the four submenus: Edit, Mode, Brush, and Extras.
a) Edit Menu
This submenu offers two opportunities for editing the colormap. The first group deals with the undoing
and the opposite - redoing - changes you made in the colormap. The second group snaps one or more
channels, like tightening a rope between the left and right neighboring knots of the focus.
Undo: If you think that your last changes to the colormap have been a mistake, this entry lets
you take back your last changes. You can easily go back to a point of editing when you were
content with the colormap and start editing again. The colormap editor remembers up to 50 of
your last changes.
Redo: If you undid too much, this entry undoes the last undo, i.e. re-does the undone changes.
This is the reverse function of Undo. You may undo/redo your changes as often you wish, but if
you modify the colormap by another function (not Undo/Redo) you lose the opportunity to redo
the last undos. Redo is only activated if your last action was invoking Undo.
754
755
Snap All: By selecting this entry, all colormap entries will be tightened like a rope (snapped)
between their left and right neighboring knots leaving the knots itself untouched. This means
that lines are drawn between all pairs of successive knots for each color channel. This function
manipulates all color channels simultaneously.
Snap: This operation behaves much like a local Snap All, i.e., snapping occurs only between
the left and the right neighboring knots of the focus by tightening all color channels as if they
were ropes between the knots.
Snap Red or Hue: Depending on the chosen color model (see Mode), the first color channel
Red or Hue is snapped between the left and right neighboring knots of the focus leaving the
other color channels untouched. See Snap for an explanation of snapping.
Snap Green or Saturation: Like in Snap Red, this entry manipulates the second color channel
between the left and the right knot leaving the other color channels untouched.
Snap Blue or Value: Like in Snap Red, this entry manipulates the third color channel between
the left and the right knot leaving the other color channels untouched.
Snap Alpha: This entry is only shown if Show Alpha (see Mode) has been activated. By
selecting it, the alpha channel will be locally snapped as described in Snap between the left and
the right neighboring knots of the focus leaving the other color channels untouched.
b) Mode Menu
This menu allows you to select the color model used to modify the colormap. RGB Sliders chooses the
RGB model where colors are represented by a red, green, and blue component. HSV Sliders chooses
the HSV model where colors are represented by a hue, saturation, and value (intensity) component. In
addition, an Immediate Mode toggle is provided. If this toggle is active, all changes are immediately
applied to the colormap and downstream modules are immediately fired so that they can update their
display.
c) Brush Menu
This has only relevance for the color chart. Here you can set the brush type used for editing a color
channel curve. Four different brushes are supported. Their shapes are visually represented by corresponding icons.
d) Extras Menu
This menu allows you to replace the whole colormap by one of a set of predefined maps. Currently four
such predefined maps are available: a Gray ramp ranging from black to white, a Hue ramp ranging
from blue over green and yellow to red, a Hot iron map ranging from red over yellow to white, and
a Glow map ranging from black over red and yellow to white. This last map is frequently used in
epi-fluorescence microscopy. Two additional options are provided to subdivide the current colormap
into a discrete set of colors (Make steps) and to define an alpha curve with a predefined gamma value
(Alpha curve). If one of these options is chosen, an additional dialog window pops up, allowing you
to perform the appropriate operations.
B. Color Chart
The color chart shows the graphs of the colormaps color channel components. The red curve shows
756
the first color channel (red or hue), the green curve shows the second channel (green or saturation),
the blue curve shows the third channel (blue or value), and the black curve shows the fourth channel
(alpha). The knots and the focus are represented by white and black vertical lines, respectively. The
left edge of the color chart shows the values of the leftmost index of the colormap and the right edge
those of the rightmost index.
C. Color Bar
Like in the colormap port, this color bar displays a continuous form of the chosen colormap by linearly
interpolating the colors between the colormap entries. If Show Alpha is enabled, alpha values are
represented by a certain amount of transparency in the colors, i.e., you see the colors translucent over
a white and black checkerboard pattern. For an alpha value of 0.0, you see no color information but
only the white and black checkerboard; for a value of 1.0 you do not see a checkerboard because the
colormap entry is not translucent.
D. Color Buttons
An entry of the color button panel is also called a color cell. Each color cell shows the color associated
to a color index without the alpha value. The indices are counted from left to right and from top to
bottom. Thus the color cell in the upper left corner shows the color of the leftmost colormap entry
and the color cell in the lower right corner shows the color of the rightmost colormap entry. The index
of the focus cell is displayed below the color button panel. Just after the index the data value which
corresponds to the focus cell is shown in brackets. The data value depends on the current range of the
colormap.
E. Color Sliders
In the lower area of the Colormap Editor window there are four color sliders allowing you to modify
the values of the focus cell. Depending on the current color model, the first three sliders are associated
to red, green, and blue or to hue, saturation, and value, respectively. The fourth slider always modifies
the alpha value. In front of each color slider there is a toggle button. If the toggle is activated, the
corresponding color can be edited using the left mouse button in the color chart (see below).
F. Control Buttons
These three buttons let you choose whether the changes to the colormap should be kept or not. By
pressing the OK button the changes made with the editor are written back to the colormap object that
you are working on. This action also causes the editor to exit. If you just want to write back the
changes without exiting, e.g., if you want to see how your changes take effect, just press the Apply
button. If Apply is done in the Immediate mode however, the previous state of the colormap cannot be
restored by Cancel.
If you think that your manipulations have gone totally wrong, you can always decide to keep the old
colormap and throw away your changes. This is done by pressing the Cancel button which also closes
the editor window. Cancel restores the colormap to the last state when the Apply button was pressed,
or to the initial, if Apply was left untouched.
757
33.1.2
This section describes how to modify a colormap in various ways. For the effects of invoking the
various menu items, see Menu bar.
A. Using the color chart
A color channel can be edited by modifying the corresponding curve with a brush. Values are increased
by approaching the curve from the bottom side with a brush while holding down the left mouse button,
and vice versa. Only one curve can be edited at a time. The curve to be edited is determined by the
toggle button in front of the four color sliders. For example, if you want to modify the alpha curve,
you first have to select the toggle button in front of the alpha slider.
Four different brushes can be chosen in the Brush menu, namely a small square, a bigger square,
a circle, and a diamond. The shape of the brush determines how a curve will be modified when
approaching it with the mouse. When the brush touches the curve it moves the color channel up or
down (depending from which side it comes) to the first pixel outside the brushs area. Colors are
clamped to the channels minimum and maximum allowed values.
The new colors are displayed instantaneously in the color bar and in the color buttons. If you modify
the focus cell, the color slider corresponding to the curve being edited will also be updated.
B. Using the color buttons
This item offers you the most opportunities to modify the colormap. You can set the focus, set/unset
a knot, or modify a certain region of the colormap by dragging the focus cell. Due to the fact that a
focus always exists, a special operation for unsetting the focus is not necessary because you unset a
focus simply be setting a new one.
Setting the focus: You simply select a focus by clicking once in a non-focus cell. The new
focus cell will be surrounded by a black and white border while the border of the old focus cell
disappears. The other displays will be refreshed, i.e. the color index displayed below the color
buttons will be set to the focus cells index, the color chart will display a black vertical line in a
position corresponding to the new focus cell, and the color sliders will show the color channels
values in the focus cell. As mentioned above you simply unset a focus by setting a new one.
Setting a knot: Because every focus cell must have a knot, you set a knot simply by setting the
focus, i.e. by clicking once in a non-focus cell without a knot. The knot appears as a small black
box with a white surrounding in the middle of the new focus cell. The color chart displays it
with the focus as a black vertical line. If you change the focus, the knot still remains in the color
cell but without the focus it is displayed in the color chart as a white vertical line.
Unsetting a knot: You unset a knot by clicking another time into a focus cell. This does two
things: First, the knot is removed from the color buttons and the color chart. Second, the focus
is set to the first color cell, i.e. to the upper left corner of the color button panel and to the left
edge in the color chart. The displays are refreshed, i.e. no small black box in the color cell and
no vertical line at the corresponding position in the color chart will be shown.
Dragging the focus cell: When you click the first time in a non-focus cell, you can hold the
mouse button (be careful: a click in a focus cell unsets a knot) and drag the focus cell over the
758
color buttons. The corresponding color values will be temporarily copied to its new position and
the color channels between the next knots to the left and to the right from the actual position will
be snapped i.e. the color channels will be tightened like a rope between the focus and the left or
right knot. When you move in a new region between two knots, the old region will be restored
and the new region will be affected by snapping. When you release the button, the focus cells
color values (the one which you dragged) will be copied to its last position and the colormap
remains in this state, i.e., with the copied color values in the focus cell and the snapped color
values between the focus and the left or right knot. While moving the mouse, the color chart is
updated appropriately. The color sliders stay the same because the focus cell values remain the
same (remember: you drag the focus and copy its cells values).
C. Using the color sliders
The color sliders offer you three ways to modify the values associated to the focus cell, either by setting
the value explicitly in the text field, by dragging the small triangle, or by clicking somewhere in the
slider area.
All modifications have an effect on the surrounding colormap entries between the next knots to the left
and to the right of the focus cell. A modification of a value changes the surrounding colormap entries
relative to their distances to the focus. This is similar to raising / lowering a rubber band between
the left and right knot in the focus position. You can clearly see the effect by looking at the curves
displayed in the color chart. The values and displays are refreshed in the same way as described in the
previous sections.
33.2
CameraPath Editor
The CameraPath Editor allows you to edit camera paths defined by a number of keyframes. To
get started, choose CameraPath from the Create menu and click on the Camera Path Editor button of
the new camera path object. The editor will appear and automatically open an additional viewer.
The original viewer (viewer 0) is the camera view, i.e., it shows the same as if you were looking through
the camera, while the additional viewer will show you all of the keyframe cameras from a birds eye
view. In order to start your camera path, choose an appropriate view in the original viewer (to learn
how to do that, see section Viewer Window in chapter Program Description of the Avizo users guide)
and click on the add button. Your first keyframe has been saved. The time slider should contain one
red line and it should have advanced to 10. Now change the view in the original viewer and click on
add again. A second keyframe appears and so on.
Once you have played your camera path using the play button, you may continue adding keyframes
by simply typing the time for the new keyframe into the text field or by moving the slider and then
clicking add. Note: The original view will not be changed when the slider is moved or the text in the
text field is changed.
To change the time of a keyframe, jump to this frame, click on remove, type in the new time, and click
CameraPath Editor
759
on add again.
If you want to have a constant camera velocity on its path, press the const velocity button. Depending
on the distances between the camera positions at the keyframes, the keyframe times are changed to be
equidistant between camera positions.
Caution: Pressing the circular path button will create a new camera path and destroy the old one. The
new camera path lies on a circle around one of the major axes with the center at the point the camera
in the original window is looking at. The radius is determined by the distance of the camera position
and the point the camera looks at.
33.3
Color Dialog
The Color Dialog provides an interface for selecting colors. It pops up whenever a single color is to
be changed in Avizo. The dialog provides several different interface components: a menu bar, color
sliders, default color cells, a color picker, and five buttons.
The menu bar allows you to set some options for working with the color dialog. The sliders (and
the corresponding text fields and arrow buttons) let you choose a color by hue, saturation, and value
(HSV), or by the levels of red, green, and blue (RGB). The color picker allows you to pick a color
by sight. Moreover, you can choose a predefined color from a palette of custom colors cells. The
buttons are used to apply or reset changes and to quit the dialog. A detailed description of the interface
components is given below.
Menu Bar: The menu bar holds two popup menus: the Edit and the Options menu. There are two
items in the Edit menu allowing you to toggle between different editing modes: the Immediate Mode
and WYSIWYG Mode.
If Immediate Mode is selected, each modification of the color to be changed is effective immediately,
e.g., if you are changing the background color of the 3D viewer and Immediate Mode is active, the
Figure 33.2: Control panel of the camera path editor. The arrow shaped control buttons can be used to play forward and
backward, to jump from keyframe to keyframe, or to step frame by frame. When the editor is off, the camera path provides a
time port.
760
Figure 33.3: The camera path is shown in an extra viewer. You can click on a keyframe and modify the camera. The changes
will be displayed in the original viewer simultaneously. The reddish icon represents the current camera. In general this is not a
keyframe but an interpolated camera.
Color Dialog
761
effect of every slider or picker operation can be observed directly in the viewer.
The WYSIWYG Mode (meaning what you see is what you get) determines the background of the color
sliders. If WYSIWYG Mode is active, the background of a slider shows a color range representing how
the current color would change by moving this slider.
You have the option of displaying and manipulating two different combinations of sliders: RGB and
HSV. The Options menu holds two items representing these two combinations. Selecting RGB Sliders
provides controls over RGB color space. Selecting HSV sliders provides sliders to manipulate the HSV
color space.
Color Sliders: The color sliders present the color range in hue, saturation, value (HSV) or red, green,
blue (RGB) color spaces. If the color to be changed has an alpha component, an additional slider
is automatically displayed. Each slider controls one color component. The color sliders are visible
depending on the user selection in the Options menu. Each of the color sliders is accompanied by a
text edit field to view the exact value of the current color component and to set its numerical value.
The component values are always in the range from 0 to 1.
On the left side of each slider (except the alpha slider) an additional check button is displayed allowing
you to select one color component to control the appearance and functionality of the color picker.
Color Cells: The color cells are subdivided into three different groups: One cell named Current Color
displays the color depending on the current settings. Each color manipulation is shown by this cell
immediately. The cell named Old Color displays the original color the dialog has been invoked with.
The old color does not change until current setting are applied by activating the Apply button. The
other cells labeled Custom Colors provide a user-defined palette for storing colors. The custom colors
stay resident between successive color dialog popups.
The Drag and Drop mechanism is applied to store and restore colors. The colors can be copied arbitrarily between all cells (except that a color cannot be stored to the old color cell). To drag and drop a
color
1.
2.
3.
4.
Buttons: The four buttons named OK, Apply, Reset and Cancel are for quitting the dialog and applying
the changes to the underlying color (OK), applying the changes without quitting (Apply), resetting the
current color to the old color, i.e. discarding last changes (Reset), and quitting the dialog without
applying the changes (Cancel). The fifth button named Help is for displaying this documentation in
the Avizo help window.
Color Picker: The Color Picker provides visual selection of a color. Depending on the selected color
component (selecting using the radio button on the left side of each slider), the two other components
of the color can be set with the picker. One component corresponds to the vertical extent of the color
762
picker and the other to the horizontal. The selected component cannot be changed with the picker. To
select a color using the color picker
1. Move your mouse cursor on top of the color picker.
2. Press down on the left mouse button and move your mouse. While moving the mouse around
the current color is set to the color at the mouse position.
3. Release the mouse when you are done.
33.4
Colormap Editor
To modify an existing colormap, press the Colormap Editor button which is visible in the Properties Area when the colormap is selected. The colormap editor pops up.
33.4.1
Overview
This editor allows you to interactively edit a colormap and to graphically visualize the result on a
selected data set by means of the histogram. The histogram is automatically colored using the current
color settings.
Colormap Editor
763
The interface is divided into three main parts: the histogram, the gradient editor, and the color/opacity
chooser. The histogram is only for visualizing the relation between a selected data set and a selected
colormap. The gradient editor and the color/opacity chooser work together to modify the selected
colormap.
33.4.2
Menu Bar
The menu bar contains two items: a Help button which brings up this help topic in the help browser,
and the Options menu which contains the following items:
Background Color: A color chooser dialog will be popped up allowing you to change the
Histogram background color.
Immediate Mode: If this toggle is active, all changes are immediately applied to the colormap
and downstream modules are immediately fired so that they can update their display.
Show Alpha Curve: If this toggle is active, the alpha values of the colormap are edited by
changing the shape of a curve rather than by adjusting opacity markers. Opacity markers are
described in the Gradient Editor text below, the alpha curve in the Alpha Curve text. Note:
Unlike most attribute settings, this setting is persistent across Avizo sessions.
33.4.3
Global Settings
33.4.3.1
Colormap
This combo box is filled with all colormaps present in the Pool. The last item, Load..., allows you to
load a colormap from disk. Note: Changing the current colormap will discard any changes that have
not been applied or saved.
33.4.3.2
Curve Type
33.4.3.3
Data
The Data field represents the input data used to calculate the Histogram. If no data is available, nothing
is shown in the Histogram and the field indicates No Data. This field is filled with the data in the
Pool from which a histogram can be computed (see Histogram). If the selected colormap is referenced
764
by a data set, this data set is selected. Otherwise, the first compatible data set found in the Pool is
selected.
33.4.3.4
Axis Type
Axis Scaling
This field allow you to scale the Histogram depending on the min/max range to better visualize your
mapping.
Fixed: This is the default mode. All data values are shown on the Histogram, including the
values outside the min and max range.
Auto: In this mode, all data values outside the min and max range are ignored. The data values
in the range are scaled to fit within the vertical space, allowing you to better visualize a range of
data values.
33.4.4
Histogram
The purpose of the Histogram is to graphically summarize the distribution of values within the selected
data set, colorized by the current colormap. The horizontal axis displays the data set values, the vertical
axis displays the frequency. The three vertical lines indicate the coordinate range used for mapping
data values to colors. To adjust this range, you can drag the black triangle markers at the bottom. The
left and right markers move the min and max range, while the middle marker moves the min and max
at the same time.
33.4.5
Gradient Editor
The gradient editor allows you to modify the colormap using color markers and either opacity markers
or an alpha curve depending on the setting of the Show Alpha Curve toggle of the Colormap Editors
Options menu. The color is linearly interpolated between two consecutive markers. Color and alpha
channels are treated separately.
When selecting a colormap, the markers are automatically extracted. To modify the gradient, you can
add or remove markers. To add a new marker, click on the area containing the color or opacity marker
at the desired position. A new marker is added with the interpolated value. You can move this marker
horizontally by dragging or by setting a value in the Location field. The small triangle over or under
Colormap Editor
765
the marker indicates its selection state: solid black when selected ( ), transparent otherwise (
The color chooser and opacity chooser values are updated each time you select a marker.
).
Depending on which kind of marker you select, the color chooser or opacity chooser is activated. The
upper markers are for the alpha channel, the lower markers are for the RGB channel. The corresponding Location field and Delete button are enabled.
To remove a marker, select it and click on the Delete button in the active chooser. Or right click on the
marker.
To the extreme right and left are the min and max range color/opacity values, which cannot be moved.
Instead, two fields are provided, one on the far left, one on the far right, to allow you to specify the range
of the data that the colormap will be mapped to. All input data values less than the left (minimum) value
or greater than the right (maximum) are colorized using the min range color/opacity or the maximum
color/opacity respectively. All other input data values are colorized with the interpolated gradient. To
reposition the median point
(the gradient point containing equal start and end proportion), drag it
horizontally to the desired position.
Click the Adjust range button to automatically adjust the colormap range to the connected data range.
33.4.6
Alpha Curve
In many cases it may be more convenient to control the transparency of the colormap via the alpha
curve than by using the opacity markers described above. The color gradient is updated continuously
while you adjust the alpha curve.
To add a point to the curve, click where you want the point added. It it not necessary to click exactly
on the curve.
To move an existing point, click on it to select it (it will be highlighted in black), then drag it with the
mouse. It can also be moved using the Opacity Chooser.
To remove a point, click on it with the right mouse button.
To reset the alpha curve definition to its default state (full opacity, no intermediate points), press the
Delete key.
766
33.4.7
Color Chooser
When a color gradient marker is selected, the color chooser is activated. To the left, the control is an
HSV color triangle. The circle represents the hue and the triangle the saturation and value. By moving
the two cursors, it is possible to generate all possible colors of the HSV color space.
The color is also displayed as an RGB triplet in the Red, Green, and Blue fields. You can also enter the
desired values explicitly [0..255].
The Gray level input field allows you to quickly specify a gray level. The Location field shows or sets
the position of the color marker. Press the Delete button to delete the selected marker.
33.4.8
Opacity Chooser
When an opacity marker is selected, the opacity chooser is activated. The vertical slider controls
the opacity value (must be between 0 and 100, 100 meaning totally opaque). This value can be also
modified by the Opacity input field.
The Location field and the Delete button work as described above.
33.4.9
Control Buttons
Save As: Pop up a Save File dialog to save your colormap to disk.
Cancel: Cancel all unsaved modifications and close the editor.
Apply: Apply your changes to the selected colormap.
OK: Apply your changes to the selected colormap and close the editor.
33.5
Curve Editor
Ports
Degree
Enter the degree of the B-Spline. The higher the degree, the more control points are required and
the smoother the curve. Also, the oscillations increase when the degree increases.
Curve Editor
767
Samples
In interpolation mode, the curve goes through the specified points. In approximation mode, the
curve approximates the polygon spanned by the points.
Editing Mode
The dragger either appends new points or modifies the currently selected point. Both modes apply
as well when clicking on an object in the viewer with the middle mouse button.
Points
Specifies the control points that define the curve. The points can be modified by entering numerical
values here, by moving the dragger and clicking on the middle mouse button, or by doing a click
on an object in the viewer with the middle mouse button. In the Options menu, the dragger and the
control points can be switched on and off in the display.
Point Size
Specifies the display mode. These options are not mutualy exclusive. Checking off the points will
display points of the BSpline and checking off the lines will display lines between the points. At
this time curve option is not available.
Curve
Resets the curve to its original shape by removing changes made to it with the Curve Editor
768
33.6
The Data Parameter Editor lets you view and modify the parameter list associated with a data object. A
parameter is a name/value pair which contains extra information related to the data. Some parameters
have a special meaning within Avizo, see section Parameters in chapter Program Description of the
Avizo users guide.
To change the value or name of an existing parameter, click on the respective line and change the
name/value in the text fields. To add a new parameter, right click on the root of the parameter tree,
labeled Parameters and select New Parameter. Then select the new parameter to change its name and
value.
Note that there are many standard file formats which do not support parameter information to be
written. If in doubt, use Avizos native AmiraMesh format. This format does write parameters.
33.7
Datasets Selector
The datasets selector is available on some data objects like CFD models. It allows to select which
results will be loaded from a dataset. In some case, loaded data can have several associated results (like
Pressure, Density...) and it can be useful to not load all these results to preserve memory consumption
or, simply, to load only interesting results. The datasets selector will be automatically launched when
769
loading data on which it can be attached. After the data has been loaded, it is also accessible via the
Properties Area and allows to add/remove results afterwards.
For example, when loading a Fluent file, the following dialog will appear:
In the first list are listed all the results available for the loaded data. By default, no results are selected.
To select some of them, double-click on the items, or select them and click on the Add button. Selected
results are removed from the first list and will be added to the second. For convenience, an Add All
button has been added to select all the results. Removing datasets is the same except that you have to
select the items into the second list and use the Remove or the Remove All button.
33.8
Demo GUI
The Demo GUI is a special-purpose system for managing demos. Demos to be selected with the Demo
GUI must have been previously prepared as described in the Demo Framework documentation.
To use the Demo GUI, you must set the environment variable $AVIZO DEMOS to the directory which
contains the prepared demos. Within Avizo you will find an item Local Demos in the Help menu.
If this item is inactive (grayed out), $AVIZO DEMOS is not set. If no valid demos are found in the
specified directory, an error popup will be displayed.
The Demo GUI window consists of two tabs:
Preselection tab: On this tab you can perform a filter operation on all demos available in your demos
directory. The filter result is shown in the right list.
770
Demo GUI
771
Figure 33.11: Preselection tab with the result of the filter operation on the right
Selection tab: Here you can select the demos you want to use for your presentation from the filter
result (The content of the right list of the preselection tab is identical with the left list shown on
the selection tab).
Preselection tab
On the preselection tab you can select your desired attributes from the attributes checkbox tree on the
left and the result of your search will be shown in the right list. If you alter your search query the result
list will be updated automatically.
Selection tab
The selection tab contains two lists:
Left List: List of all available demos. Here the demos are organized according to the directory
structure under $AVIZO DEMOS. To expand, i.e., to go down in the directory structure, click on
the + icon. Demos can be expanded up to the level of steps.
Right List: List of all selected demos. If you selected and added a demo at a higher level (a group of
demos), they are expanded up to the demo level on the left list.
To select demos, click with the left mouse button on a demo on the left list and add it with the Add
button to the right list, the selection list. Once a demo has been put into the right list, it can be selected
again and then it is possible to change its position within the list (Up/Down buttons) or remove it again.
Steps within a demo may be deleted, for example, to shorten a demo.
772
For more information about a particular demo, just click with the right mouse button on a demo on
either the left or right list. A popup window containing some information and thumbnail images will
appear.
Starting Demos
The three toggles below the tabs may be used as follows:
full screen: If on, the demos are displayed in a full screen viewer. Since the Avizo main window is
obscured, it is only possible to steer the demos with the help of the function keys.
stereo: This toggle is only activated if the current machine or graphics card has OpenGL stereo
capabilities. If set, the Avizo script for the demos contains a Tcl variable STEREO which in
turn is used by the underlying individual demo scripts to switch stereo on or off.
html: If this item is checked and the Start button has been pressed, the Avizo help window pops up
and the selected demos can be started and steered also from this window.
The Create, Start, and Quit buttons provide the following functionality:
Create: Creates a network with only the DemoSequence and the DemoStatusDisplay module. In this
state you can save the network in order to use the compiled demo later on. To really start the
demo, press the Start button in the DemoSequence module or see below in Figure 33.13
In addition, a directory selection is created under the $AVIZO DEMOS directory which contains the selected demos in the same ways as is done by the prepareDemos.tcl commandline tool.
Start : Creates the network for the first selected demo and starts its first step.
Demo GUI
773
Rearrange Demos
After the selected demos have been executed, or a demo network compiled with either the Demo GUI
or the command-line tool has been loaded, you may start the Demo GUI again by selecting the item in
Avizos Help menu, then rearrange the previously selected demos.
33.9
This editor provides digital image filters for 3D image data sets, such as smoothing, unsharp
masking, and morphological operations. Some filters operate in 3D while others are applied to twodimensional slices. In the latter case, the orientation of the 2D slices can be selected via an option
menu. Press the Apply button to start the computation.
Currently, the following filters are supported:
774
Ports
Filter
Specifies the filter and its domain. It allows you select whether the filter should be applied to the
XY, XZ, or YZ slices or to the entire three-dimensional image. Depending on the selected filter,
additional ports will be visible.
Action
The Undo button allows you to undo the last filter operation.
33.9.1
This filter replaces the value of a pixel by the smallest value of neighboring pixels covered by an NxN
mask. The size of the mask can be adjusted via the input field kernel size. A value of 3 denotes a
3x3 mask (3x3x3 in 3D). If applied to a binary label field, the minimum filter implements a so-called
erosion operation. It reduces the size of a segmented region by removing pixels from its boundary.
775
33.9.2
This filter replaces the value of a pixel by the largest value of neighboring pixels covered by an NxN
mask. The size of the mask can be adjusted via the input field kernel size. A value of 3 denotes a
3x3 mask (3x3x3 in 3D). If applied to a binary label field, the maximum filter implements a so-called
dilation operation. It enlarges the size of a segmented region by adding pixels to its boundary.
33.9.3
Unsharp masking
This filter sharpens an image using an unsharp mask. The unsharp mask is computed by a Gaussian
filter of size kernel size.
Then, the smoothed image is subtracted from the original image such that only high contrast remains.
c
1c
The weighted difference of the original image (weight: 2c1
) and the blurred image (weight: 2c1
) is
calculated afterwards using the sharpness parameter c. It determines the relation between the original
and blurred image, effectively controlling the amount of sharpness. c can be adjusted via a text input
field and should be in the range of 0.6 to 0.8. A value of 1 leaves the image unchanged.
33.9.4
This filter is a rotation invariant edge detection filter. The algorithm finds zero crossings of the second
derivative, i.e., changes of the sign of the first derivative of the image function which may indicate
an edge.
33.9.5
This filter is a simple edge-preserving smoothing filter. It may be applied prior to segmentation in
order to reduce the amount of noise in an image. The filter works by sorting pixels covered by an NxN
mask according to their gray value. The center pixel is then replaced by the median of these pixels,
i.e., the middle entry of the sorted list. The size of the pixel mask may be adjusted via the text field
labeled kernel size. A value of 3 denotes a 3x3 or mask (3x3x3 in 3D). An odd value is required.
33.9.6
The Gaussian filter smoothes or blurs an image by performing a convolution operation with a Gaussian
filter kernel. The text fields labeled kernel size allow you to change the size of the convolution kernel
in each dimension. A value of 3 denotes a 3x3 kernel (3x3x3 in 3D). The minimum kernel size is 1
which means that the image is not blurred at all in that direction. The text fields labeled sigma rel
allow you to adjust the width of the Gauss function relative to the kernel size.
776
33.9.7
The Sobel-Filter is a rotation variant edge detection filter. It convolutes the image with 4 different filter
kernels representing horizontal, vertical, and two diagonal orientations. Each kernel is constituted of a
combination of Gaussian smoothing and the differentiation in the proper orientation.
33.9.8
This filter performs a so-called contrast limited adaptive histogram equalization (CLAHE) on the data
set. The CLAHE algorithm partitions the images into contextual regions and applies the histogram
equalization to each one. This evens out the distribution of used gray values and thus makes hidden
features of the image more visible. Parameter Contrast Limit determines the contrast limit for the
CLAHE algorithm.
33.9.9
Edge-Preserving smoothing
This is a smoothing filter that models the physical process of diffusion. Similar to the Gaussian filter,
it smoothes out the difference between gray levels of neighboring voxels. This can be interpreted as a
diffusion process in which energy between voxels of high and low energy (gray value) is leveled. In
contrast with the Gaussian filter, it does not smear out the edges because the diffusion is reduced or
stopped in the vicinity of edges. Thus, edges are preserved.
Note that in the 3D mode the computation can take a rather long time if the data is large. A faster
preview is always possible by switching to the 2D mode.
The stop time determines how long the diffusion runs. The longer it runs, the smoother the image
becomes. The time step determines how accurately this process is sampled.
The contrast parameter determines how much the diffusion process depends on the image gradient,
i.e., how much the smoothing is stopped near edges. A value of 0 makes the diffusion independent
of the image gradient and smoothes out the edges, a large value prevents smoothing in all edge-like
regions.
In order to make the diffusion process more stable, the image is prefiltered by a Gaussian filter with
parameter sigma. All features of size sigma are removed. This allows noise to be removed from the
image. But a too large value may also remove relevant features.
Note: This filter implement the non-linear diffusion algorithm: J.Weickert, B. Haar, and R. Viergever.
Efficient and reliable schemes for nonlinear diffusion filtering. IEEE Trans. Image Proc., 7(3):398410, 1998.
33.9.10
This filter can be used to sharpen images. It performs a convolution with a Lanczos kernel:
777
f (x) =
sin(x) sin(2x)
, |x| < 2
2 2 x2
The kernel size in each dimension can be adjusted using the parameter inputs kernel size. A value of 3
denotes a 3x3x3 kernel. Odd values are required.
Parameter Sigma determines the effective size of the Lanczos function. For large values of sigma the
effect of the filter will be a smoothing rather than a sharpening.
33.9.11
This filter operates on single voxels (kernel size 1) and is used to raise a specific intensity range. This
is useful as a preprocessing step in image segmentation. The intensity range is described by its center
and it width . The target image range is given by the interval [min, max].
f (z) = (max min) (1 + exp(
33.9.12
z 1
)) + min
This filter modifies the image brightness by adding an offset to the image values. The contrast is
modified by multiplying the difference from the voxel values to the average image intensity.
f (x) = Brightness + xav + Contrast (x xav ),
where xav is the average (brightness) value in the image.
33.9.13
This filter calculates the n-th centralized moment of the data in a gliding window. The centralized
moments of order n are defined by:
N
f (x) =
1 X
(xi x
)n .
N 1 i=0
The second moment (n = 2) is therefore the local variance in the data. For some data sets this can be
used to mask out noisy regions or to detect edges.
Because of the n-th power involved in the computation, you may want to use CastField to do a conversion of your data set to floats or doubles first.
778
Figure 33.15: The ImageCrop editor allows you a crop a 3D image and to modify its bounding box or voxel size.
33.9.14
A gamma characteristic is a power-law relationship that approximates the relationship between the
encoded luminance in a display system and the actual desired image brightness. With this nonlinear
relationship, equal steps in encoded luminance correspond to subjectively approximately equal steps
in brightness. Computer graphics systems that require a linear relationship between these quantities
use gamma correction.
Specifying a large value Gamma leads to darker images. The Range specifies the intensity values that
correspond to black and white. Intensity values outside this range are clipped off.
33.10
ImageCrop Editor
This editor works on 3D fields with an arbitrary number of components defined on a regular grid, e.g.,
3D images or 3D vector fields with uniform, stacked, rectilinear, or curvilinear coordinates. It allows
you crop such a field, i.e., to discard all voxels lying outside of a specified subvolume in index space.
Alternatively, you may adjust the physical size of the field by changing its bounding box. Note that
this does not mean resampling, i.e., the number of voxels will not be changed.
Each node of a regular grid can be addressed by an index triple (i,j,k). Each index ranges from zero
to the number of slices minus one in that direction. This editor also allows you to add new slices on
every side in every dimension. Last but not least, you can flip and rotate the slices with respect to the
global x-, y-, or z-direction.
When you activate the crop editor, the dialog shown in Figure 33.15 pops up. If the editor is activated
ImageCrop Editor
779
for a field with uniform, stacked, or rectilinear coordinates, in addition a tab box dragger is displayed
in the viewer window. The dragger allows you to specify the subvolume to be cropped interactively in
3D. When you resize the dragger, the index bounds of the current subvolume are permanently updated
in the corresponding fields in the dialog window.
The Crop list allows you to select a ROI and use its box coordinates as crop coordinates.
The Auto crop button automatically adjusts the subvolume to be cropped by taking into account the
value of the threshold field. Slices at the boundaries of the original data volume are cropped if they
contain only data values smaller than the specified threshold. In this way it is easy to isolate a bright
object in a 3D image with a large dark background.
In order to add slices, you must set the indices in the text fields beyond the limits of the total data
volume. When slices are added, by default the values of the last slice in that direction are replicated.
If you switch off the replicate toggle, the text field pixel value becomes active. You can then specify a
data value which is used to initialize the new slices.
In order to manipulate the bounding box of the data object, new values must be entered in the corresponding text fields. For data objects with uniform coordinates two modes are available, bounding box
and voxel size. See section below for details.
All changes take effect if you press the OK or the Apply button. They are discarded by activating the
Cancel button. As usual, the editor is closed by pressing OK or Cancel. Apply will leave it open, and
Cancel restores the previous state.
33.10.1
Some experience with manipulating draggers is assumed. Using the draggers you can reduce or enlarge the data volume you want to preserve; enlarging is, of course, possible only up to the size of the
bounding box. The size of the dragging box can be manipulated intuitively in every direction of the
three axes, i.e., along the x-, the y-, or the z-axis. The values in the text fields of the editor change according to your manipulations. A certain minimum thickness is preserved while reducing a dimension
of the box; for further reductions the text fields must be used.
Using the draggers you control the size of the subset of the data volume which must be preserved, but
the location of it in the total data volume is set by moving the box around to the desired location.
33.10.2
The text fields in the cropping area of the editor show the indices of the slices that must be preserved
for every dimension. You can easily define a subset by setting a range of indices explicitly in the text
fields of an axis - this defines the size as well as the location of the data subset. Notice that a slice
index refers to an axis that is perpendicular to the slice.
780
33.10.3
Adding new slices is only possible by setting an index that does not fall into the range given by the
minimum and maximum presently shown in the Image Crop panel; thus a negative index must be
specified if the minimum is zero. Use the Min or Max text field for the required axis text field to enter
a new slice index.
A warning dialog pops up asking whether you really want to add new slices; upon your confirmation,
the slices are added to the volume at the specified end and according to the axis selected. The new
slices contain the data of the last slice in this direction, e.g., if you add two slices before the slice with
index 0 along the x-axis, they contain exactly the same data as the slice with index 0.
33.10.4
You change the size of the bounding box by setting new values explicitly in the bounding box fields.
This does not affect the stored data, but its representation as displayed by a viewing module, e.g.,
OrthoSlice, by way of a different scaling for the specified dimensions.
The bounding box of a data set with uniform coordinates specifies the world coordinates of the center
of the lower left front voxel (min values) and the center of the upper right back voxel (max values). For
example, if your input is 256 pixels wide and the size of each voxel is 1mm, then you may set xMin to
0 and xMax to 255.
If a data set with uniform coordinates is being edited, instead of the bounding box, also the voxel size
can be modified. You can switch between the two modes and see how bounding box and voxel size
influence each other.
33.10.5
Press one of the three flip buttons to reverse the order of slices in the corresponding dimension, e.g.,
click on FlipX to flip the slices in the x-dimension.
33.10.6
Press one of the three exchange buttons to interchange the corresponding dimensions, e.g., click on
X-Y to interchange the x- and y-dimension. CAUTION: The exchange operations are not rotations;
they change the spatial orientation of the data set.
33.11
Landmark Editor
This component allows you to edit landmark sets. It operates by directly interacting with the
Landmark Editor
781
3D geometry in the viewer window, cf. sectionViewer Window in chapter Program Description of the
Avizo users guide. In order for this to work, the viewer must be switched to interaction mode, e.g., by
pressing ESC as described in its documentation.
The editor has different Edit modes, which are described in the following:
Add. In this mode new landmarks are added by clicking onto a piece of 3D geometry (e.g., an
Isosurface or an OrthoSlice). Multiple clicks are required if the landmark set contains more than
one point set.
Move. Markers can be moved in this mode by first clicking on the marker (selecting it) and then
clicking to a new position.
Transform. In this mode, markers can be moved using a dragger. Click on one of the markers,
then use the dragger to manipulate it.
Flip. Flip geometry of marker. This only makes sense if the marker type is not Point.
Remove. The marker you click on will be removed. If more than one point set is present, the
marker will be removed from all sets.
Query. After you click on a marker, its type and its xyz-position are shown. The marker type can
be changed via an option menu. The default marker type is a Point, represented by a little sphere.
In addition, a number of predefined specialized marker types can be selected. In contrast to
point-type markers, specialized markers have fixed predefined sizes (world coordinates assumed
to be given in centimeters).
See also documentation for Landmark Set.
33.12
LineSet Editor
This component allows you to edit linesets. It operates by directly interacting with the 3D
geometry in the viewer window, cf. sectionViewer Window in chapter Program Description of the
782
Avizo users guide. In order for this to work, the viewer must be switched to interaction mode, e.g., by
pressing ESC as described in its documentation. Points and lines can be selected by clicking on them
in the viewer. Selected points or lines will be highlighted in red. Multiple actions can be performed by
pressing one of the buttons in the Action port. They are described below.
The Selected port tells you how many points and lines are selected at the moment.
In the Display port you may choose how the lineset is displayed. By clicking on the toggles, optionally all points, endpoints, and/or lines will be displayed in the viewer. Only displayed geometry is
selectable. The default is endpoints and lines.
The Select port provides the following selection modes:
All. All lines will be selected.
By Length. An additional dialog pops up where you can enter the minimal and maximal numbers of points in lines that are to be selected. Pressing the OK button actually selects the requested lines.
Clear. The current selection will be cleared.
By Line Index. Brings up a dialog that lets you enter a line index. Pressing the OK button
selects this line.
The Action port provides the following actions:
Connect. This button allows two lines to be connected. In order to do this, exactly two points
must be selected, otherwise this button will not be active.
Delete. Selected points and lines will be deleted from the lineset.
Stretch. All selected lines will be smoothed.
Split. All lines will be split at selected points.
Draw. To draw lines.
Values. To set values at selected points.
33.13
Plot Tool
The Plot Tool is a special-purpose viewer designed to display 1-dimensional data, e.g., function curves.
Instead of being a separate Avizo module, the Plot Tool is invoked implicitly by certain modules such
as the data probing modules or the LabelVoxel module. Each of these modules generates 1-dimensional
data such as a function plot along a line or a histogram. For most of these modules it is possible to
display the plot within Avizos viewer if one connects the ViewerPlot module to it. While the datagenerating modules control the initial settings of the plot window, the user can freely adjust these
settings afterwards.
Plot Tool
783
33.13.1
Plot Basics
The layout of the plot is determined by objects and groups of objects. These entities are processed by
a plot engine. In particular, there are objects for
Curves
Cartesian axes
Polar axes
Plot areas
Legends
Annotations
Marker lines
Lattices
Colormaps
The plot engine processes the objects top to bottom (see Figure below). The sequence of objects
determines their behavior. Objects of type PlotArea define the area within the plot window where
objects are placed. This area is given in normalized coordinates with the origin at the lower left
corner. Besides this, a PlotArea object also acts as a grouping object. An axis is placed in such an
area and establishes, together with the preceding PlotArea, a window-viewport (world coordinates to
normalized coordinates) transformation. Note that the objects must be kept in the following sequence:
784
Figure 33.18: Dialog for editing plot objects. On the right hand side the controls for editing axis parameters are shown.
1. PlotArea, 2. Axis, 3. Curves and Marker lines. Legends display all succeeding curves in the
sequence and can be placed wherever needed. It is possible to have more than one plot area or axis in
a plot setup.
Every object is identified by a unique name. You will need to know these names if you want to change
certain object attributes via the command interface of the Plot Tool.
33.13.2
Editing Parameters
In order to change the parameters of a plot object, select the Edit Objects... item from the Edit pulldown
menu of the Plot Tool. A window appears with the list of names of all objects currently in use. When
you select one of these objects, the parameters of that object are displayed and can be changed. The
is active toggle near the lower left corner of the window can be used to switch the processing of the
selected object on or off. If the processing of an object which has group functionality (Plot Areas, Plot
Groups) is switched off, all objects within that group are also not processed.
The following sections document all parameters that are not self-explanatory.
33.13.2.1
To choose the x- or y-component of an axis, just click on the appropriate tab. If you want to change
the range, you must switch off the Auto toggle. This causes the range fields to become sensitive. The
Nice Num toggle sets the range to the next good looking boundaries. A tick delta can be typed in
after the number of ticks is set to -1.
Plot Tool
785
It is possible to zoom interactively into your data using the mouse. To do this, drag a rectangle within
the plot area by pressing the shift key and the left mouse button while moving the mouse. To go back
to the automatic ranges, click into the plot area with the left mouse button while the Alt key is pressed
at the same time.
Every axis object has a hidden grid child object which is not active by default. To show the grid, just
open the grid child and select it. Then set the is active toggle to on.
33.13.2.2
To position an annotation on your plot, you can switch between world coordinates or normalized
coordinates. Using world coordinates is convenient if you want to annotate a certain feature, e.g.,
an extrema of a curve. In this case you must insert the annotation after that curve object. You can
also position an annotation in the plot window interactively by pressing the left mouse button on the
annotation, moving the mouse, and then releasing it at the new position.
33.13.2.3
There are three types of legends possible: A Legend Block displays an entry for each curve together
with a short line depicting the appearance of the curves. A Name Block is just a list of the curve
names. The position and orientation for both types can be manipulated easily in the editor window. The
position denotes the coordinates of the first legend item. Positions of legends are always normalized
786
coordinates. The delta parameter applies only to the vertical (y) coordinate. You can also position a
legend in the plot window interactively by pressing the left mouse button on one of the names in the
legend, moving the mouse, and releasing it at the desired position. The third legend type (Name List)
displays a list of curve names, too. But in contrast to the latter type, you can move every name around
separately, like you can with annotations (see above).
33.13.2.4
The position of a marker line must be given in world coordinates. Also be sure that the marker line
is inserted after the appropriate axis. You can shift a marker line horizontally or vertically in the plot
window by pressing the left mouse button on the marker line, moving the mouse, and releasing it at
the new position. Marker lines can be used to probe those curves which belong to the same group
(PlotArea) as the marker line. You can display the value where the marker line intersects the selected
curve the first time. This intersection can also be indicated with a marker symbol.
33.13.2.5
A lattice is a two-dimensional field which is rendered as an image by default. If both dimensions are
less than or equal to 32, a lattice can also be rendered as colored dots in a grid (Gridded) or as dots of
different sizes (Spot) to represent the values. For lattices rendered as images, a gamma value can be
set to enhance the image. Lattices have a colormap (Default: black to white) which can be set through
the appropriate Avizo modules. Global colormaps are not supported within Avizo.
Plot Tool
787
33.13.2.6
Colormaps have only a few editable parameters: The minimum and maximum values can be given or
taken from the axis if there is one. Furthermore the colormap can be reversed. The colors itself can
only be changed with the Avizo colormap editor.
33.13.2.7
Besides the more or less self-explanatory parameters of both the curve and analytical curve (AnCurve)
parameters, there are a few things to mention regarding AnCurves only. The Function text widget
contains the formula which is computed on every plot update. The default formula is x, which produces
a transversal line where x runs from -1 to 1. It is possible to use the name of another curve as a variable
in the function. In this case the x-values of the first curve in the formula are taken to evaluate the yvalues of all variables in use. These y-values are then used for the computation. You can restrict the
range of the computation by activating the Explicit Range toggle and entering the appropriate range
values. There are many built-in functions such as sin, cos, tan, sqrt, exp, ... which can be used in
formulas.
33.13.3
You can copy or delete plot objects. For example, it may be useful for comparison purposes to copy a
curve before the data of the original curve will be changed. To do so, you must select the object in the
788
list and then choose the Edit/Copy pulldown menu. After that, choose Paste or Append in the menu
and the object will be inserted at the current position (= position of the selected object) or the object
will be placed behind the selected object.
With the New pulldown menu you can create new objects which will be inserted at the appropriate
positions in the list of objects.
33.13.4
Printing
The File pulldown menu of the main plot window provides a Snapshot item where you can send the plot
directly to the default printer or save it as an image file. It is also possible to generate a vector-based
PostScript file of the plot by using the print command (see below).
33.13.5
Saving Data
The Save Data... item under the File menu lets you save the data of all curves in a file. The file dialog
presents a list of formats suitable for saving the data.
33.13.5.1
Data formats
The Amira-Plot-Format (.ampl) is a proprietary format which should be used if you want to plot the
data later on within the Avizo plot facilities. Use the Gnuplot-Format (.dat) if you plan to use Gnuplot
to plot the data outside of Avizo. If you need to import the plot data into a spreadsheet program like
Microsofts Excel, use the CSV-Format (CSV = Comma Separated Values) (.csv). The SpreadsheetFormat (.am) can be loaded and processed by Avizo.
33.13.6
If you changed your plot setup a lot, you can save this setup in a similar fashion like the Save Network
functionality. That is, first save the Avizo network, and then save the plot state into a second file. To
resume an Avizo session, invoke Avizo and load the two script files (1. Avizo network, 2. Plot state).
Note that the size and the position of a plot window is saved automatically if it is opened by an Avizo
module and the Save Network menu item is invoked.
33.13.7
Specific Option
For the SplineProbe and LineProbe, a specific plot toolbar is available that let you choose the X axis
type:
Length : The X axis represents the length of the curve (default).
x-coord : The X axis represents the x coordinate of the curve sampled points.
y-coord : The X axis represents the y coordinate of the curve sampled points.
Plot Tool
789
z-coord : The X axis represents the z coordinate of the curve sampled points.
Commands
In Avizo, Plot Tool commands have the following structure:
$thePlot command [ parameters ]
or if the command applies to a plot object:
$thePlot objectname command [ parameters ]
The following general commands are available:
getSize
Returns the size of the plot window.
setSize <width> <height>
Sets the size of the plot window.
getPosition
Returns the size of the plot window.
setPosition <x> <y>
Sets the position of the plot window relative to the upper left corner of the screen.
setBackgroundColor <r> <g> <b>
This command sets the color of the background to a specific value. The color may be specified
either as a triple of integer RGB values in the range 0...255, as a triple of rational RGB values in the
range 0.0...1.0, or simply as plain text, e.g., white, where the list of allowed color names is defined
in /usr/lib/X11/rgb.txt.
hide
Hides the plot window.
show
Shows the plot window if it is hidden.
getObjects
Displays a list of all plot objects currently in use.
update
Processes the plot object and updates the display.
snapshot <filename>
Takes a snapshot and saves it under the given name. The suffix of the filename determines the raster
format used. Available formats are: TIFF (.tif,.tiff), SGI-RGB (.rgb,.sgi,.bw), JPEG
(.jpg,.jpeg), PNM (.pgm,.ppm), BMP (.bmp), PNG (.png), and Encapsulated PostScript
(.eps)
790
Plot Tool
791
getXValues
Returns the x-values of a Curve.
getYValues
Returns the y-values of a Curve.
set[X|Y|Phi|R]TickValues <1. tick> <2. tick> ... <n. tick>
Sets the position of the ticks along an axis. It is available for objects of type: Cartesian Axis,
Polaraxis.
set[X|Y|Phi|R]TickLabels <1. label> <2. label> ... <n.
label>
Sets the labels of the ticks along an axis. It is available for objects of type: Cartesian Axis,
Polaraxis. If there are fewer labels than ticks the remaining ticks will be unlabeled.
33.14
Segmentation Editor
The Segmentation Editor is a tool for interactively segmenting 3D image data. Image segmentation
is the process of dividing an image into different subregions (also called segments). In the material
science context, these segments can be for example different phases, pores, objects or materials.
In Avizo, segmentation is done by first selecting voxels and then assigning these voxels to a particular
material. The labels are stored in a Label Field. The Segmentation Editor lets you edit such a label
field. From the final label field polygonal surfaces can be reconstructed using the SurfaceGen module.
The documentation of the Segmentation Editor is separated into the following parts:
33.14.1
In order to activate the segmentation editor, press the Image Segmentation edit button of a selected
Label Field. Then an instance of the editor will be created and a new window as shown in Figure 33.25
792
Segmentation Editor
793
Layout1 button in the viewer toolbar. To cycle through each of the four views, press the Layout1
button repeatedly. To return to 4-viewer mode, press the Layout4 button.
Basic principle of interactive segmentation
The basic idea of interaction in the segmentation editor is a to first select some voxels and then to
assign them to the active material. The simplest way of selecting pixels is to simply draw with the
mouse when the Brush or the Lasso tool is active (see below for details). Selected pixels are displayed
in red.
To add selected pixels to the active material, click the + button. The active material is the material,
which is currently selected in the material list. New materials can be added by pressing the New button
above the material list. Every pixel can only be assigned to one material.
Note that even with the advanced tools provided in Avizo, image segmentation can be a timeconsuming process! Due to limited main-memory and for performance reasons, there is only a limited
undo space for 2D and 3D interaction. Therefore it is highly recommended to frequently save the label
field during the process of segmentation.
To get started it might be a good idea, to choose the image segmentation demo from the Users Guides
demo section and start by modifying an existing label field.
The menu bar
Two segmentation-specific menus are added to Avizos main menu bar: Segmentation and Selection.
The entries of the Selection menu are described in a separate section below. Menu entries with dots
(...) after their name open an additional dialog.
The items of the Segmentation menu are described here:
Undo: This entry undoes the last operation. Successive invocation of undo is possible, allowing
you to undo several operations. Note that for memory and performance reasons, 3D operations
can not be undone. Therefore it is highly recommended to frequently save the label field.
Data window...: This entry brings up an additional dialog, in which you can control the data
window and the opacity of the selection. If the Current viewer button is selected in the Zoom
and Data control panel, then the changes affect only the currently active viewer.
Orientation: You can use this to select the orientation of the active viewer. You can also flip
the x, y, or z coordinates of all of the viewers.
MaterialStatistics: This entry brings up a dialog which lists the results computed by the MaterialStatistics module on the current data set and segmentation. For an explanation of the modes,
see the documentation of the MaterialStatistics module.
Fill holes: Invokes a label filter. See Label filters.
Remove islands...: Invokes a label filter. See Label filters.
Smooth labels...: Invokes a label filter. See Label filters.
Gray image: Selects the data set to be displayed in the viewers.
794
Gradient image: Selects the gradient that will be used by some of the tools of the segmentation
editor, for example, the Blowtool.
Preferences
It is possible to specify various preferences in the Segmentation tab of the Edit/Preferences menu of
the main menu bar.
Slice Position: Allows you to switch on and off display of the borders of the slices in the 3D
viewer window.
Show 3D: When checked on, the currently selected voxels are displayed in the 3D viewer window.
Points1, Points2, Solid: These radio buttons allow you to choose the draw style used for drawing the currently selected voxels in the 3D viewer window.
33.14.2
To select a material in the material list, click on the material name with the left mouse button. The
selected material will be highlighted in dark blue.
Press the New button to add a new material to the list (note that not more than 256 materials are
accepted). To delete a material, select a material, then press the Delete button.
Click on the color square to the left of the material name to bring up a color dialog to edit the color.
Click on the eye icon to the right of the material name to switch the material visible or invisible in the
segmentation editor. An empty eye means invisible, a normal eye means visible.
Click on the lock icon to lock or unlock the material. If a material is locked, no voxels can be subtracted
from this region, neither explicitly, nor implicitly by adding them to another material. The lock icon
indicates the current state (locked, unlocked).
Press the select button to select all pixels of the corresponding material.
The current material is the material which is assigned to selected voxels if the + button is pressed.
This material is displayed with a gray highlight. In the material list the current material can be selected
Segmentation Editor
795
by clicking on the material name with the left mouse button. A special behavior is obtained if one of
the Shift, Control, or Alt keys on the keyboard is held down while selecting the material:
If Shift is held down, all voxels which are already assigned to the selected material are added to
the current selection (either in the current slice or in the whole volume, depending on the value
of the 3D toggle described below).
If Control is held down, all voxels assigned to the selected material will be deselected (either
in the current slice or in the whole volume, depending on the value of the 3D toggle described
below).
Holding down the Alt key does the same as Shift except that the selection is cleared before new
voxels are selected.
Additional options of the material list can be accessed via a popup menu, which shows up when the
right mouse button is pressed on a particular material entry. The following menu entries are provided:
Draw Style: A submenu offers different styles how pixels belonging to a particular material are
rendered in the image viewer. The possible appearances are:
Invisible: The material is not visible. You can also control the visibility by clicking on
the materials eye icon of the material list.
Contour: The segments are enclosed by lines.
Hatched: The segments are enclosed by lines and shown hatched.
Dotted: The segments are enclosed by lines and filled with dots.
Light Dots: The segments are enclosed by lines and filled with less dots.
Locate: This command sets all viewers to the slice with the largest region of this material. This
is especially useful to navigate in large data sets with many materials.
Delete Material: If you choose Delete, the material you have clicked on will be deleted. Voxels
belonging to that material will be assigned to the first material in the list (typically the background). You can also delete a selected material by pressing the Delete button above the material
list.
Rename Material: With this option you can change the name of a material. A text cursor
appears and lets you edit the name as easily as any other text field. If the new name is equal to
the name of an existing material you are asked if these two materials should be merged. It is not
possible to have to different materials with the same name.
Edit Color: This command brings up a color dialog in which you can easily change the color
of this material. You can also access the color editor by clicking on the materials color square
in the material list.
Lock/Unlock Material: You can lock a material with this option. A lock icon to the right of the
material indicates its current state (locked/unlocked). If a material is locked, no voxels can be
subtracted from this region, neither explicitly, nor implicitly by adding them to another material.
You can also lock/unlock the material by clicking on the materials lock icon in the material list.
796
New Material: By selecting this option from the popup menu a new entry is added to the
material list with a randomly chosen color and a default name, e.g., NewMaterial. These
properties can be changed as described above. You can also create a new material by pressing
the New button above the material list.
Lock All: This locks all materials.
33.14.3
Initially, in each 2D image of the image segmentation editor the current slice with colored contours
surrounding the different segments is shown. Near the bottom of the image you find a slider to control
which slice of the 3D volume is currently displayed. The slice number and the total number of slices
is displayed in textual form at the top of each 2D slice window. The orientation of the slice can be
changed via the menu entry View Orientation in the menu bar.
A viewer can be made the active viewer by clicking in the viewer itself. The last window you worked in
will be active. Be careful when clicking into the image in 3D mode. If the Pick tool or the Magic Wand
tool is active the resulting selection operation may take some time to compute. Use Segmentation/Undo
to remove any unwanted selections. All 2D operations like the + or - are always performed in the
active viewer, i.e., the slice and orientation of the active viewer will be considered.
The 3D viewer
The lower-right viewer is a standard Avizo 3D viewer. All modules will display in this viewer too
(depending on the modules viewer masks, as usual). In addition there is some special 3D support for
segmentation, which is controlled by the +3D and -3D buttons in Selection tools area.
By default, the current selection will be displayed in the 3D viewer as a point cloud. After each change
of the current selection (i.e., after each brush stroke), the display will be updated. On slower computers
or for very large data sets, this may become slow. Switch off the 3D check box of the Segmentation
tab of the Edit/Preferences menu to disable display of the highlighted region in the 3D viewer.
The Draw ROI buttons allow you to modify the selection in 3D. You can add or crop 3D regions by
drawing in the 3D viewer. See the Selection tools section for details of the operation of the +3D and
-3D buttons. Note that the shape of the added or cropped region will also depend on the camera mode
you are in, orthogonal or perspective. For a related tool for editing volumes, see VolumeEdit.
Using the zoom buttons
The zoom buttons control the size of the image. An info line on the right hand side of the buttons shows
the current zoom factor. For example a zoom of 2:1 means that 2 pixels on the screen correspond to
one pixel of the original data set (magnification), while 1:4 would mean that four pixels of the data set
correspond to one pixel on the screen. If the pixel size is not the same in all dimensions, the zoom
factor belongs to the horizontal direction only, to maintain the correct aspect ratio of the voxels. If the
Current viewer button is selected then the zoom buttons only apply to the currently active viewer.
Data range, histogram, and colormaps
Segmentation Editor
797
The histogram displays the distribution of values in the image. Use the sliders below it to adjust the
data range for the display. You can adjust the range by clicking and dragging the right and left edges
of the slider bar. You can adjust the entire range at once by clicking and dragging the center of the
slider bar, which will adjust the brightness. The range slider can be dragged beyond the minimum and
maximum values of the image, causing the histogram to rescale accordingly. If the Current viewer
button is checked, then the slider changes the data window of the currently active viewer only.
The colormap of the image can be changed from the default gray ramp to another colormap by pressing
the Select colormap button.
33.14.4
Selection Tools
The basic principle of the segmentation editor is to first select voxels and then to assign the selected
voxels to the current material. This assignment is done using the + button. Besides the + button,
there are some other buttons which can be used to perform selection operations. The complete set of
buttons follows:
3D toggle: Radio buttons let you choose to operate on all slices or just the current slice. If the
3D toggle is activated, i.e., you have selected all slices, the selection tools in this group operate in
3D mode. For example, the Clear button clears the whole 3D selection, not only the current slice.
Currently, in 3D mode no undo is available. Therefore, be careful when activating the 3D toggle.
Usually, it is advisable to disable the toggle again after completing a particular 3D operation.
Clear: This button lets you clear the current selection. If the 3D toggle is activated, the selection
is cleared in all slices.
Replace: This button tries to replace a selected region. Assume you want to modify the contours
of some region. As long as the new contours fully enclose the previous ones this can be easily achieved
using the + button. However, if the new region is smaller, things are more complicated. The replace
button looks for connected regions under the current selection belonging to the current material. Pixels
which belong to such a region but which are not selected are automatically assigned to some other
neighboring material. Selected pixels are assigned to the current material. In this way a replacement
is performed.
Add: This button adds all selected voxels to the material currently selected in the material list.
Voxels assigned to a locked material are not affected. If the Shift key is held down while clicking the
button, the voxels remain selected. Otherwise the selection is cleared afterwards.
Subtract: This button lets you subtract all selected voxels belonging to the current material
from that material, provided the current material is not locked. The pixels are automatically assigned
to some neighboring material which is interpreted as a local background.
Draw ROI Add: This button selects voxels to be added to the current highlighted region. Click
on this button, holding the left mouse button pressed down, and drag the mouse in the 3D viewer to
draw. When you release the mouse button, the voxels are added to the current selection. If the Control
798
key is pressed when starting to draw, the inverse of the surrounding region will be selected. This draw
tool can also be activated by pressing the d key in the viewer window in interaction mode.
Draw ROI Subtract: This button selects voxels to be removed from the current highlighted
region. Click on this button, holding the left mouse button pressed down, and drag the mouse in the
3D viewer to draw. When you release the mouse button, the voxels are removed from the current
selection. If the Control key is pressed when starting to draw, all 3D points which lie outside the
surrounded region will be cropped.
33.14.5
Segmentation Tools
Several segmentation tools are provided allowing you to select areas in the current slice for subsequent
edit operations. A tool is activated by clicking on its icon with the left mouse button. By default,
selected areas are drawn in transparent red color. The opacity of the red color can be modified using
a dialog under the Segmentation Data Window... menu. Alternatively, selected areas can be visualized
using the same draw styles as ordinary labels. The different draw styles are listed under the Selection/Draw style submenu. However, in most cases the default transparent display is most appropriate
because then selected areas cannot be mistaken for labeled regions.
Once a segmentation tool is activated, certain actions can be performed in one of the viewer windows
using the mouse. The operation of most of the tools can be modified by pressing the Ctrl or the Shift
key. Ctrl typically deselects voxels instead of selecting them, while Shift adds voxels to the selection
instead of replacing it. The descriptions of the individual tools provide more details.
Pick & Move
This tools does two things. First, it lets you select a connected region assigned to one particular
material by clicking on an image voxel with the left mouse button. If the select all toggle is active,
all voxels belonging to the same material as the clicked voxel will be selected, either in 3D or in the
current slice only, depending on the value of the 3D toggle. If the Ctrl key is held down, voxels will
be deselected.
If the mouse is over an already selected pixel, the mouse cursor takes on the shape of a hand. Then the
tool lets you translate the current selection. By pressing down the Shift key you can rotate the current
selection. However, note that this might give strange results for pixels with an aspect ratio different
from one.
When All slices is checked, your selection will apply to all slices, not just the current slice. Currently,
in 3D mode no undo is available. Therefore, be careful when activating All slices. Usually, it is
advisable to deactivate the toggle again after completing a particular 3D operation.
Brush
If this tool is activated, you can select regions by painting voxels with the left mouse held down. The
size of the brush can be modified via a slider in the tools control panel. For common smaller sizes
dedicated push buttons are provided. Note that the size is specified in screen pixels, not in image
Segmentation Editor
799
pixels. If the center of an image pixel is covered by the brush, that pixel is selected. If the Ctrl key is
held down or if the middle mouse button is used, pixels are deselected instead of being selected.
It is also possible to fence an area defined with line segments by pressing Alt, and clicking successively
to points with the left mouse button (holding down the Alt key all the time). Successive points will be
connected with straight line segments. To finish interaction, release the Alt key and click a last time.
The contour is then closed, and the lines traced over with the brush.
The right mouse button is a flood fill tool. For example, you may surround a region in the image by
drawing along its border and then click into the middle of the currently unselected interior part to fill
it. Again the Ctrl key inverts the operation, i.e., it deselects connected parts of the selection.
If the Limited range only option is selected, the brush will paint only pixels whose values fall between
those in the range slider.
The Square brush option will paint, as the name suggests, a square region instead of the default circular
region. All of the other options will work with the square brush if they are selected, like the limited
range, etc.
Lasso
The Lasso lets you define an area by generating a closed contour curve. Usually, if the freehand button
is selected, you draw such a curve freehand with the left mouse button pressed, but it is also possible
to fence an area with line segments by pressing Alt, and clicking successively to points with the left
mouse button (holding down the Alt key all the time). Successive points will be connected with straight
line segments. To finish interaction, release the Alt key and click a last time. The contour is then closed
and filled automatically.
When the auto trace option is enabled (this is the default), the line segments are automatically fitted
to image edges. Click with the left mouse button to define a starting point. Dragging the mouse after
releasing the button a contour curve automatically fitted to the closest image edge is drawn. Further
mouse clicks mark fixed points on the contour. Contour parts drawn before the latest mouse click
remain in place. Close the contour by clicking with the middle mouse button.
The underlying algorithm called intelligent scissors works by finding the shortest path in a cost matrix
which is computed from the images gradient image. If the option trace edges is switched off, then
the image itself is interpreted as a cost matrix. Disabling this option is useful for images where object
boundaries already appear as isolated bright lines.
If the ellipse or rectangle buttons are selected then, the lasso tool can be used to select an elliptic or
rectangular regions respectively. However, it is no longer possible to use the auto trace option.
Magic Wand
This tool performs a so-called region growing either in 2D or in 3D, depending on whether the 3D
toggle is activated or not. Clicking with the left mouse button on a voxel selects the largest connected
area that contains the voxel itself and all voxels with gray values lying inside a user-defined range.
Voxels considered as connected are those sharing at least a face (6-connectivity in 3D).
800
The range can be specified via two spin boxes shown in the tools control panel. The values of the
spin boxes either define absolute gray values or values relative to the gray value of the seed pixel,
depending on whether the absolute values toggle is activated or not. If necessary, the range will be
automatically modified so that it the contains the seed voxel. It is possible to modify the range even
after the seed voxel has been selected. For convenience, the lower threshold can be quickly modified
by clicking the middle mouse button (or shift-clicking the right mouse button) and moving the mouse
horizontally. Likewise, the upper threshold can be quickly modified by clicking the right mouse button
and moving the mouse horizontally (virtual slider mode). However, note that in 3D mode the selection
is not updated on-the-fly while modifying the thresholds. Instead, it is updated once after releasing the
mouse.
The same material only toggle restricts the search to voxels which are assigned to the same material as
the seed voxel. For example, if the seed voxel belongs to Exterior, voxels which are already assigned
to different materials will not be selected. This is useful to restrict the selection to certain parts of the
image. Paths out of a region of interest can be obstructed using a blocker region.
If the fill interior toggle is set, holes inside the selected region will be filled automatically. This has the
same effect as pressing the f key afterwards, which also fills the current selection. Automatic filling is
only done in 2D mode, but not in 3D mode.
Finally, the draw limit line button lets you specify additional barriers for 2D region growing. After
pressing this button you can draw arbitrary polylines in the viewer window. Voxels covered by such a
limit line will not be considered for region growing. Instead of pressing the limit line button you can
also press the Ctrl key to temporarily enter the limit line mode. Existing limit lines can be deleted by
clicking on them with the Ctrl key being pressed.
Note that all seed points together with the corresponding range values and limit lines are stored in the
parameter section of the label field. This makes it possible to easily correct a selection at a later time.
When All slices is checked, your selection will apply to all slices, not just the current slice. Currently, in
3D mode no undo is available. Therefore, be careful when activating all slices. Usually, it is advisable
to deactivate the toggle again after completing a particular 3D operation.
PropagatingContour
This tool is a fast Active Contour. From a number of specified seed points a boundary front evolves.
It computes the position of the front at all times up to the stop time. A slider and a text box allow
the user select the appropriate front after pressing the initialization button. There are three buttons:
Menu pops up the parameter menu, Clear removes the current seed points (hot-key T), and Init starts
the computation (hot-key B).
Blowtool
When you click with the left mouse button on a voxel and drag the mouse without releasing the button,
an initially circle-shaped contour blows up. The greater the distance from the initial position of the
mouse click, the more the contour grows. The contour is designed to grow in areas with homogeneous
gray values and to stop where gray values change abruptly, i.e. at image edges.
Segmentation Editor
801
The tolerance field in the option panel controls how sharp the image edge has to be in order to stop the
contour from growing at each contour point. The smaller the tolerance, the sharper the image edge has
to be. If the tolerance is large, the contour will even stop at weak edges. After you release the mouse
button, the area within the contour will be marked.
Before the computation, the image is smoothed using a Gaussian smoothing filter. You can change the
width of the filter within ranges of 1 (no smoothing) to 8 (very broad smoothing). The default value is
4.
Crosshair
The crosshair tool is only active in 4-viewer mode. It simply displays a crosshair in all three orthogonal
viewers. The colors denote the different directions (red=x-axis, green=y-axis, blue=z-axis). Clicking
into one of the viewers moves the crosshair and simultaneously updates the two other viewers so that
the crosshairs center is visible in all three viewers.
33.14.6
Selection Filters
Under the Selection button of the menu bar several filters for modifying the current selection are
provided. These include simple morphological operations, smoothing filters, and interpolation tools.
Grow: This filter performs a morphological dilatation of the current selection, i.e., the selection
is made bigger by one pixel in every direction. The filter can be applied to the current slice only
(shortcut is Ctrl +), to all slices (orientation is defined by the active viewer), or to the whole
volume.
Shrink: This filter performs a morphological erosion of the current selection, i.e., the selection
is made smaller by one pixel in every direction. The filter can be applied to the current slice
only (shortcut is Ctrl -), to all slices (orientation is defined by the active viewer), or to the whole
volume.
Fill: This filter fills the current selection, i.e., it closes all holes in it. The filter can be applied
to the current slice only (shortcut is key F), or to all slices (orientation is defined by the active
viewer).
Smooth: This filter smooths the current selection. Smoothing works by applying a Gauss filter
to the binary selection image and then reselecting all pixels with an intensity bigger than 0.5.
Usually the filter is applied to a selection computed by the threshold filter or by the magic wand
tool. The shortcut for this filter is Ctrl M.
Invert: This filter inverts the current selection, i.e., selected voxels are deselected, while unselected voxels are selected. The filter can be applied in the current slice only (shortcut is key I),
or in the whole volume.
Active Contour...: This filter belongs to a family of powerful tools for semi-automatic segmentation called Active Contour. From a user-defined initial selection the contour propagates
802
automatically according to forces within the image. Use the Stop button of the Avizo main
window to stop the process when the desired selection has been computed.
Snakes...: This filter automatically fits the contour of a selected region to the edges of the image.
Edges are regions with a high contrast.
An additional dialog is opened, which allows you to copy the selection from the current slice
into the next or previous slice (up and down arrows). After copying, the snakes algorithm tries
to adjust the contour to the gray values in the new slice.
Clicking on Adjust runs the same algorithm on the current selection in the current slice. This is
especially useful to readjust after a manual correction.
If Extrapolate is switched on, the selection is not only copied to the next slice but extrapolated
by taking into account selections in the two previous slices.
If 3DInfo is switched on, a modified snakes algorithm is used which gives better results in the
case of relatively equal voxel sizes in all three directions.
Relax smooths the contour of the current selection.
Threshold...: Select voxels by threshold segmentation. In the additional dialog, a minimal and
a maximal image intensity can be specified. When you click on OK, all voxels falling into the
interval are selected. If the same material only option is activated, only voxels assigned to the
current material are selected. If the 3D option is active, the operation is performed in the whole
volume, otherwise it is done in the current slice of the active viewer.
Make Ellipse: Pressing this button causes the selected area to be replaced by an ellipse that fits
the original selection as well as possible. The filter operates on the current slice of the active
viewer.
Interpolate: This button interpolates the selection between all slices where areas have been
selected manually. Pressing the button again after performing corrections in certain slices will
interpolate the selections between all slices where changes have been made. For example, suppose you have selected an object in slice 1 and in slice 10. Pressing the Interpolate button
automatically computes a selection in slices 2...9. You may then modify the selection in slice
5, e.g., using the Brush tool. Pressing Interpolate again now interpolates the selection in slices
2...4 and 6...9. The shortcut for this filter is Ctrl I.
Wrap: This filter also interpolates the selection. However, a different algorithm based on scattered data interpolation with radial basis functions is applied. The filter always operates in 3D.
In contrast to the previous filter, it is possible to start from slices with different orientations, e.g.,
after selecting slices in each spatial direction (xy, xz, yz) this tool can be used to compute an
interpolating selection which wraps up the object whose skeleton is given by the slices.
Note: Initially no two successive slices with the same orientation must be labeled. Otherwise,
an error message is displayed. The tool may take a few seconds to complete its operation. The
shortcut for this filter is Ctrl W.
Segmentation Editor
803
33.14.6.1
Active Contours
Active contour models are powerful tools for semi-automatic segmentation. An initial contour moves
automatically according to image forces such that it separates two different materials.
The movement is governed by parameters that the user must adjust to suit his image data.
There exist two different Active Contour tools. The Propagating Contour tool computes the shape of
the contour at all times up to the Stop Time value. The contour starts evolving from one or more seed
points and stops at edges found in the image. After the computation the user can choose any time
parameter in the range the separates the materials best.
The Active Contour filter takes any initial shape (which may only be a single seed point) and expands
this shape until a material boundary is found, where the contour stops. Additionally, this tool takes
into account the curvature to generate smoother shapes and avoid leaking through small holes.
The velocity of the active contour is computed from the original image data as well as from the gradient
image. While the image data provides the image intensity values, the gradient image contains the
edge information. In the Segmentation menu, the user can choose a gradient image. By default, the
Segmentation Editor computes a gradient image from the currently chosen gray image. Alternatively,
the user can provide the gradient image and select it in the Segmentation menu.
If the active contour does not advance, you have to change the parameters. In particular, lower
the values for edge and image sensitivity.
Note that often the results can be improved by preprocessing the image data, for instance by presmoothing. Furthermore, better results are achieved for isotropic data, i.e., large slice distances can be
disadvantageous.
Ports
Stop Time
The Stop Time port limits the movement of the active contour to a certain range. If the region has
not been fully segmented, this parameter must be increased.
Edge Sensitivity
The Edge Sensitivity value governs the dependence on the the gradient image, i.e., when the contour
stops. If this value is too small, the algorithm might run over edges. If it is too large, there might be
no movement at all. If the contour does not move at all, this value should be decreased.
Image Intensity Weight
The advancement of the contour can also depend on the image intensity (gray value). This parameter
controls how strong the dependence is. The speed function is multiplied by a Gaussian function.
804
The width of this Gaussian is the reciprocal of the value of this port (such that a value of 0 means
no influence at all) and the mean intensity value if computed as the average over all seed point or
over the average of the selection, respectively. Hence, the more different the image intensity of a
voxel is from the starting points or region, the slower the progress is.
Curvature
The Curvature parameter controls the regularity of the contour. A value close to 1 leads to a smooth
contour. Set to 1, the algorithm works as a filter that refines an existing selection in order to snap to
edges in the image. If this parameter is set to 0, the algorithm is merely expanding until stopped by
an edge without enforcing any smoothness. Setting the curvature to a value different from 1 can be
used to make a small seed selection expand until stopped by an edge. The curvature regularization
is not available for the propagating contour tool.
Attractor
The Attractor force parameter specifies the strength of the edge attraction. It allows the tool to be
used as a filter that refines an initial approximation because it attracts the contour to the nearest
edges in the image. Mostly, a value of 1 works best. To switch off the edge attraction, set the value
to 0.
Mode
The Mode port lets you chose whether the contour grows in 2D (slice), or 3D (3D volume).
Practical hints:
In all cases, apply these tools to smoothed data only. No smoothing is built in to allow the user to
choose the smoothing filter. For instance, Gaussian smoothing is an appropriate preprocessing.
It is recommendable to use the fast PropagatingContour Tool first and then refine the selection
with the ActiveContour Filter.
In cases where not all the targeted region is selected by the active contour or it leaks out before,
the user can proceed step by step. First select a partial region and then segment the remaining
region starting from another seed point or selection.
At the beginning, certainly a bit of probing is necessary until you find the best set of parameters
for your kind of data.
33.14.7
Label Filters
Under the Segmentation button of the menu bar several filters for modifying the current labeling are
provided. These filters operate directly on the labels. They do not take the current selection into
account.
Segmentation Editor
805
Fill holes: This filter removes islands of arbitrary size in the current material, i.e., all pixels
completely surrounded by the current material are also assigned to this material (short cut is
Shift-H for the current slice). The filter can be applied to the current slice in the active viewer,
or to all slices.
Remove islands...: This filter removes islands in or between regions, depending on the size
and percentage values that are set in the filters dialog. An island is a connected area of voxels
containing a number of voxels less than or equal to the size value specified in the dialog. If
an island is encountered, the percentages of the surrounding regions with respect to the total
number of voxels adjacent to the island are calculated and compared with the percentage
threshold. The island is assigned to the region with the highest percentage value greater than
or equal to percentage. If no region exceeds the percentage threshold, the island remains
untouched. Note that the percentage value must be between 0.0 and 1.0. With the mode buttons
you can control whether the filter works on the current slice, on all slices, or on the 3D volume.
The difference between the two latter cases is that in 3D mode the filter searches for true 3D
connected regions. Note that a long thin structure like a blood vessel can be a very small region
in each slice, but has a rather large volume in 3D. This filter is invoked by pressing the Remove
button. Pressing the Select button performs the same computations as before. However, the
islands are not yet removed but are only selected. This is useful in order to preview the effect of
the filter and to find optimal size and percentage values.
Smooth labels...: This is a modified Gauss filter that smoothes the region boundaries, and
therefore slightly changes the labeling. In 3D mode, additionally probabilities of voxels
belonging to regions are computed and assigned to voxels. The probability is one for voxels
in the interior of a region and decreases towards the region boundary. Voxels near region
boundaries are also assigned probabilities with respect to neighboring regions. The probability
information is used in other modules - in particular in the SurfaceGen module - in order to make
region boundaries appear smooth, otherwise these may be displayed as zigzag lines. The size
option allows you to enter the size of the filter mask which is a square with size x size pixels.
The smoothing effect increases with the mask size, but computation time is higher for bigger
masks. The 2D button lets you start the smoothing operation on the present slice, the 3D button
lets you start a 3D smoothing on the whole data volume.
33.14.8
Key Bindings
Important tools of the image segmentation editor can be accessed via hot keys. These hot keys are
summarized below:
806
Segmentation Editor
807
33.15
Simplification Editor
This editor can be used to reduce the number of triangles of a surface. In particular, the output of
the SurfaceGen module has to be processed in this way before a tetrahedral patient model can be
generated. Surface simplification is done by means of an edge collapsing algorithm. Edges of the
original surface are successively reduced to points. The shape of the original surface is preserved by
minimizing a certain error criterion. Special care is taken to prevent the triangles of the simplified
surface from intersecting each other. However, in some cases intersections can still occur. Therefore,
the resulting surface should be checked for intersections using the surface editor.
Ports
Simplify This port provides three text fields for controlling some parameters of the simplification
process. Field faces determines the desired number of triangles of the simplified surface. You may
simplify the surface in multiple steps. However, somewhat more accurate results are obtained if the
simplification is performed in a single step. When the simplification process is finished, a check is
made whether the surface contains duplicated triangles. Such triangles are removed automatically.
Therefore the total number of triangles of the reduced surface will usually be somewhat less than
the value specified in faces.
The second field, max dist, defines a maximum edge length for the triangles of the simplified surface.
Usually, the default value of 3 cm should be suitable, but you can try to modify this value if the
reduced surface still contains intersections.
The third field, min dist, defines a minimum edge length. Shorter edges are contracted if button
Contract Edges is pressed (see below).
808
Options If the toggle preserve slice structure is set, edges of exterior triangles of the surface are
treated in a special way, so that the slice structure of the original voxel grid is preserved.
If toggle fast is set, a less extensive intersection test strategy is selected. Surface simplification will
run faster, but there is a higher probability that intersecting triangles will occur (see explanation of
command setIntersectionTestStrategy below).
If toggle create level-of-detail is set, all intermediate steps (edge-collapse) of the simplification
process are stored in the surface in such a way that they can rapidly be restored. To this end, the
surface receives a port Level of detail, where the desired level can be set. Note that the port will not
be created if during simplification errors occur. In this case a message in the console will be printed.
Action Button Simplify starts surface simplification. The simplification process will take several
minutes. You may interrupt it by clicking the stop button of the progress bar.
Button Flip Edges automatically flips some edges of a surface if this improves the triangle quality.
The Quality is defined as the ratio of the circumscribed circle and the inscribed circle of a triangle.
The smaller this ratio the higher the quality. Again, duplicated triangles are removed automatically
after this operation.
Button Contract Edges contracts all edges shorter than the value defined at field min dist (see above).
Commands
Simplifier setRadiusRatio <value>
This command defines a quality threshold for the edge flipping algorithm. Edges are flipped only if
the radius ratio of a triangle exceeds the given value. By default, a radius ratio of 20 is used.
Simplifier smooth <nSteps> <lambda>
This commands shifts the vertices of the surface so that it gets smoother. The value for lambda
should be in the range of 0...1. This option is experimental and should not be used for routine work.
Simplifier setIntersectionTestStrategy <mode>
This command lets you choose between different intersection test strategies. mode is a three-digit
number, for example 100. The digits specify the strategy used for testing modified triangles against
existing edges, for testing modified edges against existing triangles, and for testing planar intersections. The allowed values are 0-3 for the first, 0-2 for the second, and 0-1 for the last digit. Larger
values correspond to more extensive tests which of course also require more computing time. By
default, a value of 211 is used. Modes 111 or 101 are faster but more likely to produce intersecting
triangles.
Simplifier setFactError <value>
In surface simplification the maximal edge length and the maximal error (estimated distance between original and simplified surface) can be controlled separately. The maximal error is computed
by multiplying the maximal edge length by a certain factor factError. The value of factError can
be set using command setFactError. The default value is 1.
Simplification Editor
809
Simplifier getFactError
This command returns the current value of factError.
33.16
Surface Editor
The surface editor allows you to modify a triangular surface in several ways, e.g., to remove or refine
triangles, to flip edges or move points, or to set boundary ids for individual triangles. It also allows
you to check a surface for intersecting triangles or for falsely oriented patches.
To open a surface editor, in the Pool select the surface object to edit, then click on the Surface Editor
button in the Properties Area. The surface editor places its GUI controls directly into the main 3D
viewer window. This makes interactive surface editing very comfortable. In particular, the editor adds
a Surface menu to the main menu bar, as well as a toolbar. The user interface of the editor is depicted
in Figure 33.28. To close a surface editor, click again on the surface editor button in the Properties
Area. Note that only one surface editor can be active at a time. Activating a second editor causes the
first one to be closed.
To save your work, you can use the following entries of the File menu:
Save: Saves the surface under the same file name as it has been saved under before. This option
allows you to quickly save intermediate results during complex edit tasks.
Save As...: Pops up the file dialog and saves the surface under a user-chosen file name.
The surface editor works in conjunction with a SurfaceView module. If such a module is not already
connected to the surface, an instance of it will be created automatically when the editor is activated.
However, most settings of the SurfaceView module can be controlled directly via menu entries of the
editor itself. Therefore there is no need to have the SurfaceView module permanently selected.
A basic concept of the surface editor are the notions of visible and highlighted triangles respectively.
Highlighted triangles are drawn in red wireframe. Many tools operate not on the surface as a whole, but
only on highlighted triangles. For example, if you want to refine parts of the surface, youll first have
to highlight the involved triangles before choosing Refine faces from the Surface/Edit menu. Besides
the highlight buffer, there is another buffer determining which triangles will actually be drawn. This
allows you to cut away parts of a complex surface. Highlighted triangles can be added to the visible
buffer or removed from it, just as in an ordinary SurfaceView module. Note that hiding a triangle
doesnt mean to delete it.
Triangles can be highlighted in a number of ways. On the one hand, there are interactive tools allowing
you to select triangles using some kind of mouse interaction. For example, triangles can be picked
individually or a contour can be drawn in the 3D viewer. Buttons representing the different mouse
tools are listed in a tool bar. Clicking on a button causes the corresponding tool to be activated. On the
810
Surface Editor
811
other hand, triangles can be highlighted using automatic selectors. Selectors are listed in the leftmost
combo box of the surface editors selector tool bar. There are selectors for highlighting triangles
depending on their inner and outer region, for highlighting triangles with a certain boundary id or
belonging to certain patch, and many more.
In the following different elements of the surface editor will be described in detail, namely
menu entries
selectors including surface tests
mouse tools for selecting triangles and editing the surface
surface boundaries editor
33.16.1
Menu Entries
The surface editors Surface menu is is displayed inside the 3D viewer window while the editor is
active. Four submenus are accessible from this menu: Edit, View, Buffer, and Tests. Each of these is
described separately below.
33.16.1.1
Edit Menu
Undo: Undoes the last edit operation (edge flip, edge collapse, edge bisection, vertex movement). Selection and highlight changes can be undone as well. The size of the undo buffer is
limited to 100 entries.
Delete highlighted faces: Permanently removes the highlighted triangles from the surface.
Remove coplanar faces: Permanently removes coplanar triangles, i.e., triangles with the same
three vertices, from the surface. The inner region and outer region id of the remaining triangle
is updated appropriately.
Recompute connectivity: Recomputes the surfaces connectivity information, i.e., contours and
branching points. Connectivity information is optional. If it is present, contours can be displayed
using the ContourView module. In addition, recompute connectivity causes unused points of the
surface to be deleted.
Refine faces: Subdivides all highlighted triangles by bisecting their edges. Each refined triangle
is replaced by four new ones. In addition, adjacent non-highlighted triangles are split in two in
order to avoid dangling nodes.
Smooth faces: Smoothes all highlighted triangles by shifting their vertices. Each vertex is shifted
towards the average position of its neighbors. Special care is taken in the case of boundary
vertices, for which not all the neighbors are considered, but only those that are also on the
boundary. In this way sharp boundaries are preserved.
Flip edges...: Pops up a dialog allowing you to flip certain edges inside the highlighted part of
the surface. The edge flips are performed in order to improve the aspect ratio of the involved
triangles. An edge flip is only attempted if the aspect ratio of one of the two involved triangles
812
is worse than a user-specified value, and the crease angle between them is below a user-defined
threshold.
Reorder patches...: Pops up a dialog allowing you to rearrange the internal order of the surface
patches. Two different patches can be selected and then swapped. This operation is useful for
certain applications where two different surfaces are required to have the same patch structure.
Set boundary ids...: Pops up a dialog allowing you to edit the surfaces boundary ids. The dialog
permits you to define new boundary ids or to change existing ones (including the preferred
colors). Highlighted triangles can be assigned a new boundary id using the dialogs set button.
See the surface boundaries editor help page for more details.
Fix intersections...: Pops up a dialog for an automatic repair of intersecting triangles. The total
number and the number of fixed intersections will be shown in the console window.
Fix small dihedral angles...: Pops up a dialog for an automatic repair of small dihedral angles.
The dialog offers two different repair modes: vertex smoothing, and a combination of edge flips
and vertex shifts. The dialog lets you define a lower bound for the dihedral angle.
Fix tetra quality...: This tool provides an automatic repair of configurations which might induce
large tetrahedron aspect ratios. It pops up a dialog where you can specify an upper bound and
an attempted value for the tetrahedron aspect ratio.
Prepare Tetragen...: This tool may be useful if you want to create a tetrahedral volume mesh
from the surface. It combines the Flip edges, Fix small dihedral angles, and Fix tetra quality
tools. You can specify a lower bound and an attempted value for the tetrahedron aspect ratio.
Fill Hole...: You have to run the hole test of the surface editor before this menu entry pops up
a dialog with a selection of hole fill algorithms. By pressing the fill button of the dialog the
currently displayed hole is triangulated using the selected hole fill algorithm.
Magic wand settings...: This menu entry pops up a dialog alowing you to change parameters of
the magic wand tool. Details for that are described below.
33.16.1.2
View Menu
This menu allows you to change certain settings of the SurfaceView module used by the surface editor.
The settings affect the draw style and the color mode used for rendering the surface. Possible draw
styles are outlined, shaded, lines, points, and transparent. Possible color modes are normal, mixed,
twisted, and boundary ids. In the first three modes colors are chosen according to the material ids assigned to the surfaces patches. In the last mode colors are chosen according to the triangles boundary
ids.
33.16.1.3
Buffer Menu
This menu contains several entries for modifying the editors highlight and view buffers. The buffers
determine whether a triangle is highlighted or whether it is visible in a normal fashion. Both buffers
are independent from each other. They can be stored in an internal backup buffer using the menu
Surface Editor
813
entries copy highlights and copy buffer respectively. Once one of the buffers has been copied it can be
restored using paste highlights or paste buffer.
33.16.1.4
Tests Menu
This menu lists certain test operations which can be performed in order to check the quality and consistency of the surface. Internally, the tests are considered as selectors because they cause certain
triangles of the surface to be highlighted. Therefore, the test are described in detail in the selectors
section.
33.16.2
Selectors
This section describes tools for automatically highlighting certain parts of the surface. The selectors
are listed in a combo box on the very left just beneath the main toolbar. Most selectors provide some
additional controls which are displayed right beside this combo box.
Materials: Just as in a SurfaceView module, this selector allows you to highlight parts of the
surface separating two particular regions from each other. The two regions are specified in two
additional combo boxes which are shown once the selector is activated.
Boundary ids: Highlights all triangles with a particular boundary id. The boundary ids defined
in the surface are listed in a separate combo box. Boundary ids can be modified using the Set
boundary ids... option of the Surface/Edit menu.
Patches: Highlights all triangles belonging to a particular patch of the surface. The different
patches can be selected using a slider displayed right beside the selector combo box. A patch is
a group of triangles separating the same two regions and having the same boundary id.
Intersection test: Performs an intersection test and highlights intersecting triangles. The compute
button actually initiates the test, while the back and forward buttons allow you to cycle through
the list of intersecting faces. The total number of intersections is printed in the console window.
Intersections can be repaired automatically using the Fix intersections tool from the Surface/Edit
menu, or manually using the edit tools described below (edge flip, edge collapse, edge bisection,
vertex movement).
Closedness test: Performs a closedness test and highlights those triangles where the test fails.
This test should only be applied to manifold surfaces.
Orientation test: Performs an orientation test and highlights falsely oriented triangles. You
should have removed all intersections before applying this check. For simple configurations the
wrong triangles are removed automatically. The number of inconsistently oriented triangles and
the number of removed triangles are printed in the console window. If the automatic method
could not remove all incorrect orientations, you can proceed as in the case of intersections and
try to repair them manually. Important: A prerequisite for the orientation test is that the outer
814
triangles of the surface be assigned to material Exterior. If the surface does not contain such
a material or if the assignment to Exterior is not correct, the test will falsely report orientation
errors.
Aspect Ratio, Dihedral Angle, and Tetra Quality sort all surface triangles according to different
quality measures. The aspect ratio is the ratio of the radii of the circumcircle and the incircle
of a triangle. The largest aspect ratio should be below 20 (better 10). The dihedral angle is
the angle between two adjacent triangles at their common edge. The smallest dihedral angle
should be above 5 degrees (better 10). Tetra quality may be useful if you want to create a
tetrahedral volume mesh from the surface. For each surface triangle the aspect ratios of the
tetrahedra which will probably be created for that triangle are calculated. The largest tetrahedral
aspect ratio should be below 50 (better 25). The worst triangle according to the selected quality
measure is displayed, and the worst quality is printed in the console window. Using the back and
forward buttons right beside the selector combo box you can cycle through all other triangles and
edit the surface if necessary. In the Surface/Edit menu, there are automatic tools for improving
all of the quality measures: Flip edges for the triangle aspect ratio, Fix small dihedral angles for
the dihedral angle, and Fix tetra quality for the tetrahedron quality.
Non-manifold test: This test detects non-manifolds on surfaces and displays every non-manifold
location including the incident triangles.
Holes test: This test detects holes on triangular meshes.
33.16.3
Tools
This section describes interactive tools for selecting triangles and for performing simple edit operations. Only one such tool can be active at a time. The active tool determines what effect left mouse
button clicks have. For each tool there is a separate button contained in the editors tool bar. Independent from the active mouse tool, edges and triangles can be picked using the middle mouse button.
This causes the ids of the picked triangles, edges, and points to be printed on the screen.
Add tool [A]:
Adds highlighted faces to the buffer.
Remove tool [R]:
Removes highlighted faces from the buffer.
Clear tool:
Clears highlighted faces or the buffer.
Surface Editor
815
816
triangles. Right-click to bring up a brush configuration dialog which will allow you to
specify the brush size and whether you want to select visible triangles only.
Pick patches or triangle groups tool:
This tool allows you to select patches or triangle groups. Clicking on a triangle will select
all triangles in the same patch. Control-click to deselect the triangles.
Flip tool [F]:
Flips an edge of the surface. Only edges with two adjacent triangles can be flipped, but no
boundary edges. Flipping the edge once again restores the original state.
Collapse tool [C]:
Contracts an edge, i.e., moves one vertex of an edge onto the other. For non-boundary edges
the operation will reduce the number of triangles by two. The vertex of the edge located more
closely to the mouse position will be retained.
Translate tool [T]:
Allows you to pick a vertex of the surface and to translate it. At the picked vertex a point dragger
will be shown. The dragger can then be picked and translated. Alternatively another point on
the surface can be shift-clicked while the point dragger is shown. This moves the dragger to the
new position.
33.16.4
33.16.4.1
Description
The dialog permits you to define new boundary ids or to change existing ones (including the preferred
colors). Highlighted triangles can be assigned a new boundary id using the dialogs set button.
33.16.4.2
Abaqus Input
Abaqus Input file format only supports boundaries of type Surface or Surface Environment.
Boundaries with unsupported type will be seen as Surface boundaries.
Surface Editor
817
Ansys Input
Ansys Input file format only supports boundaries of type Surface. All others boundaries types will
be set to Surface.
Nastran Bulk Data
Nastran Bulk Data file format does not support boundaries. All defined boundaries will be seen as
shell elements.
CGNS
CGNS file format supports the following boundaries types:
818
Axis
Degenerate Line
Degenerate Point
Dirichlet
Extrapolate
Far Field
General
Velocity Inlet
Inflow Subsonic
Inflow Supersonic
Neumann
Outflow
Outflow Subsonic
Outflow Supersonic
Symmetry
Symmetry Polar
Tunnel Inflow
Tunnel Outflow
Wall
Wall Invis Cid
Wall Viscous
Wall Viscous Heat Flux
Wall Viscous Isothermal
Axis
Fan
Interface
Interior
Mass Flow Inlet
Outflow
Parent
Periodic
Periodic Shadow
Pressure Far Field
Pressure Inlet
Pressure Outlet
Symmetry
Velocity Inlet
Wall
Surface Editor
819
IDEAS
Like Ensight, IDEAS does not support any boundary type. All boundaries will have a None type.
Tecplot
Tecplot file format supports the following boundaries types:
820
Axis
Contact
Degenerate Line
Degenerate Point
Dirichlet
Extrapolate
Fan
Far Field
General
Inflow Subsonic
Inflow Supersonic
Interface
Interior
Mass Flow Inlet
Neumann
Outflow
Outflow Subsonic
Outflow Supersonic
Parent
Periodic
Periodic Shadow
Pressure Far Field
Pressure Inlet
Pressure Outlet
Surface
Surface Environment
Symmetry
Symmetry Polar
Tunnel Inflow
Tunnel Outflow
Velocity Inlet
Wall
Wall Invis Cid
Wall Viscous
Wall Viscous Heat Flux
Wall Viscous Isothermal
33.17
This editor allows creating paths on surfaces. Paths can be useful to cut surfaces, define regions or
features of a surface. In order to create a surface path editor, first create a surface path set by selecting
a surface and choosing SurfacePathSet from the context menu. Then click the surface path editor
button in the properties area. A dialog appears to choose the type of editor: The GenericPathEditor
allows defining paths arbitrarily across the mesh, while the VertexPathEditor allows defining paths
only along mesh edges.
Note that the following operations can only be applied if the editor is selected in the object pool. This
allows interacting with the surface as usual when deselecting the editor.
The basic operations are:
Creating a path: Press Shift and left-click on the surface in interaction mode. A path can only
be created if no other path is selected. Paths can be deselected by left-clicking on the surface.
Adding a node to a selected path: Press Shift and left-click on the surface. A node can only be
added to a path if it is the only selected path. The node will always be added after the last added
node.
Inserting a node into a selected path: Press I and left-click on the path at the point where
you want to insert the node. The path must be the only selected path.
Selecting a path: Left-click on the path.
Selecting a node: Left-click on the node. A path must be selected to select one of its nodes.
Selecting more than one path: Press S and left-click on the next path you also want to select.
Deselecting a selected path: Press S and left-click on the path.
Moving a selected node: Press Shift and left-click on the point of the surface you want to move
the node to.
Delete selected items : Press D or the Delete button. If a node is selected, it will be deleted.
Else all selected paths will be deleted.
821
Ports
Info
This port informs the user about a selected path, if a single path is selected. If no path yet exists,
the user is also informed how to create a new path.
Advanced options
By default, advanced options are hidden. They will be displayed if the show toggle is checked.
Connector
Select a strategy to connect two points. Several different connectors exist. Choose one from the list
below.
Dijkstra: connects two nodes using nodes computed with Dijkstras shortest path algorithm.
The path will therefore only cover edges and vertices of the surface. Note that if a surface
scalar field is connected to the surface, the Dijkstra connector will use the edge weights
provided by this scalar field instead of the edge lengths.
TriangleDijkstra: connects two nodes using nodes computed with Dijkstras shortest path
algorithm. In contrast to the Dijkstra connector, the intermediate nodes generated by this
connector lie in the middle of the surface edges. The segments cross the triangles, hence the
name TriangleDijkstra.
ApproxGeodesic: an approximation of the Geodesic algorithm (computes the shortest
geodesic path between two points) that runs a lot faster.
P2PGeodesic: Geodesic algorithm (computes the shortest geodesic path between two
points).
LocallyShortest: computes a geodesic between the two points. However, it might not be the
shortest one, but only the locally shortest one.
PlaneCut: uses the two triangle normals of the points that are to be connected to compute
a plane. This plane is intersected with the surface and the shortest connection of the points
within this intersection is taken as path. The plane is chosen such that the angle between the
two surface normals and the plane are equal.
NonManifold: computes path along non-manifold edges of surface. A path can only be
computed if the control points belong to the same non-manifold.
Control point type
822
When a new control point is created by Shift-clicking onto the surface, the control point will be
of the type that is selected here. If Vertex is chosen, then the control point will be created on the
nearest vertex on the surface, for Edge the nearest point on the closest edge will be chosen.
Action
Close: Connects the start and end node of the active path. As there is no last node, nodes cannot be
appended to a closed path.
Open: If the selected path is closed it is either opened on the selected node or, if no node is selected,
it is opened at the node that was the last node before the path was closed. If the selected path is
already open and a node in this path is selected, the path is split in two at this node.
Reverse: Reverses the active path. After reversing a path, new nodes will be appended at the
beginning and not at the end of the reversed path.
Path operations (2)
Merge: Merge tries to connect endpoints of selected paths and make them one path.
Split at Intersections: If two paths not only intersect in one point, but in a line segment, fix removes
the overlapping part of one of the paths and splits them into two at these points. In the resulting
path set, all paths only intersect in points.
Entangle: Computes a node for each point of intersection of line segments in the path set. If two
nodes of the paths are similar or equal in coordinate and type, they are replaced by a single node.
Entangled nodes can be moved like normal nodes, but when moving them, all paths that belong to
it are changed as well.
Untangle: Opposite to Entangle. If a node occurs in more than one path it is duplicated once for
each path.
Surface operations
Import Surface Contours: Creates paths along the boundary of surface patches.
Patchify: Decomposes surface into several patches if surface paths completely surround regions
823
on the surface. If the path nodes do not lie on vertices only, this operation cannot be applied
directly. Using the Snap to edges button, the user can convert the path into a vertex path for which
patchification can be applied.
Path selection
Select and deselect all paths. Since most operations work on selected paths only, these buttons
enable the user to quickly select all paths. Deselection is equally important.
Select path
Select a specific path by setting the respective path id. A value of -1 deselects all paths.
Select CP
Select a specific control point of the selected path by setting the control point id. A value of -1
deselects all control points.
Path operations (3)
Smooth path: This option smooths a path, whereby the end nodes will be fixed.
Snap path to edges: Snap transforms nodes that are near another node type, i.e. edge or vertex,
into this type. If, for example, a triangle-node is very close to an edge, then it is moved to the
closest point on the edge and becomes an edge-node. Here, very close means, the difference of the
coordinates of the nodes is smaller than epsilon, where the epsilon can be defined using the Snap
epsilon port. A triangle-node can become an edge or vertex node and an edge-node can become
a vertex-node but not vice versa. Snapping paths to vertex nodes is necessary to directly allow
patchification of the surface using the surface path.
Snap epsilon
Defines the epsilon for snapping nodes to their nearest edges or vertices.
Snap epsilon mode
When converting nodes to other types one can compare the absolute or relative coordinates. When
this port is set to world, the epsilon is interpreted as an absolute value and when snapping, worldcoordinates are compared. Else the snap-method compares barycentric coordinates.
824
33.18
Transform Editor
This editor allows you to add a transformation to a data set or modify an existing one. A transformation
may be a translation, rotation, and scaling, or a combination thereof. The transformation can be edited
interactively in the 3D viewer using different Open Inventor draggers.
The Transform Editor also lets you enter transformations numerically. This can be done by pressing
the Dialog... button which pops up the dialog shown in Figure 33.30.
The dialog provides text fields to specify the translation, rotation, and scaling of the object individually.
You can specify absolute values, or the object can also be translated, rotated, or scaled incrementally.
This is done by activating the tab panels Relative Local or Relative Global instead of the default
Absolute. The local and global tabs differ in the way that the translation, rotation, or scaling is applied,
namely after an existing transformation (local) or before it (global). An alternative way to modify the
transformation of a data object is to use the Tcl commands provided by SpatialData objects.
Display modules connected to a transformed data set will take the transformation into account automatically. Also many, but not all (!), compute modules interpret transformations. If you find a module
that does not operate as expected for a transformed data object, try to apply the transformation first
using the Apply transform button.
Most data file formats do not support transformations. Therefore, transformations are stored in Avizo
network scripts only. Keep this in mind when working with transformed data objects. It is always possible to query and re-apply a transformation using the Tcl commands getTransform and
Transform Editor
825
setTransform.
Ports
Manipulator
Lets you choose the Open Inventor dragger used to define the transformation in 3D. Make sure to
switch the viewer to interaction mode when using the draggers (press the arrow button in the upper
right corner of the viewer, or toggle between viewing mode and interaction mode using the ESC
key). Details of how to interact with the draggers can be found in the Open Inventor documentation.
The Dialog... button pops up the transform dialog described above.
Reset
This port allows you to reset the transformation matrix, or its translational, rotational, or scaling
components.
Action
This port allows you to undo the last change of the transformation matrix, or to redo the last undone
operation. In addition, transformations can be copied into an internal buffer, and afterwards pasted
into the editor again. This provides a convenient way to copy a transformation from one object to
another.
If the editor is invoked for an object derived from VertexSet, a button Apply Transform is shown.
This button allows you to apply the transformation to the vertices of the data object and to reset the
objects transformation matrix. This operation does not change the visual appearance of the object,
but it is required, for example, to export the transformed object into a file.
826
Chapter 34
The model colors editor allows you to control the rendered color for each region or boundary of
the model.
This capability can help you to understand your data more quickly and easily.
34.1.1
Overview
All regions and boundaries for the selected model are displayed in the left column: first all regions,
then the boundaries if any.
They are tagged respectively (Region) and (Boundary) to easily distinguish them.
The second column displays the current color. Click on a color to popup a new dialog allowing you to
select a color.
To save your changes, click the Apply button then close the dialog.
828
Chapter 35
This editor can be attached to IM6 images loaded with the Stay on disk option in order to calibrate
them by modifying the bounding box or the voxel size values.
The new values will be automatically saved in the IM6 file when clicking on the Ok button, so there
is no need to re-save the file to save the new calibration values.
To calibrate IM6 images loaded with the In memory option, you can use the ImageCrop Editor.
35.2
This editor allows you to set unit information for HxSpatialData objects.
For the moment, this editor can only be used on data to which a HxVisilog module is connected (unit
information is only used in the Visilog viewer).
Once the editor is connected to a data object, a port will be added to select one unit.
The default unit is set to pixel and only units inch, nm, m, mm, cm, m and pixel can be set.
These values are the same as in the old Visilog Calibration editor, which has been replaced by the
ImageCrop Editor to set voxel size values.
The unit will be set in the data parameters (in a Unit parameter), so this value can be saved when
saving the modified data.
Ports
Unit
This port displays a combobox in which you can select a unit for the edited data.
The unit symbol will be initialized with the value given in the Unit parameter of the data (default
value will be set to pixel if no such parameter is found).
Modified unit will be inserted/modified into the data parameters.
830
Chapter 36
Grid Editor
The Grid Editor allows you to analyze the quality of a tetrahedral grid according to different
quality measures and to semi-automatically improve the grid quality.
To activate the Grid Editor, press the Grid Editor button of a selected tetrahedral grid. A user interface
composed of different button controls (Figure 36.1) will appear in Avizos Properties Area. If you select some other Selector or Modifier, other ports might be shown. The editor works in conjunction with
the GridVolume module. If such a module is not already active, an instance of it will be automatically
created when the editor is invoked.
Tetrahedra can be distorted in different ways (see Figure 36.2):
Figure 36.1: Grid editor for improving the quality of tetrahedral grids.
832
Tetra Quality Selector: This tool selects tetrahedra according to different quality measures.
d is the determinant of the matrix composed of the vectors pointing from vertex 0 to the vertices
1, 2, and 3. The tetrahedron volume is 1/6 of the absolute value of d. d approaches zero if the
four vertices are nearly coplanar. d 0 detects tetrahedra with an inverted orientation, which
should normally not occur.
R is the ratio of the radii of an inscribed and a circumscribed sphere. R reaches its optimal
(maximal) value 1/3 for an equilateral tetrahedron. All types of distorted tetrahedra are detected
by a small value of R. Therefore R is taken as the quality measure for all modifiers of the Grid
Editor (see below). R shouldnt be smaller than approximately 1/10 of the optimal value.
r1 is the ratio of the smallest to the largest edge length. r1 reaches its optimal (maximal) value
1 for an equilateral tetrahedron. Needles and wedges are detected by a small value of r1.
r2 is the tetrahedron volume divided by the third power of the largest edge length, normalized
to an optimal (maximal) value 1 for an equilateral tetrahedron. All types of distorted tetrahedra
are detected by a small value of r2.
Dihed/Solid Angle Selector: This tool selects tetrahedra according to their minimal and maximal dihedral angles (d,D) or solid angles (s,S). For each edge of a tetrahedron the dihedral angle
is defined as the angle between its adjacent faces. The solid angles are related to the tetrahedron
vertices; they measure the part of the unit sphere which is occupied by the tetrahedron. The solid
angle at a tetrahedron vertex can be maximally 2, or 360 deg. For an equilateral tetrahedron
all dihedral angles are approx. 70 deg, all solid angles are approx. 30 deg.
You can combine different selections, e.g., the selection (d<10) && (D>140) detects slivers, and the selection S>180 detects caps.
Edge Quality Selector: This tool primarily selects edges, and then shows all tetrahedra adjacent
to that edges. Edges are selected according to their length (e) or to the edge quality q, which is
computed as follows: for each tetrahedron adjacent to the edge the length l of the opposite edge
and the dihedral angle d at the opposite edge are determined. The contribution of the tetrahedron
is l cot(d). q is the sum of those contributions over all adjacent tetrahedra. qi refers to the inner
edges, qb to the boundary edges of the tetrahedral grid.
For an ideal grid, all qi and qb should be positive. Such a grid would be well suited for a
numerical simulation, because the Finite Element stiffness matrix (probably for the Laplacian
operator) is an M-matrix if q is positive for all edges.
Using the tools of the Modify menu
At the menu of port Modifier you can choose one of several modifiers. When you press the Modify
button, the grid modification will start. Some information will be displayed in the Console Window.
There is a certain inconsistency between the tetra quality selector and the modifiers of the Grid Editor,
because the tetrahedron quality criterion for all modifiers is the inverse of the radius ratio R as defined
above. In applying the modifiers, keep in mind that the optimal (minimal) value of 1/R is 3 and
distorted tetrahedra are detected by large values of 1/R.
The modifiers Laplace Smoothing, Optimization Smoothing and Flip Edges and Faces are mainly
Grid Editor
833
for debugging purposes, because the Combined Smoothing modifier is a combination of them which
should give the best results in most cases. The modifiers Repair Bad Tetras and Bisect Inner Edges are
still in an experimental state. We recommend to apply the Remove Inner Vertices and the Combined
Smoothing modifiers.
Laplace Smoothing: This tool improves mesh quality by moving inner vertices. For each inner
vertex the center of mass of the adjacent vertices is calculated. The vertex is moved to that
location if this improves the quality 1/R of the adjacent tetrahedra. Otherwise the midpoint
between the old location and the center of mass is examined. Parameter nLoops defines the
number of smoothing loops (maximally 10). Laplace smoothing will in general improve the
mesh quality 1/R, but in most cases an Optimization Smoothing will be superior.
Optimization Smoothing: This tool improves mesh quality by moving inner vertices. For
each inner vertex a new location is determined that optimizes the quality 1/R of the adjacent
tetrahedra. Parameter nLoops defines the number of smoothing loops (maximally 10), parameter
threshold defines a threshold for tetrahedron quality which is applied starting with the second
loop. If all adjacent tetrahedra have a quality better than threshold, the vertex position is not
changed. The default value 12 (quadruple of the optimal value) leaves tetrahedra unchanged
which should be acceptable in most cases. Selecting a smaller value will induce opimization of
more vertex locations.
Flip Edges and Faces: This tool improves mesh quality by flipping edges and faces. For each
inner (triangular) face the adjacent tetrahedra are determined. It is examined whether the face is
a boundary face and whether the adjacent tetrahedra form a convex polyhedron. Depending on
this classification a suitable type of edge or face flipping is selected. The flip operation is only
performed if it improves the quality 1/R of the tetrahedra involved. Parameter threshold defines
a threshold for tetrahedron quality. If all adjacent tetrahedra have a quality better than threshold,
a face is not examined for flipping. If parameter save boundary triangles is set to 1, the edges
and faces of the exterior grid boundary and the interior boundaries between different materials
will not be flipped.
Repair Bad Tetras: This tool tries to repair slivers and caps. For a sliver, two opposite edges
with obtuse dihedral angles are bisected. If the distance between the new vertices is small
compared to the slivers mean edge length, the edge connecting them is collapsed. For a cap,
the triangle opposite to the vertex with largest solid angle is determined. If that triangle is part
of the outer boundary, the tetrahedron is removed. Otherwise, it is examined if the cap can be
removed by a face flip. Parameter threshold defines a threshold for tetrahedron quality 1/R. Only
tetrahedra with a quality worse than the given threshold will be examined for repair.
Remove Inner Vertices: This tool improves mesh quality by removing inner vertices. In a
tetrahedral grid, the mean number of tetrahedra incident on an inner vertex is 24. If a vertex is
incident on less than 10 tetrahedra, it is very likely that the mesh quality can be improved by
removing that vertex and reconnecting the hole.
All inner vertices incident on a number of tetrahedra less or equal the value of parameter max
num neighbors are inspected for removal. They will be removed, if this improves tetrahedral
quality 1/R. If a value 0 is set for parameter max edge length, this defines an upper bound for
834
the edge length. An inner vertex will not be removed, if this would imply creation of a longer
edge.
Bisect Edges: This tool improves mesh quality by bisection of inner edges. An inner edge
is bisected if for its vertices different boundary conditions are defined. After bisection, apply
Optimization smoothing to improve the position of the new vertices.
Combined Smoothing: This tool combines edge and face flipping and optimization smoothing.
Parameter nLoops defines the number of large loops (maximally 10), the other parameters define thresholds for tetrahedron quality 1/R which are applied in the first loop and the other loops,
respectively. Setting the first threshold to 3 means that all edges and faces will be inspected for
flipping and all vertices for optimization in the first loop. If parameter save boundary triangles
is set to 1, the edges and faces of the exterior grid boundary and the interior boundaries between
different materials will not be flipped.
Flip/Bisect Long Edges: This tool tries to remove inner edges depending on their length or
edge quality q as defined above. Parameter max edge length defines the maximal allowed edge
length and parameter min edge quality the minimal allowed edge quality, which must be less
or equal to zero. Setting a minimal quality of zero means that edge quality is ignored in edge
selection. Parameter threshold sets an upper limit for tetrahedron quality 1/R. The selected
edges are removed, preferably by an edge flip, or by an edge bisection, if all newly generated
tetrahedra will have a quality below that threshold.
This tool should be applied repeatedly, until the number of flips as reported in the Console
Window goes down to 0, and applying an Optimization smoothing in between may improve the
results.
Automatic: This tool tries to improve the quality of the whole grid automatically with no further
user-interaction. If save connectivity is set to 1 (true) then it only applies optimization smoothing
repeatedly. If it is set to 0, then several of the reconnection methods described above are used
and the elements are flipped and smoothed until the algorithm converges.
These improvements can take a really long time to converge but you can feel free to interrupt
anytime by pressing the stop-button: This tool uses a floating threshold which you can observe
in the console-window. That means that the tetrahedrons with worst quality are considered first
and the others later when the threshold decreases. When the process is stopped while using a
threshold of e.g. 6.0 then all tetra- hedrons with quality worse than 6 have been improved.
If you still detect bad quality elements after the Automatic tool has finished then the source-grid
didnt allow improvements there because of vertices fixed on boundarys.
Grid Editor
835
836
Chapter 37
This tool allows you to edit attributes of groups contained in a Molecule data object. It has additional
tabs containing interfaces for exporting attributes to a file or importing them from a file into the data
object. We will start with a general description of the attribute concept of Avizo followed by a detailed
description of the three different tabs.
838
gray background: attribute cannot be changed or deleted (attribute is used as an index by Avizo)
white background: attribute can be changed and deleted
black text: only one group of the level is selected
green text: several groups of the level are selected but all of their attribute values are equal
red text: several groups of the level are selected and at least two attribute values of these groups
differ (in this case no attribute value will be displayed in the right column)
Changing attributes or attribute values: To change the name of an attribute, simply left-click in the
respective cell of the left column and enter the desired name. To change attribute values of the currently
839
selected groups, click in the cell in the right column. Except for index attributes (gray background), all
values can be changed. If several groups are selected and no value is displayed (because some values
differ), the adjustment of the value in the empty table cell will reset the value of all groups to the given
choice. Therefore the color of this attribute will change from red to green.
To select groups you can use the selection browser.
Adding and deleting attributes: The lower part of the window lets you add or delete attributes by
typing the name into the text box and using the appropriate button. When adding attributes, you also
must choose the internal format type (string, integer, or float) with the pull-down menu.
will write a file which will contain the charge of each atom. Note that after the last parenthesis you
have to enter a whitespace, otherwise all charges will be written without delimiters between them.
Iteration-context: The first thing to think about when writing attributes to a file is to decide which
level should be the base level of information. This will be the level over whose groups will be iterated,
the iteration-context. Usually this is just the same level as that of the attributes you want to write.
However, imagine you want to write the residue names of the residues each atom belongs to. In this
case the iteration context is the level atoms while the attribute is of the level residues. To set the
iteration-level, just type %(levelname). In the example given above the iteration-context was the level
atom.
Text and attribute output: The text after this iteration-context definition specifies the output for each
member of the iteration-level. It can contain two things: specification of attributes and additional
text that might contain delimiter characters or keywords needed by the importing function of another
program. The attribute specification has the form %(levelname,attributename). The additional text
840
can contain everything (including carriage returns) except the character %. In the example above the
attribute specification was %(atoms,charge) and the additional text was the trailing whitespace.
Iteration context and level dependency: Another example:
%(residues)%(residues,index) %(chains,index)
Results in a table which contains the chain index and the residue index for each residue (after the
last parenthesis a carriage return must be entered, otherwise there wouldnt be linefeeds between the
individual entries).
The slightly modified example
%(residues)%(residues,index) %(atoms,index)
might look okay at first glance, but what is the atom index for each residue? In fact it is undefined
as each residue can contain several atoms. This is a direct result of the general concept of level
dependency. If groups of a level lev1 can contain groups of level lev2, lev1 is said to be dependent
on lev2. Inside of an iteration-context only such levels which depend on the iteration-level or the
iteration-level itself may be used.
Ending an iteration context: The iteration-context can be ended by the definition of a new iterationcontext or the empty definition %(). The latter enables you to write text between different sections.
Example:
ATOM SECTION:
%(atoms)ATOM ix=%(atoms,index) z=%(atoms,atomic_number)
isInRes=%(residues,index)
%()RESIDUE SECTION:
%(residues)RESIDUE ix=%(residues,index) name=%(residues,name)
of course again ended by a carriage return after the last parenthesis. The %() was needed so that the
text RESIDUE SECTION wouldnt be repeated for each member of the atoms iteration-context.
Special attributes: As atom coordinates are not stored as attributes but in an internal data array of the
object, they are not directly available. However, you can write them by using %(atoms,coordinates)
which will be internally translated from an attribute access to an access on the data array. It will write
the x, y, and z coordinates delimited by whitespaces.
Options: The option write selected only will limit each iteration context to those groups which are
currently selected. For unselected groups no output will be produced.
841
This code expects that there are as many charge values in the file as the number of atoms in the
molecule, each separated by a semicolon.
Thus the format string has the same concept of an iteration-context as the export method. The only
new part in the example is the type specification float which is needed if the attribute does not already
exist inside Avizo. If it does, you can omit the type. Type can be integer, string, or float. Another
difference to the export format is that you can specify only attributes of the same level as the iterationlevel.
Skipping characters: If you want to specify that there may be an arbitrary number of characters of
some type, you can do so by %char*. In the example
%(atoms)%(atoms,charge)%" "*;%" "*
would be needed if there may be an arbitrary number of whitespaces between the charge values and
the semicolon. You can enter more than one character between the quotes. It will read and skip any
character contained in the quotes until the token behind the asterisk is found. If the token is not a
literal, but an attribute specification, it will skip the characters until the first occurrence of a token that
might be of the same type as attribute. The quoted characters can of course also contain a linefeed. A
%* will skip any character.
842
An often occurring problem is that your information is located in a certain section of the file which
is initiated by a certain keyword. To jump to this section simply type %*keyword. The following
example could be used for the TRIPOS file format which uses the @TRIPOSATOM keyword to
initiate its atom block.
%*@<TRIPOS>ATOM
%(atoms)%(atoms,index) %(atoms,atomic_symbol,string)%*
Another common problem is to skip a token. Consider for example that at the start of each line is
some alphanumerical token followed by one or more spaces followed by the attribute you want to
read. Typing all characters which can be skipped would be tedious, but you can define ranges by using
[char1-char2]. Thus the example looks like
%(atoms)%"[a-z][A-Z][0-9].,_-"*%" "%(atoms,charge,float)%*
Note that the range is interpreted as a range of the ASCII positions of the given characters.
Using a file-internal iteration: Take a look at the following example:
%(atoms)ATOM:%" "*%(atoms,index)%" "*%(atoms,charge)%*
The defined iteration-context wont be needed because for each charge value we know the atom index
it is associated with. Thus, the index has the function of an own file-internal iteration-context. This
allows you to import attributes of only a part of the groups contained in the molecule. You will need
to specify the iteration context atoms, however, to make it clear which parts of the format string
constitutes the pattern repeatedly searched for in the file. This however only applies if the index
attribute has been read first. If there are other attributes before it in the same iteration context, it will
not overrule the context.
Reading information in predefined columns Some file formats (like pdb) do not use delimiter
characters, but have predefined columns in which information is located. To access these columns
you can add width numbers to the attribute specifications and skip specifications. The format is:
%width(levelName,attributeName,attributeType) and %width*.
If the charge attribute you want to read is located between the 50th and 59th column of each line, you
could specify the format like this:
%(atoms)%49*%10(atoms,charge)%*
followed again by a linefeed. The first 49 columns of each line will be skipped. Then the charge
attribute will be read from the next 10 columns and the rest of the line will be skipped.
843
37.2
Molecule Editor
This tool can be used to change the geometry and topology of a Molecule data object. To change group
attributes, you can use the Molecule Attribute Editor.
Most of the editors functions are applied to the set if selected atoms, Atoms can be selected by using
the selection browser or by directly clicking on atoms in the viewer.
The molecule editor, Figure 37.3, has three tabs:
The Transform tab contains all tools to change the geometry of selected atoms by adjusting
positions, bond lengths, torsional angles, and bond angles.
The Tools tab offers methods to split or copy parts of the molecule, as well as an interface for
adding or removing bonds between atoms.
The Building tab offers methods to add or remove atoms, bonds and groups, or to change their
chemical properties.
Additionally several menus exists to manipulate the display, assign or change chemical properties and
to create new levels or attributes.
844
standard valencies. You can always check these internal properties by enabling them as labels in the
view menu.
As mentioned earlier, this information may change during the editing process. When the editor is
closed by pressing the OK button the current state will be written into the atom level attributes.
Molecule Editor
845
Kekulize Non-Rings: Assigns a Kekule structure to all non cyclic parts of the molecule. This is
necessary for the editor to work properly as aromaticity is only allowed for rings.
Dekekulize: This will check all rings system for aromaticity, using the extended Hueckel rule
and assign aromaticity where appropriate.
Transform Tab
The transform tab is divided into four different sections. Each section can be used to adjust certain
coordinates of the currently selected atoms. The different coordinate types are:
Position is the Cartesian coordinate of an atom. If several atoms are selected, only relative
changes are allowed.
Bond Length is the distance between two selected atoms.
Bond Angle is the planar angle between three selected atoms.
Bond Torsion is the dihedral angle between four atoms.
Coordinates can be set absolute or relative to their current value. In each section, the upper row (with
gray background) displays the current absolute value. In the lower row (with white background) you
can enter a new value. In the right part of each section are three buttons. The first button transforms
the coordinate while assuming that the entered value is an absolute value. The second button simply
applies the transformation with the entered value text as a relative difference. The third button will
activate a dragger in the viewer for adjusting the coordinate interactively. The Measurement module
can be used to display currently edited bonds or angles.
Which buttons can be used and which are disabled depends on the number of currently selected atoms.
846
An additional toggle button can be found in the Bond Angle section. If this toggle is activated, the
interactive adjustment with the dragger will cause both bonds to be bent symmetrically, otherwise only
one bond will be bent.
The position dragger can be moved on the plane determined by the face of the cubic dragger you click
on. You can additionally rotate the selected groups by dragging the green knobs.
Tools Tab
The tools tab is subdivided into two sections:
Change Topology
The cut button will cut the currently selected groups out of the molecule. The split button will do the
same but will copy the groups into a new molecule which will be added in the Pool. The copy button
will leave the current molecule unchanged while copying the selected groups into a new molecule
which will be added to the Pool. When pressing the add button, a window will open which will let you
choose another molecule in the Pool whose groups you want to add to the current molecule.
Connection
The Connection section offers different options for influencing the bonding of the currently selected
atoms On the right side of the interface are buttons for adding or removing bonds between the currently
selected atoms. The set of bonds which will be added or removed will depend on the connection mode
that you can choose on the left side of the interface.
Molecule Editor
847
Standard: This is the most reliable method for adding bonds to a protein or DNA/RNA. It will
look up all residues in a residue database and add bonds accordingly. This method will only
work for molecules that contain the residue type attribute. For connections between different
residues it will check all residues on a chain sequentially. When used together with the cut
action all bonds will be removed which can not be found in the database.
Bond length table: This option lets you add bonds between selected atoms by looking up
their bond lengths in the file bondLengths.cfg which can be found and edited in your local
Avizo/share/molecules directory. If the distance of two atoms does not deviate further than a certain threshold from the bond length between the respective elements in the table, the bond will
be added. This method is able to distinguish between single, double, triple, and aromatic bonds.
It should be the first choice for non-standard residues or molecules not containing residue information. Just like the Standard option this mode can also be used together with the cut action. In
this case all bonds which deviate too strongly from the bond length table will be removed.
External: This mode can only be used together with the cut action. It will remove all bonds
between selected and unselected atoms thus enabling you to disconnect certain parts of the
molecule from the rest.
All: This mode will add or remove all possible bonds between the selected atoms.
Distance Cutoff: This last mode uses a distance cutoff for deciding which bonds to add or
remove. The Maximal Atom Distance slider determines the maximal distance of two bonded
When using this mode together with the add action all bonds between atoms which
atoms in A.
are nearer than the cutoff distance will be added. Equally, the cut action will remove all bonds
whose length is greater than the threshold.
848
Building
Adding atoms or groups is accomplished by selecting a single atom and replacing it with a new one.
Usually, the selected atom would be a hydrogen, but you can replace heavy atoms as well. Hydrogens
for the new parts are automatically added.
The atoms section contains buttons to add atoms of commonly used elements in organic chemistry.
With the -> button you can activate a periodic table to select less common elements. Other buttons
in this section are:
+ and -: Increases or decreases the formal charge of the atom by 1. The number of hydrogens
will be automatically adjusted.
+V and -V: Increases or decreases the valency of the atom by one. They will appear as new
or removed explicit or implicit hydrogens. Adding valencies is only possible if the atom has
lone electron pairs or an unpaired electron. Removing valencies is only possible, if the atom has
explicit or implicit hydrogens.
Delete: Deletes all selected atoms.
The carbon chains / rings section allows to add carbon chains or cyclocarbons. The number of the
carbon atoms can be adjusted and the hybridization can be selected, with sp2 creating chains of the
form C=CC=C... or aromatic rings.
The bonds section contains buttons to add bonds, replace bond order or, delete bonds. You need to
select two atoms. Clicking on - will create a single, = a double, # a triple, and an aromatic
bond. If the atoms were already connected the bond order will be simply changed. We advise against
assigning aromatic bonds by hand. There is no clear definition of what constitutes aromaticity and
creating aromatic bonds outside of ring structures can result in some chemo informatics algorithms of
the editor returning incorrect result. Instead, always assign Kekule structures. You can then assign
aromatic bond orders by using the Dekekulize tool which guarantees that the internal data-structures
stay chemically consistent.
Button Group
OK will close the editor and accept all changes made to the molecule.
Cancel returns from the editor restoring the last accepted state.
Reset resets the molecule to the last accepted state without canceling the editor.
Apply accepts all changes. This means that resetting will return the molecule to the current state.
Undo undoes the last change. Currently, for efficiency reasons, this is only possible for coordinate transformations of the transform tab.
Molecule Editor
849
Scripting Interface
Most functions of the MoleculeEditor are scriptable. An editor associated to a molecule may be created
with the command
set <myEditor> [ <moleculeObject> createMoleculeEditor ]
where moleculeObject is the name of the molecule object as it appears in the objectpool and myEditor is an arbitrary tcl variable that will contain the name of the created editor object and which can
then be used with the following commands:
addH
addPolarH
removeApolarH
removeH
removeWater
replaceAtomAtomicNum <atomicNumber>
replaceAtomSmiles <smilesStr>
assignFormalCharge
assignHNum
850
assignStandardHNum
incCharge
incValency
decCharge
decValency
dekekulize
kekulize
setBondAromatic
setBondDouble
setBondSingle
setBondTriple
minimize
reset
apply
copy
createAttributeMMFFCharge
createAttributeMMFFType
createLevelAngles
createLevelDihedrals
createLevelOOPDihedrals
createLevelRingSystems
createLevelRings
createMMFFParameterization
References
[1] Halgren,T.A. Merck molecular force field. I. Basis, form, scope, parameterization, and performance of MMFF94. J.Comp.Chem., 17, 490-519 1996. [2] Weininger,D. SMILES, a chemical language and information system. 1. Introduction to methodology and encoding rules, J. Chem. Inf.
Comput. Sci. 28, 31 - 36 1988.
Molecule Editor
851
Index
Avizo XScreen Pack Config File, 639
Avizo Script, 601
2DHistogramSegmentation, 333
2DLine, 239
Abaqus, 629
Abaqus Input, 629
Access LargeDiskData, 3
ACR-NEMA, 587
Advanced Colormap Editor, 753
AffineRegistration, 4
AlignBlocks, 479
AlignMolecules, 501
AlignPrincipalAxes, 7
AlignSequences, 503
AlignSlices, 8
AlignSurfaces, 389
AMBER, 653
AMF, 654
Amira Script Object, 587
AmiraMesh as LargeDiskData, 600
AmiraMesh Format, 587
AnalyticTensorField, 731
Analyze 7.5, 600
AnalyzeAVW, 601
Animate, 23
AnimatedParticles, 275
AnnaScalarField3, 677
AnnaVectorField3, 679
AnnotatedIsolines, 24
Annotation, 27
AnonymizeImageStack, 28
Ansys, 630
Ansys Input, 630
ApplyBSplineTransform, 29
ApplyMask, 480
ApplyTemplateToMosaic, 481
ApplyTransform, 30
ArbitraryCut, 32
Arithmetic, 34, 277
ArithmeticRendering, 365
AtomicMolecularDensity, 505
AutoSkeleton, 483
AVS Field, 643
AVS UCD Format, 644
Axis, 38
B-Splines, 680
background correction, 472
BeadExtract, 469
Bio-Rad Confocal Format, 649
BMP Image Format, 601
BondAngleView, 508
BondCalculation, 510
border width, 474
BoundaryConditions, 390
BoundaryFlux, 281
BoundaryView, 282
bounding box, 142, 623, 781
BoundingBox, 40
BoundingBox (seismic), 240
BumpSlice, 41
CalculusMatlab, 43
CameraPath, 47
CameraPath Editor, 759
CameraRotate, 681
CannyEdgeDetector, 47
CastField, 48
CastLattice, 366
CastLineSetToSpatialGraph, 50
CastSpatialGraphToLineSet, 50
CATIA5, 669
CCD detector, 472
CenterlineTree, 485
CGNS, 630
ChamferMap, 487
ChannelWorks, 51
CheckNetwork, 489
CityPlot, 52
ClippingPlane, 54
Cluster, 681
ClusterDiff, 54
ClusterGrep, 56
ClusterSample, 57
ClusterStringLabels, 57
ClusterView, 58
CollectiveTCL, 61
Color Dialog, 760
ColorCombine, 61
ColorField3, 683
Colormap, 684
Colormap Editor, 763
Colorwash, 63
CombineLandmarks, 65
CompareLatticeData, 65
CompMolInterface, 511
CompMolSurface, 512
ComponentField, 391
ComposeVectorField, 283
ComputeContours, 66
ComputeHBonds, 515
ComputeSecondaryStructure, 516
ComputeTensor, 392
ComputeTensorOutOfCore, 393
ComputeVolume, 67
ConePlot, 395
ConfigurationDensity, 517
ConnectedComponents, 68
Connection, 554
INDEX
ContourView, 398
ContrastControl, 69
ConvertToIM6, 341
ConvertToLargeDiskData, 367
ConvertToUnstructuredModel, 284
Convolution, 470
CorrectZDrop, 471
CorrelationPlot, 72
CPS-3, 627
CreateCluster, 75
CreateGradientImage, 399
CreateSphere, 520
CreateVRConfig, 353
CroppedVolume, 240
CroppedVolumeAttributes, 243
Crossline, 244, 245
CrossSection, 284
Curl, 76
Curve Editor, 767
CurvedSlice, 76
Cutting Plane, 79
CylinderSlice, 80
Data, 686
Data Parameter Editor, 769
DataPreprocess, 472
DataProbe, 82
Datasets Selector, 769
Deconvolution, 473
deconvolution, 473
Delaunay2D, 86
Demo GUI, 770
DemoMaker, 88
DemoSequence, 98
DICOM export, 602
DICOM import, 602
DicomSend, 100
Digital Image Filters, 102, 774
Displace, 400
DisplayColormap, 102
DisplayCriticalPoints3D, 286
DisplayDate, 104
DisplayISL, 400
853
DisplayLegend, 290
DisplayLogos, 106
DisplayMosaic, 490
DisplayTime, 106
DistanceMap, 475
DistanceMapSkeleton, 490
Divergence, 404
DuplicateNodes, 404
DX, 657
DXF, 608
Earth, 327
EigenvectorToColor, 405
Encapsulated PostScript, 608
Ensight, 631
EvalOnLines, 491
ExtractEigenvalues, 406
ExtractSurface, 108
FaultSticks, 723
FaultSticksView, 247
FaultSurface, 723
FEIStackedScalarField3, 649
FEIUniformScalarField3, 649
FenceSlice, 248
FIDAP NEUTRAL, 644
FIDAP Neutral, 631
Field3, 687
FieldCut, 407
FilteredObliqueSlice, 109
flatfield correction, 472
Fluent / UNS, 644
Fluent/UNS, 631
Force, 291
FourierTransform, 477
FreeSlice, 249
GetCurvature, 111
GlobalLogsSetting, 252
Gradient, 409
Grid Editor, 831
GridBoundary, 410
GridCut, 412
854
GridToSurface, 414
GridView, 113, 293
GridVolume (Hexahedra), 414
GridVolume (Tetrahedra), 416
GROMACS, 657
Grouping, 113
HBondView, 521
HeightField, 115
HexaGrid, 688
HexaQuality, 419
HexaScalarField3, 689
HexToTet, 418
Histogram, 116
Horizon, 723
HTML, 608
HxScanconvertNeuronTree, 491
HxSurface, 608
Hypermesh, 644
Icol, 613
IDEAS universal format, 645
IESX-Card7, 627
IGES, 671
IlluminatedLines, 420
IM6 On-disk Calibration Editor, 829
ImageCrop Editor, 779
initial estimate, 474
Inline, 252, 254
Interfile, 614
Interpolate, 421
InterpolateLabels, 118
Intersect, 119
Isolines, 121
Isolines (Surface), 122
Isosurface, 294
Isosurface (Hexahedra), 423
Isosurface (Regular), 124
Isosurface (seismic), 256
Isosurface (Tetrahedra), 424
IsosurfaceRendering (LDA), 368
IvData, 689
IvDisplay, 126
INDEX
IvToSurface, 126
job dialog, 475
JPEG Image Format, 614
LabelVoxel, 127
Lambda2, 426
Landmark Editor, 781
landmark set, 469
LandmarkSet, 689
LandmarkSurfaceWarp, 128
LandmarkView, 128
LandmarkWarp, 130
LargeDiskData, 641, 691
LAS20, 627
Lattice3, 691
LatticeAccess, 131
LatToHex, 426
LDA, 641
LDAExpertSettings, 369
LegoSurfaceGen, 133
Leica 3D TIFF, 649
Leica Binary Format (.lei), 650
Leica Image Format (.lif), 650
Leica Slice Series (.info), 650
Light, 693
LineIntegrals, 295
LineProbe, 133
LineSet, 695
LineSet Editor, 782
LineSetProbe, 134
LineSetView, 135
LineStreaks, 427
LogMeasurmentSetting, 257
LSTC LS-Dyna, 632
LSTC LS-Dyna Input, 632
Madymo, 632
Madymo Time-history, 633
MagAndPhase, 428
Magnitude, 297, 428
MAP, 658
masking, 37, 279
INDEX
MasterConnection, 555
MaterialStatistics, 138
MATLAB Binary Format (.mat), 614
MATLAB M-files Format (.m), 614
maximum-likelihood method, 473
MDL, 658
MeanMolecule, 522
Measurement, 140, 523
Merge, 142
Metamorph STK Format, 651
microsphere, 469
Model Colors Editor, 827
Molecule, 739
Molecule Attribute Editor, 837
Molecule Editor, 844
MoleculeLabel, 530
MoleculeView, 532
MolElectrostatics, 525
MolOptimizer, 527
MolSurface, 735
MolSurfaceView, 528
MolTrajectory, 736
Mosaic, 733
MosaicToLargeDiskData, 492
Movie, 697
MovieMaker, 143
MoviePlayer, 146
MRC, 650
MultiChannelField3, 699
MultiVolumeManager, 723
NASA/Plot3D, 633
Nastran Bulk Data, 633
Nastran Output2, 633
NetCDF, 637
NetCDFControl, 329
Nifti, 615
noise, 471
NoncovalentInteractionGrid, 535
NormalizeImage, 150
numerical aperture, 474
Object, 700
855
ObliqueSlice, 151
ObliqueSlice (LDA), 372
Observables, 536
Olympus (.oib/.oif), 651
Open Inventor, 615
OrthoSlice, 155
OrthoSlice (LDA), 375
OrthoViewCursor, 157
Outline, 298
overrelaxation, 474
ParallelMovieMaker, 159
ParametricSurface, 429
ParticlePathlines, 432
ParticlePlot, 434
PDB, 659
PHI, 661
Photon, 628
PlanarISL, 437
PlanarLIC, 439
Plot 3D Single Structured, 645
Plot Tool, 783
PlotSpreadSheet, 161
Ply Format, 618
PNG Image Format, 616
PNM Image Format, 616
PointProbe, 162
PointWrap, 162
Port, 551
Port3DPointList, 555
PortButtonList, 558
PortButtonMenu, 560
PortChannelConfig, 561
PortColorList, 562
PortColormap, 563
PortDoIt, 565
PortDrawStyle, 566
PortFilename, 566
PortFloatSlider, 568
PortFloatTextN, 570
PortFontSelection, 571
PortGeneric, 572
PortInfo, 574
856
PortIntSlider, 575
PortIntTextN, 575
PortMultiChannel, 576
PortMultiMenu, 576
PortRadioBox, 577
PortSeparator, 578
PortSharedColormap, 579
PortTabBar, 579
PortText, 580
PortTime, 580
PortToggleList, 582
power spectrum, 477
PrecomputeAlignment, 537
ProbeToLineSet, 164
Projection, 164
ProjectionView, 166
ProjectionViewCursor, 168
PseudoElectronDensity, 538
PSF, 469
PSF/DCD (CHARMM), 661
PSFGen, 477
PSI format, 616
Quantification, 342
Quantification Calibration Unit Editor, 830
Quantification-Analysis, 349
Quantification-Threshold, 350
Radioss, 634
RadiusHistogram, 494
RankTimeStep, 539
RateOfStrainTensor, 443
Raw Data, 618
Raw Data as LargeDiskData, 620
RawAsExternalData, 702
RefineTetras, 169
refractive index, 474
RegScalarField3, 702
Relabel, 171
RelabelTetras, 172
RemeshSurface, 173
Resample, 177
resampling, 37, 279
INDEX
ScalarField3, 702
Scale, 183
ScanConvertSurface, 184
ScriptObject, 703
SDRC/IDEAS Universal, 635
SecondaryVariables, 298
SecStructureView, 541
SeedSurface, 443
SEG-Y, 628
SEG-Y Wizard, 378
Segmentation Editor, 792
Seismic2DLineData, 724
SeismicAttributes, 257
SeismicAxis, 258
SeismicSettings, 259
SeismicSurfaceView, 259
SeismicVolumeDataObject, 725
SelectLines, 185
SelectRoi, 186
SelectRoi (LDA), 380
SelectRoi (seismic), 260
SequenceController, 187
SGI-RGB Image Format, 620
Shear, 188
ShowConfig, 357
ShowViewerSpreadSheet, 188
Simplification Editor, 808
SmoothLine , 495
SmoothSurface, 189
Sound, 190
SpatialData, 707
SpatialGraph, 709
SpatialGraphStats, 191
SpatialGraphView, 192
Splats, 444
SplineProbe, 194
SpreadSheet, 710
stacked coordinates, 37, 279
Stacked-Slices, 621
Stacked-Slices as LargeDiskData, 642
StackedLabelField3, 710
StackedScalarField3, 711
INDEX
StandardView, 195
STAR-CCM, 635
Statistics2D, 196
STEP, 673
STL, 620
StreamRibbons, 446
StreamSurface, 448
Surface, 712
Surface Editor, 810
Surface Path Editor, 821
Surface Path Set, 713
SurfaceArea, 197
SurfaceCut, 198
SurfaceDistance, 200
SurfaceField, 202
SurfaceGen, 202
SurfaceIntegrals, 307
SurfaceIntersector, 204
SurfaceISL, 450
SurfaceLIC, 452
SurfacePathView, 204
SurfaceStatistics, 206
SurfaceThickness, 206
SurfaceView, 207, 312
TeamWork, 499
Tecplot, 623, 636
TensorDisplay, 454
TetraCombine, 457
TetraGen, 457
TetraGrid, 714
TetraQuality, 459
TetraScalarField3, 715
TetraVectors, 461
TetToHex, 456
Thinner, 495
Threshold, 497
TIFF Image Format, 621
Time, 715
TimeHistoryPlot, 210
TimeSeriesControl, 211
TimeSlice, 263, 265
TraceLines, 497
857
tracking, 361
Trajectory, 212
Transform Editor, 825
TransformAnimation, 213
TriangleDistortion, 215
TriangleQuality, 462
Tripos, 661
TubeView, 545
UniChem, 661
UniformLabelField3, 716
UniformScalarField3, 717
UnstructuredMeshDisplayProperties, 312
UnstructuredModel, 727
UnstructuredModelDataSet, 727
vector theory, 477
VectorField, 315
VectorPlane, 316
VectorProbe, 463
Vectors, 465
Vectors/Normals (Surface), 466
Vertex Morph, 218
VertexDiff, 219
VertexSet, 718
VertexShift, 219
VertexView, 220
Vevo Mode Raw Images, 625
ViewBase, 718
ViewerPlot, 223
VolPro-1000, 225
Voltex, 230
VoltexHighQuality, 383
VolumeDataObject, 729
VolumeEdit, 233
VolumeEdit2D, 235
VolumeIntegrals, 319
VortexCoreline, 321
VorticityIdentification, 323
voxel size, 623, 781
VoxelView, 235
VRML, 624
VRML-Export, 215
858
VRSettings, 360
WatershedSegmentation, 351
wavelength, 474
emission, 478
excitation, 478
WellData, 267
WellDisplay, 268
WellLog, 269
WellLogDisplay, 269
WellsSettings, 272
WellTopDisplay, 270
WellTops, 271
WellTopsSettings, 272
Zeiss LSM, 651
ZIB Molecular File Format, 662
INDEX