-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathBasicUsage.tex
2452 lines (2067 loc) · 108 KB
/
BasicUsage.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\chapter{Basic Usage}
\label{chap:BasicUsage}
Let us get started using ParaView. In order to follow along, you will need
your own installation of ParaView. Specifically, this document is based
off of ParaView version \pvversion. If you do not already have ParaView
\pvversion, you can download a copy from
\href{http://www.paraview.org}{www.paraview.org} (click on the download
link). ParaView launches like most other applications. On Windows, the
launcher is located in the start menu. On Macintosh, open the application
bundle that you installed. On Linux, execute \progname{paraview} from a
command prompt (you may need to set your path).
The examples in this tutorial also rely on some data that is available at
\href{http://www.paraview.org/Wiki/The_ParaView_Tutorial}{http://www.paraview.org/Wiki/The\_ParaView\_Tutorial}.
You may install this data into any directory that you like, but make sure
that you can find that directory easily. Any time the tutorial asks you to
load a file it will be from the directory you installed this data in.
\section{User Interface}
\begin{inlinefig}
\includegraphics[scale=\bbscale]{images/UserInterface}
\end{inlinefig}
The ParaView GUI conforms to the platform on which it is running, but on
all platforms it behaves basically the same. The layout shown here is the
default layout given when ParaView is first started. The GUI comprises the
following components.
\begin{description}
\item[Menu Bar] \index{menu bar} As with just about any other program, the
menu bar allows you to access the majority of features.
\item[Toolbars] \index{toolbars} The toolbars provide quick access to the
most commonly used features within ParaView.
\item[Pipeline Browser] \index{pipeline browser} ParaView manages the
reading and filtering of data with a pipeline. The pipeline browser
allows you to view the pipeline structure and select pipeline objects.
The pipeline browser provides a convenient list of pipeline objects with
an indentation style that shows the pipeline structure.
\item[Properties Panel] \index{properties panel} The properties panel
allows you to view and change the parameters of the current pipeline
object. On the properties panel is an advanced properties
toggle~\icon{pqAdvanced26} that shows and hides advanced controls. The
properties are by default coupled with an \keyterm{Information} tab that
shows a basic summary of the data produced by the pipeline object.
\item[3D View] \index{3D View} The remainder of the GUI is used to present
data so that you may view, interact with, and explore your data. This
area is initially populated with a 3D view that will provide a geometric
representation of the data.
\end{description}
Note that the GUI layout is highly configurable, so that it is easy to
change the look of the window. The toolbars can be moved around and even
hidden from view. To toggle the use of a toolbar, use the \gui{View} \ra
\gui{Toolbars} submenu. The pipeline browser and properties panel are both
\keyterm{dockable} windows. This means that these components can be moved
around in the GUI, torn off as their own floating windows, or hidden
altogether. These two windows are important to the operation of ParaView,
so if you hide them and then need them again, you can get them back with
the \gui{View} menu.
\section{Sources}
\index{sources|(}
\index{sources menu}
\index{menu!sources}
There are two ways to get data into ParaView: read data from a file or
generate data with a \keyterm{source} object. All sources are located in
the \gui{Sources} menu. Sources can be used to add annotation to a view,
but they are also very handy when exploring ParaView's features.
\begin{exercise}{Creating a Source}
\label{ex:CreatingASource}%
Let us start with a simple one. Go to the \gui{Sources} menu and select
\gui{Cylinder}. Once you select the \gui{Cylinder} item you will notice
that an item named \gui{Cylinder1} is added to and selected in the
pipeline browser. You will also notice that the properties panel is
filled with the properties for the cylinder source. \index{apply~button}
Click the \gui{Apply} button \apply to accept the default parameters.
Once you click \gui{Apply}, the cylinder object will be displayed in the
3D view window on the right.
\end{exercise}
Now that we have created our first simple visualization, we want to
interact with it. There are many ways to interact with a visualization in
ParaView. We start by exploring the data in the 3D view.
\begin{exercise}{Interacting with a 3D View}
\label{ex:InteractingWithA3DView}%
This exercise is a continuation of Exercise~\ref{ex:CreatingASource}.
You will need to finish that exercise before beginning this one.
You can manipulate the cylinder in the 3D view by dragging
the mouse over the 3D view. Experiment with dragging different mouse
buttons---left, middle, and right---to perform different rotate, pan, and
zoom operations. Also try using the buttons in conjunction with the
shift and ctrl modifier keys.
\begin{inlinefig}
\includegraphics[width=.83\scw]{images/ToolbarCamera}
\end{inlinefig}
\index{camera~controls~toolbar|see{toolbar, camera controls}}
\index{toolbar!camera~controls}
ParaView contains a couple of toolbars to help with camera manipulations.
The first toolbar, the \gui{Camera Controls} toolbar, shown here, provides
quick access to particular camera views. The leftmost button
\icon{pqResetCamera24} performs a \keyterm{reset camera} such that it
maintains the same view direction but repositions the camera such that
the entire object can be seen. The second button \icon{pqZoomToData24}
performs a \keyterm{zoom to data}. It behaves very much like reset
camera except that instead of positioning the camera to see all data, the
camera is placed to look specifically at the data currently selected in
the pipeline browser. You currently only have one object in the pipeline
browser, so right now reset camera and zoom to data will perform the same
operation.
The next button in the camera controls toolbar \icon{pqZoomToSelection24}
allows you to select a rectangular region of the screen to zoom to (a
\keyterm{rubber-band zoom}). The following six buttons reposition the
camera to view the scene straight down one of the global coordinate's
axes in either the positive or negative direction. Try playing with
these controls now.
\begin{inlinefig}
\includegraphics[width=.415\scw]{images/ToolbarCenterAxis}
\end{inlinefig}
\index{center~axes~toolbar|see{toolbar, center axes}}
\index{toolbar!center~axes}
The second toolbar controls the location of the center of rotation and
the visibility of the orientation axes. \index{center of rotation!pick}
The rightmost button \icon{pqPickCenter24} allows you to pick the
\keyterm{center of rotation}. Try clicking that button then clicking
somewhere on the cylinder. If you then drag the left button in the 3D
view, you will notice that the cylinder now rotates around this new
point. \index{center of rotation!reset} The next button to the left
\icon{pqResetCenter24} replaces the center of rotation to the center of
the object. \index{center of rotation!show}\index{axes!center of
rotation} The next button to the left \icon{pqShowCenterAxes24} shows
or hides axes drawn at the center of rotation. (You probably will
not notice the effects when the center of rotation is at the center of
the cylinder because the axes will be hidden by the cylinder. Use the
pick center of rotation \icon{pqPickCenter24} again and you should be
able to see the effects.) The final leftmost button
\icon{pqShowOrientationAxes32} toggles showing the
\index{axes!orientation|see{orientation axes}}\keyterm{orientation axes},
the always-viewable axes in the lower left corner of the 3D view.
\end{exercise}
Although interactive 3D controls are a vital part of visualization, an
equally important ability is to modify the parameters of the data
processing and display. ParaView contains many GUI components for modifying
visualization parameters, which we will begin to explore in the next
exercise.
\begin{exercise}{Modifying Visualization Parameters}
\label{ex:ModifyingVisualizationParameters}%
This exercise is a continuation of
Exercise~\ref{ex:InteractingWithA3DView}. You will need to finish that
exercise before beginning this one.
You surely noticed that ParaView creates not a real cylinder but
rather an approximation of a cylinder using polygonal \keyterm{facets}.
The default parameters for the cylinder source provide a very coarse
approximation of only six facets. (In fact, this object looks more like a
prism than a cylinder.) If we want a better representation of a cylinder,
we can create one by increasing the \gui{Resolution} parameter.
\begin{inlinefig}
\includegraphics[width=.83\scw]{images/ResolutionParameter}
\end{inlinefig}
Using either the slider or text edit, increase the resolution to 50 or
more. Notice that the \gui{Apply} button \apply started pulsing blue.
This is because changes you make to the object properties are not
immediately enacted. The highlighted button is a reminder that the
parameters of one or more pipeline objects are ``out of sync'' with the
data that you are viewing. Hitting the \gui{Apply} button will accept
these changes whereas hitting the \index{reset~button} \gui{Reset} button
\reset will revert the options back to the last time they were applied.
Hit the \gui{Apply} button now. The resolution is changed so that it is
virtually indistinguishable from a true cylinder.
\begin{inlinefig}
\includegraphics[width=0.53\scw]{images/DisplayProperties}
\end{inlinefig}
If you scroll down the properties panel, you will notice
a set of \gui{Display} properties\index{display properties}. Try these
options now by clicking on the \gui{Edit}~\icon{pqEditColor24} button to
change the color of the cylinder. (This button is also replicated in the
toolbar.) You may notice that you do not need to hit \gui{Apply} for
display properties.
\begin{inlinefig}
\includegraphics[width=0.53\scw]{images/RenderViewOptions}
\end{inlinefig}
If you scroll down further yet to the bottom of the properties panel, you
will notice a set of \gui{View} properties\index{view properties}. Try
using the view properties to change the background\index{background color}
of the image. Change the background from \gui{Single color} to
\gui{Gradient}\index{gradient}\index{background gradient}. Using a
gradient in the background can add glitz to an image, but it can also
distract from the data in the visualization. Be aware that some of the
view options and object display options can be repeated elsewhere in the
ParaView GUI for convenience.
By default many of the lesser used display properties are hidden. The
\keyterm{advanced properties} toggle~\icon{pqAdvanced26} can be used to
show or hide these extra parameters. There is also a search box at the
top of the properties panel\index{properties panel!search} that can be
used to quickly find a property. Try typing \gui{specular} into this
search box now. Under the display properties you should see an option
named \gui{Specular}. This controls the intensity of the specular
highlight seen on shiny objects. \index{shiny} \index{specular highlight}
Set this parameter to \gui{1} to make the cylinder shiny.
Most objects have similar display and view properties. Here are some
other common tricks you can do with most objects using parameters
available in the properties panel and that you can try now.
\begin{itemize}
\item \index{cube axes} \index{axes!cube|see{cube axes}} Show 3D axes at
the boarders of the object containing rulers showing the physical
distance in each direction by clicking the \gui{Show Axes} checkbox
under the \gui{Cube Axes} options.
\item \index{transparency} \index{opacity} Make objects transparent by
changing their \gui{Opacity} parameter. An opacity parameter of 1 is
completely opaque, a parameter of 0 is completely invisible, and values
in between are varying degrees of see through.
\item \index{lighting} The default configuration of lights in a 3D
rendering are position to provide a natural shading to best show the
structure of objects. If you want to change the lighting (for example,
to brightly show a flat surface facing the camera), you can click the
\gui{Edit} button under the \gui{Lights} option (an advanced
property).
\end{itemize}
\end{exercise}
\index{undo|(}
\index{redo|(}
Now is a good time to note the undo~\icon{pqUndo32} and
redo~\icon{pqRedo32} buttons in the toolbar. Visualizing your data is
often an exploratory process, and it is often helpful to revert back to a
previous state. You can even undo back to the point before your data was
created and redo again.
\begin{exercise}{Undo and Redo}
\label{ex:UndoAndRedo}%
Experiment with the undo~\icon{pqUndo32} and redo~\icon{pqRedo32}
buttons. If you have not done so, create and modify a pipeline object
like what is done in Exercise~\ref{ex:CreatingASource}. Watch how
parameter changes can be reverted and restored. Also notice how whole
pipeline objects can be destroyed and recreated.
\index{undo camera}
\index{redo camera}
There are also undo camera~\icon{pqUndoCamera24} and redo
camera~\icon{pqRedoCamera24} buttons. These allow you to go back and
forth between camera angles that you have made so that you do not have
to worry about errant mouse movements ruining that perfect view. Move
the camera around and then use these buttons to revert and restore the
camera angle.
\end{exercise}
\index{redo|)}
\index{undo|)}
We are done with the cylinder source now. We can delete the pipeline
object by making sure the cylinder is selected in the pipeline browser and
hitting \index{delete~button} delete \delete in the properties panel.
\index{sources|)}
\section{Loading Data}
\index{file menu}
\index{menu!file}
Now that we have had some practice using the ParaView GUI, let us load in
some real data. As you would expect, the \index{open} \gui{Open} command
is the first one off of the \gui{File} menu, and there is also toolbar
button~\icon{pqOpen32} for opening a file. ParaView currently supports
over 140 distinct file formats, and the list grows as more types get
added. To see the current list of supported files, invoke the Open command
and look at the list of files in the \gui{Files of type} chooser box.
\begin{inlinefig}
\includegraphics[width=\scw]{images/OpenFileTypes}
\end{inlinefig}
ParaView's modular design allows for easy integration of new VTK readers
into ParaView. Thus, check back often for new file formats. If you are
looking for a file reader that does not seem to be included with ParaView,
check in with the ParaView mailing list
(\href{mailto:[email protected]}{[email protected]}). There are
many file readers included with VTK but not exposed within ParaView that
could easily be added. There are also many readers created that can plug
into the VTK framework but have not been committed back to VTK; someone may
have a reader readily available that you can use.
\begin{exercise}{Opening a File}
\label{ex:OpeningAFile}%
Let us open our first file now. Click the \index{open} \gui{Open}
toolbar (or menu item)~\icon{pqOpen32} and open the file
\index{disk\_out\_ref} \gui{disk\_out\_ref.ex2}. Note that opening a
file is a two step process, so you do not see any data yet.
Instead, you see that the properties panel is populated with several
options about how we want to read the data.
\begin{inlinefig}
\includegraphics[scale=\bbscale]{images/Variables_disk_out_ref}
\end{inlinefig}
Click the checkbox in the header of the variable list to turn on the
loading of all the variables. This is a small data set, so we do not
have to worry about loading too much into memory. Once all of the
variables are selected, click \apply to load all of the data. When the
data are loaded you will see that the geometry looks like a cylinder with
a hollowed out portion in one end. These data are the output of a
simulation for the flow of air around a heated and spinning disk. The
mesh you are seeing is the air around the disk (with the cylinder shape
being the boundary of the simulation). The hollow area in the middle is
where the heated disk would be were it meshed for the simulation.
\end{exercise}
Most of the time ParaView will be able to determine the appropriate method
to read your file based on the file extension and underlying data, as was
the case in Exercise~\ref{ex:OpeningAFile}. However, with so many file
formats supported by ParaView there are some files that cannot be fully
determined. In this case, ParaView will present a dialog box asking what
type of file is being loaded. The following image is an example from
opening a \index{netCDF}netCDF file, which is a generic file format for
which ParaView has many readers for different conventions.
\begin{inlinefig}
\includegraphics[width=.75\scw]{images/ChooseFileType}
\end{inlinefig}
Before we continue on to filtering the data, let us take a quick look at
some of the ways to represent the data. The most common parameters for
representing data are located in a pair of toolbars. (They can also be
found in the \gui{Display} group of the properties panel.)
\index{color legend}
\index{edit colors} \index{colors!edit}
\index{scalar range}
\begin{inlinefig}
\includegraphics[width=\linewidth]{images/DataRepresentationToolbars}
%\includegraphics[scale=\bbscale]{images/DataRepresentationControls}
\end{inlinefig}
\index{representation|(}
\begin{exercise}{Representation and Field Coloring}
\label{ex:RepresentationAndFieldColoring}%
Play with the data representation a bit. Make sure
\gui{disk\_out\_ref.ex2} is selected in the pipeline browser. (If you do
not have the data loaded, repeat Exercise~\ref{ex:OpeningAFile}.) Use the
variable chooser to color the surface by the \gui{Pres} variable. To see
the structure of the mesh, change the representation to \gui{Surface With
Edges}. You can view both the cell structure and the interior of the
mesh with the \gui{Wireframe} representation.
\begin{inlinefig}
\includegraphics[width=.42\linewidth]{images/DataRepresentation1}
\includegraphics[width=.42\linewidth]{images/DataRepresentation2} \\
\includegraphics[width=.42\linewidth]{images/DataRepresentation3}
\includegraphics[width=.42\linewidth]{images/DataRepresentation4}
\end{inlinefig}
\end{exercise}
\index{representation|)}
\section{Filters}
\index{filters|(}
We have now successfully read in some data and gleaned some information
about it. We can see the basic structure of the mesh and map some data
onto the surface of the mesh. However, as we will soon see, there are many
interesting features about these data that we cannot determine by simply
looking at the surface of these data. There are many variables associated
with the mesh of different types (scalars and vectors). And remember that
the mesh is a solid model. Most of the interesting information is on the
inside.
We can discover much more about our data by applying \keyterm{filters}.
Filters are functional units that process the data to generate, extract, or
derive features from the data. Filters are attached to readers, sources,
or other filters to modify its data in some way. These filter connections
form a \keyterm{visualization pipeline}. There are a great many filters
available in ParaView. Here are the most common, which are all available
by clicking on the respective icon in the filters toolbar.
\index{toolbar!common filters}
\index{common filters|(}
\index{filters!common|(}
\begin{description}
\item[\calculator Calculator] \index{calculator} Evaluates a user-defined
expression on a per-point or per-cell basis.
\item[\contour Contour] \index{contour} Extracts the points, curves, or
surfaces where a scalar field is equal to a user-defined value. This
surface is often also called an \keyterm{isosurface}.
\item[\clip Clip] \index{clip} Intersects the geometry with a half space.
The effect is to remove all the geometry on one side of a user-defined
plane.
\item[\slice Slice] \index{slice} \index{cut|see{slice}} Intersects the
geometry with a plane. The effect is similar to clipping except that all
that remains is the geometry where the plane is located.
\item[\threshold Threshold] \index{threshold} Extracts cells that lie
within a specified range of a scalar field.
\item[\extractSubset Extract Subset] \index{extract subset} Extracts a
subset of a grid by defining either a volume of interest or a sampling
rate.
\item[\glyph Glyph] Places a \keyterm{glyph}, a simple shape, on each point
in a mesh. The glyphs may be oriented by a vector and scaled by a vector
or scalar.
\item[\streamTracer Stream Tracer] \index{stream tracer} Seeds a vector
field with points and then traces those seed points through the (steady
state) vector field.
\item[\warp Warp (vector)] \index{warp!vector} Displaces each point in a
mesh by a given vector field.
\item[\group Group Datasets] \index{group datasets} Combines the output of
several pipeline objects into a single multi block data set.
\item[\extractGroup Extract Level] \index{extract level} Extract one or
more items from a multi block data set.
\end{description}
\index{filters!common|)}
\index{common filters|)}
\index{filters menu|(}
\index{menu!filters|(}
\parpic[r]{\includegraphics[width=0.37\scw]{images/FiltersMenu}}
These eleven filters are a small sampling of what is available in ParaView.
In the \gui{Filters} menu are a great many more filters that you can use to
process your data. ParaView currently exposes more than one hundred filters, so to
make them easier to find the \gui{Filters} menu is organized into submenus.
These submenus are organized as follows.
\begin{description}
\item[Recent] The list of most recently used filters sorted with the most
recently used filters on top. \index{recent filters} \index{filters!recent}
\item[AMR] A set of filters designed specifically for data in an adaptive
mesh refinement (AMR) \index{AMR} structure. \index{filters!AMR}
\item[Annotation] Filters that add annotation (such as text information) to
the visualization. \index{filters!annotation}
\item[CTH] Filters used to process results from a CTH \index{CTH} simulation.
\item[Common] The most common filters. This is the same list of filters
available in the filters toolbar and listed previously.
\index{filters!common} \index{common filters}
\item[CosmoTools] This contains filters developed at LANL for cosmology
research. \index{CosmoTools} \index{filters!CosmoTools}
\item[Data Analysis] The filters designed to retrieve quantitative values
from the data. These filters compute data on the mesh, extract elements
from the mesh, or plot data. \index{filters!data analysis}
\item[Material Analysis] Filters for processing data from volume fractions
of materials. \index{filters!material analysis}
\item[Quadrature Points] Filters to support simulation data given as
integration points that can be used for numerical integration with
Gaussian quadrature. \index{filters!quadrature points}
\item[Statistics] This contains filters that provide descriptive
statistics of data, primarily in tabular form. \index{filters!statistics}
\index{statistcs filters}
\item[Temporal] Filters that analyze or modify data that changes over time.
All filters can work on data that changes over time because they are
executed on each time snapshot. However, filters in this category will
retrieve the available time extents and examine how data changes over
time. \index{temporal filters} \index{filters!temporal}
\item[Alphabetical] An alphabetical listing of all the filters available.
If you are not sure where to find a particular filter, this list is
guaranteed to have it. There are also many filters that are not listed
anywhere but in this list.
\end{description}
\index{menu!filters|)}
\index{filters menu|)}
\index{quick launch}
\parpic[r]{\includegraphics[width=.5\linewidth]{images/QuickLaunch}}
Searching through these lists of filters, particularly the full
alphabetical list, can be cumbersome. To speed up the selection of
filters, you should use the \keyterm{quick launch} dialog. Pressing the ctrl
and space keys together on Windows or Linux or the alt and space keys
together on Macintosh, ParaView brings up a small, lightweight dialog box
like the one shown here. Type in words or word fragments that are
contained in the filter name, and the box will list only those sources and
filters that match the terms. Hit enter to add the object to the pipeline
browser. Press Esc a couple of times to cancel the dialog.
You have probably noticed that some of the filters are grayed out. Many
filters only work on a specific types of data and therefore cannot always
be used. ParaView disables these filters from the menu and toolbars to
indicate (and enforce) that you cannot use these filters.
Throughout this tutorial we will explore many filters. However, we cannot
explore all the filters in this forum. Consult the Filters Menu chapter of
ParaView's on-line or built-in help for more information on each filter.
\begin{exercise}{Apply a Filter}
\label{ex:ApplyAFilter}%
Let us apply our first filter. If you do not have the disk\_out\_ref.ex2
data loaded, do so know (Exercise~\ref{ex:OpeningAFile}). Make sure that
\gui{disk\_out\_ref.ex2} is selected in the pipeline browser and then
select the contour filter~\contour from the filter toolbar or
\gui{Filters} menu. Notice that a new item is added to the pipeline
filter underneath the reader and that the properties panel updates to the
parameters of the new filter. As with reading a file, applying a filter
is a two step process. After creating the filter you get a chance to
modify the parameters (which you will almost always do) before applying
the filter.
\index{contour|(}
\begin{inlinefig}
\includegraphics[scale=\bbscale]{images/ContourOptions}
\end{inlinefig}
We will use the contour filter to create an isosurface where the
temperature is equal to 400 K. First, change the \gui{Contour By}
parameter to the \gui{Temp} variable. Then, change the isosurface value
to \gui{400}. Finally, hit \apply. You will see the isosurface appear
inside of the volume. If \gui{disk\_out\_ref.ex2} was still colored by
pressure from Exercise~\ref{ex:RepresentationAndFieldColoring}, then the
surface is colored by pressure to match.
\begin{inlinefig}
\includegraphics[width=\scw]{images/ContourResults}
\end{inlinefig}
\index{contour|)}
\end{exercise}
In the preceding exercise, we applied a filter that processed the data and
gave us the results we needed. For most common operations, a single filter
operation is sufficient to get the information we need. However, filters
are of the same class as readers. That is, the general operations we apply
to readers can also be applied to filters. Thus, you can apply one filter
to the data that is generated by another filter. These readers and filters
connected together form what we call a \keyterm{visualization pipeline}.
The ability to form visualization pipelines provides a powerful mechanism
for customizing the visualization to your needs.
Let us play with some more filters. Rather than show the mesh surface in
wireframe, which often interferes with the view of what is inside it, we
will replace it with a cutaway of the surface. We need two filters to
perform this task. The first filter will extract the surface, and the
second filter will cut some away.
\begin{exercise}{Creating a Visualization Pipeline}
\label{ex:CreatingAVisualizationPipeline}%
The images and some of the discussion in this exercise assume you are
starting with the state right after finishing
Exercise~\ref{ex:ApplyAFilter}. If you have had to restart ParaView
since or your state does not match up well enough, it is sufficient to
simply have disk\_out\_ref.ex2 loaded.
Start by adding a filter that will extract the surfaces. We do that with
the following steps.
\begin{enumerate}
\item Select \gui{disk\_out\_ref.ex2} in the pipeline browser.
\item From the menu bar, select \gui{Filters} \ra \gui{Alphabetical} \ra
\gui{Extract Surface}. \filterindex{extract surface} Or bring up the
quick launch (ctrl+space Win/Linux, alt+space Mac), type extract
surface, and select that filter.
\item Hit the \apply button.
\savecounter
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/CutSurface1}
\end{inlinefig}
When you apply the \gui{Extract Surface} filter, you will once again see
the surface of the mesh. Although it looks like the original mesh, it is
different in that this data is hollow whereas the original data were solid
throughout.
If you were showing the results of the contour filter, you cannot see the
contour anymore, but do not worry. It is still in there hidden by the
surface. If you are showing the contour but you did not see any effect
after applying the filter, you may have forgotten step one and applied
the filter to the wrong object. If the \gui{ExtractSurface1} object is
not connected directly to the \gui{disk\_out\_ref.ex2}, then this is what
went wrong. If so, you can delete the filter and try again.
Now we will cut away the external surface to expose the internal
structure and isosurface underneath (if you have one).
\begin{enumerate}
\restorecounter
\item Verify that \gui{ExtractSurface1} is selected in the pipeline
browser.
\item Create a clip filter \clip from the toolbar or \gui{Filters} menu.
\item Uncheck the \gui{Show Plane} checkbox
\includeinlinegraphics{images/ShowPlaneCheckbox} in the properties panel.
\item Click the \apply button.
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/CutSurface2}
\end{inlinefig}
If you have a contour, you should now see the isosurface contour within a
cutaway of the mesh surface. You will probably have to rotate the mesh
to see the contour clearly.
\end{exercise}
\index{pipeline browser|(}
\begin{inlinefig}
\includegraphics[width=\linewidth]{images/PipelineBrowserStructure}
\end{inlinefig}
Now that we have added several filters to our pipeline, let us take a look
at the layout of these filters in the pipeline browser. The pipeline
browser provides a convenient list of pipeline objects that we have created.
This makes it easy to select pipeline objects and change their
\keyterm{visibility} by clicking on the eyeball icons~\eyeball next to
them. But also notice the indentation of the entries in the list and the
connecting lines toward the left. These features reveal the
\keyterm{connectivity} of the pipeline. It shows the same information as
the traditional graph layout on the right, but in a much more compact
space. The trouble with the traditional layout of pipeline objects is that
it takes a lot of space, and even moderately sized pipelines require a
significant portion of the GUI to see fully. The pipeline browser,
however, is complete and compact.
\index{pipeline browser|)}
\index{filters|)}
\section{Multiview}
\label{sec:Multiview}
Occasionally in the pursuit of science we can narrow our focus down to one
variable. However, most interesting physical phenomena rely on not one but
many variables interacting in certain ways. It can be very challenging to
present many variables in the same view. To help you explore complicated
visualization data, ParaView contains the ability to present multiple views
of data and correlate them together.
So far in our visualization we are looking at two variables: We are
coloring with pressure and have extracted an isosurface with temperature.
Although we are starting to get the feel for the layout of these variables,
it is still difficult to make correlations between them. To make this
correlation easier, we can use multiple views. Each view can show an
independent aspect of the data and together they may yield a more complete
understanding.
On top of each view is a small toolbar, and the buttons controlling the
creating and deletion of views are located on the right side of this tool
bar. There are four buttons in all. You can create a new view by
splitting an existing view horizontally or vertically with the \splitViewH
and \splitViewV buttons, respectively. The \deleteView button deletes a
view, whose space is consumed by an adjacent view. The \maximizeView
temporarily fills view space with the selected view until \restoreView is
pressed.
\begin{exercise}{Using Multiple Views}
\label{ex:UsingMultipleViews}%
We are going to start a fresh visualization, so if you have been
following along with the exercises so far, now is a good time to reset
ParaView. The easiest way to do this is to select \gui{Edit} \ra
\gui{Reset Session}\index{reset session} from the menu. This option
deletes all of your current work and resets ParaView back to its initial
state. It is roughly the equivalent of restarting ParaView.
First, we will look at one variable. We need to see the variable through
the middle of the mesh, so we are going to clip the mesh in half.
\begin{enumerate}
\item Open the file disk\_out\_ref.ex2, load all variables, \apply (see
Exercise~\ref{ex:OpeningAFile}).
\item Add the Clip filter~\clip to \gui{disk\_out\_ref.ex2}.
\item Uncheck the Show Plane checkbox
\includeinlinegraphics{images/ShowPlaneCheckbox} in the properties panel.
\item Click the \apply button.
\item Color the surface by pressure by changing the variable chooser (in
the toolbar) from \gui{Solid Color} to \gui{Pres}.
\savecounter
\end{enumerate}
Now we can see the pressure in a plane through the middle of the mesh.
We want to compare that to the temperature on the same plane. To do
that, we create a new view to build another visualization.
\begin{enumerate}
\restorecounter
\item Press the \splitViewH button.
\savecounter
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/SplitView1}
\end{inlinefig}
The current view is split in half and the right side is blank, ready to
be filled with a new visualization. Notice that the view in the right
has a blue border around it. This means that it is the \keyterm{active
view}. Widgets that give information about and controls for a single
view, including the pipeline browser and properties panel, follow the
active view. In this new view we will visualize the temperature of the
mesh.
\begin{enumerate}
\restorecounter
\item Make sure the blue border is still around the new, blank view (to
the right). You can make any view the active view by simply clicking
on it.
\item Turn on the visibility of the clipped data by clicking the
eyeball~\eyeballg next to \gui{Clip1} in the pipeline browser.
\item Color the surface by temperature by selecting \gui{Clip1} in the
pipeline browser and changing the variable chooser (in the toolbar)
from \gui{Solid Color} to \gui{Temp}.
\savecounter
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/SplitView2}
\end{inlinefig}
We now have two views: one showing information about pressure and the
other information about temperature. We would like to compare these, but
it is difficult to do because the orientations are different. How are we
to know how a location in one correlates to a location in the other? We
can solve this problem by adding a \keyterm{camera link} so that the two
views will always be drawn from the same viewpoint. Linking cameras is
easy.
\begin{enumerate}
\restorecounter
\item Right click on one of the views and select \gui{Link Camera...}
from the pop up menu. (If you are on a Mac with no right mouse button,
you can perform the same operation with the menu option \gui{Tools} \ra
\gui{Add Camera Link...}.)
\item Click in a second view.
\item Try moving the camera in each view.
\end{enumerate}
\emph{Voil\`{a}}! The two cameras are linked; each will follow the other.
With the cameras linked, we can make some comparisons between the two
views. Click the~\xPlus button to get a straight-on view of the cross
section.
\begin{inlinefig}
\includegraphics[width=\scw]{images/CameraLink}
\end{inlinefig}
Notice that the temperature is highest at the interface with the heated
disk. That alone is not surprising. We expect the air temperature to be
greatest near the heat source and drop off away from it. But notice that
at the same position the pressure is not maximal. The air pressure is
maximal at a position above the disk. Based on this information we can
draw some interesting hypotheses about the physical phenomenon. We can
expect that there are two forces contributing to air pressure. The first
force is that of gravity causing the upper air to press down on the lower
air. The second force is that of the heated air becoming less dense and
therefore rising. We can see based on the maximal pressure where these
two forces are equal. Such an observation cannot be drawn without
looking at both the temperature and pressure in this way.
\end{exercise}
Multiview in ParaView is of course not limited to simply two windows. Note
that each of the views has its own set of multiview buttons. You can
create more views by using the split view buttons \splitViewH \splitViewV
to arbitrarily divide up the working space. And you can delete views
\deleteView at any time.
The location of each view is also not fixed. You are also able to swap two
views by clicking on one of the view toolbars (somewhere outside of where
the buttons are), holding down the mouse button, and dragging onto one of
the other view toolbars. This will immediately swap the two views.
\begin{inlinefig}
\includegraphics[width=\linewidth]{images/SwapViews}
\end{inlinefig}
You can also change the size of the views by clicking on the space in
between views, holding down the mouse button, and dragging in the direction
of either one of the views. The divider will follow the mouse and adjust
the size of the views as it moves.
\begin{inlinefig}
\includegraphics[width=\linewidth]{images/ResizeViews}
\end{inlinefig}
\section{Vector Visualization}
Let us see what else we can learn about this simulation. The simulation
has also outputted a velocity field describing the movement of the air over
the heated rotating disk. We will use ParaView to determine the currents
in the air.
A common and effective way to characterize a vector field is with
\keyterm{streamlines}. A streamline is a curve through space that at every
point is tangent to the vector field. It represents the path a weightless
particle will take through the vector field (assuming steady-state flow).
Streamlines are generated by providing a set of
\index{stream tracer!seed points} \keyterm{seed points}.
\begin{exercise}{Streamlines}
\label{ex:Streamlines}%
We are going to start a fresh visualization, so if you have been
following along with the exercises so far, now is a good time to select
\gui{Edit} \ra \gui{Reset Session} from the menu.
\begin{enumerate}
\item Open the file disk\_out\_ref.ex2, load all variables, \apply (see
Exercise~\ref{ex:OpeningAFile}).
\item Add the stream tracer filter \streamTracer to
\gui{disk\_out\_ref.ex2}.
\item Click the \apply button to accept the default parameters.
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/StreamTracer0}
\end{inlinefig}
The surface of the mesh is replaced with some swirling lines. These
lines represent the flow through the volume. Notice that there is a
spinning motion around the center line of the cylinder. There is also a
vertical motion in the center and near the edges.
The new geometry is off-center from the previous geometry. We can
quickly center the view on the new geometry with the \keyterm{reset
camera}~\resetCamera command. This command centers and fits the
visible geometry within the current view and also resets the center of
rotation to the middle of the visible geometry.
\end{exercise}
One issue with the streamlines as they stand now is that the lines are
difficult to distinguish because there are many close together and they
have no shading. Lines are a 1D structure and shading requires a 2D
surface. Another issue with the streamlines is that we cannot be sure in which
direction the flow is.
In the next exercise, we will modify the streamlines we created in
Exercise~\ref{ex:Streamlines} to correct these problems. We can create a
2D surface around our stream traces with the tube filter. This surface
adds shading and depth cues to the lines. We can also add glyphs to the
lines that point in the direction of the flow.
\begin{exercise}{Making Streamlines Fancy}
\label{ex:MakingStreamlinesFancy}%
This exercise is a continuation of Exercise~\ref{ex:Streamlines}.
You will need to finish that exercise before beginning this one.
\begin{enumerate}
\item Use the quick launch (ctrl+space Win/Linux, alt+space Mac) to add
the \gui{Tube}\filterindex{tube} filter to the streamlines.
\item Hit the \apply button.
\savecounter
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/StreamTracer1}
\end{inlinefig}
You can now see the streamlines much more clearly. As you look at the
streamlines from the side, you should be able to see circular convection
as air heats, rises, cools, and falls. If you rotate the streams to look
down the Z axis at the bottom near where the heated plate should be, you
will also see that the air is moving in a circular pattern due to the
friction of the rotating disk.
Now we can get a little fancier. We can add glyphs to the streamlines to
show the orientation and magnitude.
\begin{enumerate}
\restorecounter
\item Select \gui{StreamTracer1} in the pipeline browser.
\item Add the glyph filter~\glyph to \gui{StreamTracer1}.
\item In the properties panel, change the \gui{Glyph Type} option to
\gui{Cone}.
\item In the properties panel, change the \gui{Vectors} option to
\gui{V}.
\item Scrolling down a bit, change \gui{Scale Mode} to \gui{vector}.
\item Click the reset~\icon{Reload} button next to \gui{Scale Factor}.
\item Hit the \apply button.
\item Color the glyphs with the \gui{Temp} variable.
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/StreamTracer2}
\end{inlinefig}
Now the streamlines are augmented with little pointers. The pointers
face in the direction of the velocity, and their size is proportional to
the magnitude of the velocity. Try using this new information to answer
the following questions.
\begin{itemize}
\item Where is the air moving the fastest? Near the disk or away from it?
At the center of the disk or near its edges?
\item Which way is the plate spinning?
\item At the surface of the disk, is air moving toward the center or away
from it?
\end{itemize}
\end{exercise}
\section{Plotting}
\label{sec:Plotting}
ParaView's plotting capabilities provide a mechanism to drill down into
your data to allow quantitative analysis. Plots are usually created with
filters, and all of the plotting filters can be found in the \gui{Data
Analysis} submenu of \gui{Filters}. There is also a data analysis
toolbar containing the most common data analysis filters, some of which are
used to generate plots.
\index{toolbar!data analysis}
\index{data analysis|(}
\index{filters!data analysis|(}
\begin{description}
\item[\extractSelection Extract Selection] Extracts any data selected into
its own object. Selections are described in Section~\ref{sec:Selection}.
\item[\plotGlobal Plot Global Variables Over Time] Data sets sometimes
capture information in ``global'' variables that apply to an entire
dataset rather than a single point or cell. This filter plots the global
information over time. ParaView's handling of time is described in
Section~\ref{sec:Time}.
\item[\plotOverLine Plot Over Line] Allows you to define a line segment
in 3D space and then plot field information over this line.
\item[\plotSelectionOverTime Plot Selection Over Time] Takes the fields in
selected points or cells and plots their values over time. Selections
are described in Section~\ref{sec:Selection} and time is described in
Section~\ref{sec:Time}.
\item[\probe Probe] Provides the field values in a particular location in
space.
\end{description}
\index{filters!data analysis|)}
\index{data analysis|)}
In the next exercise, we create a filter that will plot the values of the
mesh's fields over a line in space.
\begin{exercise}{Plot Over a Line in Space}
\label{ex:PlotOverLine}%
We are going to start a fresh visualization, so if you have been
following along with the exercises so far, now is a good time to reset
ParaView. The easiest way to do this is to select \gui{Edit} \ra
\gui{Reset Session} from the menu.
\begin{enumerate}
\item Open the file disk\_out\_ref.ex2, load all variables, \apply (see
Exercise~\ref{ex:OpeningAFile}).
\item Add the Clip filter~\clip to \gui{disk\_out\_ref.ex2}, Uncheck the
Show Plane checkbox \includeinlinegraphics{images/ShowPlaneCheckbox} in
the properties panel, and click \apply (like in
Exercise~\ref{ex:UsingMultipleViews}). This will make it easier to see
and manipulate the line we are plotting over.
\item Click on \gui{disk\_out\_ref.ex2} in the pipeline browser to make
that the active object.
\item From the toolbars, select the plot over line~\plotOverLine
filter. \savecounter
\end{enumerate}
\begin{inlinefig}
\includegraphics[width=\scw]{images/LinePlot1}
\end{inlinefig}
In the active view you will see a line through your data with a ball at
each end. If you move your mouse over either of these balls, you can
drag the balls through the 3D view to place them. Notice that each time
you move the balls some of the fields in the properties panel also
change. You can also place the balls by hovering your mouse over the
target location and hitting the p key. This will alternatively place
each ball at the surface underneath the mouse cursor. This was the
purpose of adding the clip filter: It allows us to easily add the
endpoints to this plane. Note that placing the endpoints in this manner
only works when rendering solid surfaces. It will not work with a volume
rendered image or transparent surfaces.
This representation is called a \keyterm{3D widget} because it is a GUI