Commit 328b3591 authored by Utkarsh Ayachit's avatar Utkarsh Ayachit

Initial commit.

parents
cmake_minimum_required(VERSION 2.8)
project(UsersGuides)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR})
add_subdirectory(ParaView)
\section{3D Widgets}
\label{sec:3DWidgets}
In addition to being controlled manually through entry boxes, sliders, etc.,
parameters of some of the filters and sources in ParaView can be changed
interactively by manipulating 3D widgets in a 3D view. Often the 3D widgets are
used to set the parameters approximately, and then the manual controls are used
for fine-tuning these values. In the manual controls for each 3D widget, there
is a check box for toggling whether the 3D widget is drawn in the scene. The
label for the check box depends on the type of 3D widget being used. The
following 3D widgets are supported in ParaView.
\subsection{Line Widget}
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.4\linewidth]{Images/Paraview_UsersGuide_PVLineWidget.png}
\caption{Line Widget Results}
\label{fig:LineWigetResults}
\end{center}
\end{figure}
The line widget is used to set the orientation and the position of a line. It is
used in both the stream tracer and elevation filters. The position of the line
can be changed by clicking on any point on the line, except the endpoints, and
dragging. To position the widget accurately, the user may need to change the
camera position as well. Holding ''Shift'' while interacting will restrict the
motion of the line widget to one of the X, Y, or Z planes. (The plane chosen is
the one most closely aligned with the direction of the initial mouse movement.)
To move one of the endpoints, simply use one of the point widgets on each end of
the line. These are marked by spheres that become red when clicked. You can also
reposition the endpoints by pressing the \emph{P} key; the endpoint nearest to the
mouse cursor will be placed at the position on the dataset surface beneath the
mouse position. Left-clicking while the cursor is over the line and dragging
will reposition the entire line. Doing the same with the right mouse button
causes the line to resize. Upward mouse motion increases the length of the line;
downward motion decreases it.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.4\linewidth]{Images/ParaView_UsersGuide_LineWidgetUI.png}
\caption{Line Widget User Interface}
\label{fig:LineWigetUserInterface}
\end{center}
\end{figure}
The show line check box toggles the visibility of the line in the 3D view.
The controls shown in Figure~\ref{fig:LineWigetUserInterface} can be used to
precisely set the endpoint coordinates and resolution of the line. The X Axis, Y
Axis, and Z Axis buttons cause the line to be along the selected axis and pass
through the center of the bounds of the dataset.
Depending on the source or filter using this widget, the resolution spin box may
not be displayed. The value of the resolution spin box determines the number of
segments composing the line.
%\subsection{Plane Widget}
%[[File:ParaView_UsersGuide_planeWidget.png|thumb|left|400px|'''Figure 8.3''' The Plane Widget]]
%
%The plane widget is used for clipping and cutting. The plane can be moved
%parallel to its normal by left-clicking on any point on the plane except the
%line center and dragging. Right-clicking on the plane, except on the normal line
%center, and dragging scales the plane widget. Upward mouse motion increases the
%size of the plane; downward motion decreases it. The plane normal can be changed
%by manipulating one of the point widgets (displayed as cones that become red
%when clicked) at each end of the normal vector.
%
%Shown in Figure 8.4, the standard user interface for this widget provides entry boxes for setting the center position (Origin) and the normal direction of the plane as well as toggling the plane widget’s visibility (using the show plane check box). Buttons are provided for positioning the plane at the center of the bounding box of the dataset (Center on Bounds) and for aligning the plane’s normal with the normal of the camera (Camera Normal), the X axis, the Y axis, or the Z axis (X Normal, Y Normal, and Z Normal, respectively). If the bounds of the dataset being operated on change, then you can use the Reset Bounds button to cause the bounding box for the plane widget to match the new bounds of the dataset and reposition the origin of the plane at the center of the new bounds. Using only the Center on Bounds button in this case would move the origin to the center of the new bounds, but the bounds of the widget would not be updated.
%
%[[File:ParaView_UsersGuide_planeWidgetUI.png|thumb|center|400px|'''Figure 8.4''' Plane widget user interface]]
%
%=== Box Widget ===
%[[File:ParaView_UsersGuide_boxWidget.png|thumb|left|400px|'''Figure 8.5''' Box Widget]]
%
%The box widget is used for clipping and transforming datasets. Each face of the box can be positioned by moving the handle (sphere) on that face. Moving the handle at the center of the box causes the whole box to be moved. This can also be achieved by holding ''Shift'' while interacting. The box can be rotated by clicking and dragging with the left mouse button on a face (not at the handle) of the box. Clicking and dragging inside the box with the right mouse button uniformly scales the box. Dragging upward increases the box’s size; downward motion decreases it.
%
%Traditional user interface controls, shown in Figure 8.6, are also provided if more precise control over the parameters of the box is needed. These controls provide the user with entry boxes and thumb wheels or sliders to specify translation, scaling, and orientation in three dimensions.
%
%[[File:ParaView_UsersGuide_boxWidgetUI.png|thumb|center|400px|'''Figure 8.6 Box widget user interface]]
%
%=== Sphere Widget ===
%[[File:ParaView_UsersGuide_sphereWidget.png|thumb|left|400px|'''Figure 8.7''' Sphere Widget]]The sphere widget is used in clipping and cutting. The sphere can be moved by left-clicking on any point on the sphere and dragging. The radius of the sphere is manipulated by right-clicking on any point on the sphere and dragging. Upward mouse motion increases the sphere’s radius; downward motion decreases it.
%
%As shown in Figure 8.8, the center and radius can also be set manually from the entry boxes on the user interface. There is also a button to position the sphere at the center of the bounding box of the current dataset.
%
%[[File:ParaView_UsersGuide_sphereWidgetUI.png|thumb|center|400px|'''Figure 8.8''' Sphere widget user interface]]
%
%
%=== Point Widget ===
%
%[[File:ParaView_UsersGuide_pointWidget.png|thumb|left|400px|'''Figure 8.9''' Point Widget]]The point widget is used to set the position of a point or the center of a point cloud. It is used by the Stream Tracer, Probe Location and Probe Location over Time filters. The position of the point can be changed by left-clicking anywhere on it and dragging. Right-clicking and dragging anywhere on the widget changes the size of the point widget in the scene. To position the widget accurately, the user may need to change the camera position as well. Holding ''Shift'' while interacting will restrict the motion of the point to one of the X, Y or Z planes. The plane chosen is the one that is most closely aligned with the direction of the initial mouse movement.
%
%As shown in Figure 8.10, entry boxes allow the user to specify the coordinates of the point, and a button is provided to position the point at the center of the bounds of the current dataset. If the point widget is being used to position a point cloud instead of a single point, entry boxes are also provided to specify the radius of the point cloud and the number of points the cloud contains.
%
%[[File:ParaView_UsersGuide_pointWidgetUI.png|thumb|center|400px|'''Figure 8.10''' Point widget user interface]]
%
%=== Spline Widget ===
%
%[[File:ParaView_UsersGuide_splineWidget.png|thumb|left|300px|'''Figure 8.11''' Spline Widget]]The spline widget is used to define a path through 3D space. It is used by the Spline Source source and in the Camera animation dialog. The widget consists of a set of control points, shown as spheres in the 3D scene that can be clicked on with the mouse and dragged perpendicular to the viewing direction. The points are ordered and the path through them defines a smoothly varying path through 3D space.
%
%As shown in Figure 8.12, the text control box for the spline widget allows you to add or delete control points and specify their locations exactly. You can hide or show the widget and can choose to close the spline to create a loop, which adds a path segment from the last control point back to the first.
%
%[[File:ParaView_UsersGuide_splineWidgetUI.png|thumb|center|400px|'''Figure 8.12''' Spline widget user interface]]
This diff is collapsed.
include(UseLATEX)
add_latex_document(
ParaViewUsersGuide.tex
INPUTS AboutParaView.tex
DataIngestion.tex
VTKDataModel.tex
InformationPanel.tex
StatisticsInspector.tex
MemoryInspector.tex
MultiBlockInspector.tex
ViewsAndRepresentations.tex
ColorMapping.tex
FilterParameters.tex
ManipulatingThePipeline.tex
FilterCategories.tex
FilteringRecommendations.tex
Macros.tex
PythonProgrammableFilter.tex
Calculator.tex
PythonCalculator.tex
SpreadsheetView.tex
Selection.tex
QueryData.tex
Histogram.tex
PlottingAndProbingData.tex
SavingData.tex
ExportingScenes.tex
3DWidgets.tex
BIBFILES References.bib
IMAGE_DIRS Images
DEFAULT_PDF
DEPENDS multicols.sty
MANGLE_TARGET_NAMES
)
\section{Calculator}
\label{sec:Calculator}
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.5\linewidth]{Images/ParaView_UG_Calculator.png}
\caption{Properties Panel for Calculator}
\label{fig:}
\end{center}
\end{figure}
\subsection{Basics}
The Calculator Filter can be use to calculate derived quantities from existing
attributes. The main parameter of the Calculator is an expression that describes
how to calculate the derived quantity. You can enter this expression as
free-form text or using some of the shortcuts (buttons and menus provided).
There are some \emph{hidden} expressions for which there are no buttons. Operands
that are accessible only by typing in the function name include:
\begin{itemize}
\item $min(expr1, expr2)$ Returns the lesser of the two scalar expressions
\item $max(expr1, expr2)$ Returns the greater of the two scalar expressions
\item $cross(expr1, expr2)$ Returns the vector cross product of the two vector
expressions
\item $sign(expr)$ Returns -1, 0 or 1 depending if the scalar expression is less
than, equal to or greater than zero respectively
\item $if(condition, true\_expression, false\_expression)$ Evaluates the conditional
expression and then evaluates and returns one of the two expressions
\item $>$ Numerical \emph{greater than} conditional test
\item $<$ Numerical \emph{less than} conditional test
\item $=$ Numerical \emph{equal to} conditional test
\item $\&$ Boolean \emph{and} test conjunction
\item $|$ Boolean \emph{or} test conjunction
\end{itemize}
Note that it is recommended that you use the Python Calculator instead of
Calculator if possible. The Python Calculator is more flexible, has more
functions and is more efficient. However, it requires that ParaView is compiled
with Python support and that NumPy is installed.
Create a Wavelet source and then apply the Calculator using "1" as the
expression. '''Note:''' You can enter an expression by clicking in the
expression entry box and typing. This should create a point array called
"Result" in the output. A few things to note:
\begin{itemize}
\item The Calculator copies the input mesh to the output. It is possible to have
the calculator change the point coordinates, which is discussed.
\item The expression is calculated for each element in the output point or cell
data (depending on the Attribute Mode).
\end{itemize}
Next, change the expression to be $5 * RTData$ and the Result Array Name to be
\emph{5 times rtdata}. If you change to surface representation and color by the
new array, you will notice that the filter calculated $5 \times RTData$ at each
point.
The main use case for the Calculator is to utilize one or more input arrays to
calculate derived quantities. The Calculator can either work on point centered
attributes or cell centered attributes (but not both). In order to help enter
the names of the input arrays, the Calculator provides two menus accessible
through the \emph{Scalars} and \emph{Vectors} buttons. If you select an array
name from either menus, it will be inserted to the expression entry box at the
cursor location. You can also use the other buttons to enter any of the
functions available to the Calculator.
\subsection{Working with Vectors}
To start with an example, create a Wavelet source then apply the Random Vectors
filter. Next, apply the Calculator. Now look at the Scalars and Vectors menus on
the Object Inspector panel. You will notice that BrownianVectors shows up under
Vectors, whereas BrownianVectors\_X, \_Y and \_Z show up under scalars. The
Calculator allows access to individual components of vectors using this naming
convention. So if you use BrownianVectors\_X as the expression, the Calculator
will extract the first component of the BrownianVectors attribute. All of the
Calculator's functions are applicable to vectors. Most of these functions treat
the vector attributes the same as scalars, mainly applying the same functions to
all components of all elements. However, the following functions work only on
vectors:
\begin{compactitem}
\item $v1 . v2$: Dot product of two vectors. Returns a scalar.
\item $norm$: Creates a new array that contains normalized versions of the
input vectors.
\item $mag$: Returns the magnitude of input vectors.
\end{compactitem}
You may have noticed that four calculator buttons on the Object Inspector are
not actually functions. Clear is straightforward. It cleans the expression entry
box. iHat, jHat and kHat on the other hand are not as clear. These represent
unit vectors in X, Y and Z directions. They can be used to construct vectors
from scalars. Take for example the case where you want to set the Z component of
BrownianVectors from the previous example to 0. The expression to do that is
$BrownianVectors_X*iHat + BrownianVectors_Y*jHat + 0*kHat$. This expression
multiplies the X unit vector with the X component of the input vector, the Y
unit vector with the Y component, and the Z unit vector with 0 and add them
together. You can use this sort of expression to create vectors from individual
components of a vector if the reader loaded them separately, for example. Note
that You did not really need the $0*kHat$ bit, which was for demonstration.
\subsection{Working with Point Coordinates}
You may have noticed that one point-centered vector and its three components are
always available in the Calculator. This vector is called "coords" and
represents the point coordinates. You can use this array in your expression like
any other array. For instance, in the previous example you could use
$mag(coords)*RTData$ to scale RTData with the distance of the point to the
origin.
It is also possible to change the coordinates of the mesh by checking the
\emph{Coordinate Results} box. Note that this does not work for rectilinear
grids (uniform and non-uniform) since their point coordinates cannot be adjusted
one-by-one. Since the previous examples used a uniform rectilinear grid, you
cannot use them. Instead, start with the Sphere source, then use this
expression: $coords+2*iHat$. Make sure to check the \emph{Coordinate Results}
box. The output of the Calculator should be a shifted version of the input
sphere.
\subsection{Dealing with Invalid Results}
Certain functions are not applicable to certain arguments. For example, sqrt()
works only on positive numbers since the calculator does not support complex
numbers. Unless the \emph{Replace invalid results} option is turned on, an
expression that tries to evaluate the square root of a negative number will
return an error such as this:
\begin{python}
ERROR: In /Users/berk/Work/ParaView/git/VTK/Common/vtkFunctionParser.cxx, line 697
vtkFunctionParser (0x128d97730): Trying to take a square root of a negative value
\end{python}
However, if you turn on the \emph{Replace invalid results} option, the
calculator will silently replace the result of the invalid expression with the
value specified in \emph{Replacement value}. Note that this will happen only
when the expression result is an invalid result so some of the output points (or
cells) may have the Replacement Value whereas others may have valid results.
\section{Color Mapping}
\label{sec:ColorMapping}
\section{Getting data into ParaView}
\label{sec:DataIngestion}
Loading data is a fundamental operation in using ParaView for visualization.
As you would expect, the Open option from the File menu and the Open Button from
the toolbar both allow you to load data into ParaView. ParaView understands many
scientific data file formats. The most comprehensive list is given in the
\todo{FixReferences}
%[http://paraview.org/Wiki/ParaViewUsersGuide/List_of_readers List of Readers]
appendix. Because of ParaView's modular design it is easy to integrate new
readers. If the formats you need are not listed, ask the mailing list first to
see if anyone has a reader for the format or, if you want to create your own
readers for ParaView see the \todo{FixReferences}
%[http://www.paraview.org/Wiki/ParaView/Plugin_HowTo#Adding_a_Reader Plugin HowTo] section and
the \todo{FixReferences}
%[http://paraview.org/Wiki/Writing_ParaView_Readers Writing Readers]
appendix of this book.
\subsection{Opening a file or a time-series}
\label{sec:DataIngestion:OpeningAFile}
ParaView recognizes file series by using certain patterns in the name of files
including:
\begin{compactenum}
\item $fooN.vtk$
\item $foo_N.vtk$
\item $foo-N.vtk$
\item $foo.N.vtk$
\item $Nfoo.vtk$
\item $N.foo.vtk$
\item $foo.vtk.N$
\item $foo.vtk-sN$
\end{compactenum}
In the above file name examples, N is an integer (with any number of leading
zeros). To load a file series, first make sure that the file names match one
of the patterns described above. Next, navigate to the directory where the file
series is. The file browser should look like
Figure~\ref{fig:SampleBrowserWhenOpeningFiles}.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.6\linewidth]{Images/ParaView_UG_FileSeries.png}
\caption{Sample file browser when opening files}
\label{fig:SampleBrowserWhenOpeningFiles}
\end{center}
\end{figure}
You can expand the file series by clicking on the triangle, as shown in the
above diagram. Simply select the group (in the picture named blow..vtk) and
click OK. The reader will store all the filenames and treat each file as a time
step. You can now animate, use the annotate time filter, or do anything you can
do with readers that natively support time. If you want to load a single step of
a file series just expand the triangle and select the file you are interested
in.
\subsection{Opening Multiple Files}
\label{sec:DataIngestion:OpeningMultipleFiles}
ParaView supports loading multiple files as long as they exist in the same
directory. Just hold the Ctrl key down while selecting each file
(Figure~\ref{fig:OpeningMultipleFiles}), or hold shift to select all files in a range.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.6\linewidth]{Images/ParaView_UG_MultipleFileOpen.png}
\caption{Opening multiple files}
\label{fig:OpeningMultipleFiles}
\end{center}
\end{figure}
\subsection{State Files}
\label{sec:DataIngestion:StateFiles}
Another option is to load a previously saved state file (\emph{File}|\emph{Load
State}). This will return ParaView to its state at the time the file was saved
by loading data files, applying filters.
\subsection{Advanced Data Loading}
\label{sec:DataIngestion:AdvancedDataLoading}
If you commonly load the same data into ParaView each time, you can streamline
the process by launching ParaView with the data command-line argument
($--data=data_file$).
\subsection{Properties Panel}
\label{sec:DataIngestion:PropertiesPanel}
Note that opening a file is a two step process, and so you do not see any data
after opening a data file. Instead, you see that the Properties Panel is
populated with several options about how you may want to read the data.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.4\linewidth]{Images/ParaView_UG_FileLoadObjectInspector.png}
\caption{Using the Properties panel}
\label{fig:UsingThePropertiesPanel}
\end{center}
\end{figure}
Once you have enabled all the options on the data that you are interested in
click the \emph{Apply} button to finish loading the data. For a more detailed
explanation of the object inspector read the \todo{FixReferences}.
%[[ParaView/UsersGuide/Filtering_Data#Properties | Properties Section ]].
\section{Exporting Scenes}
\label{sec:ExportingScenes}
ParaView provides functionality to export any scene set up with polygonal data
(i.e without volume rendering). Currently X3D\cite{X3DURL} (ASCII
as well as binary), VRML\cite{VRMLURL}, and POV-Ray\cite{POVRAYURL} are supported. To
export a scene, set up the scene in a 3D view. Only one view can be exported at
a time. With the view to be exported active, choose \emph{File}| Export.
A new HTML/WebGL exporter is also now available in ParaView/master or in ParaView 4 as a plugin.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.3\linewidth]{Images/Export.png}
\caption{Export option in the File menu can be used to export the scene set up in a 3D view}
\label{fig:ExportScenes}
\end{center}
\end{figure}
The file-open dialog will list the available types. The type is determined based on the extensions of the file written out:
\begin{compactitem}
\item *.vrml
\item *.x3d
\item *.x3db
\item *.pov
\item *.html
\end{compactitem}
\section{Filter Categories}
\label{sec:FilterCategories}
\subsection{Available Filters}
There are many filters available in ParaView \todo{FixReferences}
%([[ParaView/Users Guide/List of filters |1]])
(and even more in VTK). Because ParaView has a modular
architecture, it is routine for people to add additional
filters
%([[ParaView/Users_Guide/Plugins |2]])
\todo{FixReferences}.
Some filters have obscure purposes and are rarely used, but others are more
general purpose and used very frequently. These most common filters are found
easily on the \emph{Common} (\emph{View}|\emph{Toolbars}) toolbar
(Figure~\ref{fig:CommonFiltersToolbar}).
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.6\linewidth]{Images/ParaView_UsersGuide_CommonFiltersToolbar.png}
\caption{Common Filters Toolbar}
\label{fig:CommonFiltersToolbar}
\end{center}
\end{figure}
These filters include:
\begin{itemize}
\item \emph{Calculator} - Evaluates a user-defined expression on a per-point or
per-cell basis.
\item \emph{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 isosurface
\item \emph{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 \emph{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 \emph{Threshold} - Extracts cells that lie within a specified range of a
scalar field.
\item \emph{Extract Subset} - Extracts a subset of a grid by defining either a
volume of interest or a sampling rate.
\item \emph{Glyph} - Places a 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 \emph{Stream Tracer} - Seeds a vector field with points and then traces
those seed points through the (steady state) vector field.
\item \emph{Warp} - Displaces each point in a mesh by a given vector field.
\item \emph{Group Datasets} - Combines the output of several pipeline objects
into a single multi block dataset.
\item \emph{Group Extract Level} - Extract one or more items from a multi block
dataset.
\end{itemize}
These eleven filters are a small sampling of what is available in ParaView.
In the alphabetical submenu of the Filters menu you will find all of the filters
that are useable in your copy of ParaView. Currently there are mote than one
hundred of them, so to make them easier to find the Filters menu is organized
into submenus. These submenus are organized as follows.
\begin{itemize}
\item \emph{Recent} - The filters you've used recently.
\item \emph{Common} - The common filters. This is the same set of filters as on
the common filters toolbar.
\item \emph{Cosmology} - This contains filters developed at LANL for cosmology
research.
\item \emph{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.
\item \emph{Statistics} - This contains filters that provide descriptive
statistics of data, primarily in tabular form.
\item \emph{Temporal} - Filters that analyze or modify data that changes over
time.
\end{itemize}
All filters can work on data that changes over time because they are re-executed
at each time step. Filters in this category have the additional capability to
inspect and make use of or even modify the temporal dimension.
\begin{itemize}
\item \emph{Alphabetical} - Many filters do not fit into the above categories so
all filters can be found here (see Figure~\ref{fig:AlphabeticalFiltersMenu}).
\end{itemize}
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.7\linewidth]{Images/ParaView_UsersGuide_FilterMenu.png}
\caption{A portion of the Alphabetical submenu of the Filters menu.}
\label{fig:AlphabeticalFiltersMenu}
\end{center}
\end{figure}
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 quick launch dialog (Figure~\ref{fig:QuickLaunch}.
Choose the first item from the filters menu, or
alternatively press either \emph{CTRL} and \emph{SPACE BAR} (Windows or Linux)
or \emph{ALT} and \emph{SPACE BAR} (Macintosh) together to bring up the Quick
Launch dialog. As you type in words or word fragments the dialog lists the
filters whose names contain them. Use the up and down arrow key to select from
among them and hit \emph{ENTER} to create the filter.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.4\linewidth]{Images/ParaView_UsersGuide_QuickLaunchDialog.png}
\caption{Quick Launch}
\label{fig:QuickLaunch}
\end{center}
\end{figure}
\subsection*{Why can't I apply the filter I want?}
Note that many of the filters in the menu will be grayed out and not selectable
at any given time. That is because any given filter may only operate on
particular types of data. For example, the Extract Subset filter will only
operate on structured datasets so it is only enabled when the module you are
building on top of produces image data, rectilinear grid data, or structured
grid data. Likewise, the contour filter requires scalar data and cannot operate
directly on datasets that have only vectors. The input restrictions for all
filters are listed in the
%[[ParaViewUsersGuide/List_of_filters| Appendix]]
\todo{FixReferences} and help menus.
When the filter you want is not available you should look for a similar filter
which will accept your data or apply an intermediate filter which transforms
your data into the required format. You can also ask ParaView
to try to do the conversion for you automatically by clicking \emph{Auto convert
Properties} in the application
%[[ParaView/Users_Guide/Settings | settings]]
\todo{FixReferences}.
\subsection*{What does that filter do?}
A description of what each filter does, what input data types it accepts and
what output data types it produces can be found in the
%[[ParaViewUsersGuide/List_of_filters|Appendix]]
\todo{FixReferences}
and help menus. For a more
complete understanding, remember that most ParaView filters are simply VTK
algorithms, each of which is documented online in the VTK\cite{VTKDoxygen}
and ParaView\cite{ParaViewDoxygen} Doxygen pages.
When you are exploring a given dataset, you do not want to have to hunt through
the detailed descriptions of all of the filters in order to find the one filter
that is needed at any given moment. It is useful then to be aware of the general
high-level taxonomy of the different operations that the filters can be
logically grouped into.
These are:
% <!-- TODO these lists should be expanded and improved and each filter listed
% should have a short explanations or at least a links to its entry in the
% appendix. -->
\begin{itemize}
\item \emph{Attribute Manipulation} : Manipulates the field aligned, point
aligned and cell aligned data values and in general derive new aligned
quantities, including
% TODO could have separate categories for quantities derived from geometry,
% topology like normals, mesh quality, elevation.
Curvature, Elevation, Generate IDs, Generate Surface Normals, Gradient, Mesh
Quality, Principal Component Analysis, and Random Vectors.
\item \emph{Geometric Manipulation} : Operates on or manipulates the shape of
the data in a spatial context, including
%<!-- TODO separate category for decimation, refinement -->
Reflect, Transform, and Warp
\item \emph{Topological operations} : Manipulates the connected structure of the
data set itself, usually creating or destroying cells, for instance to reduce
the data sets memory size while leaving it in the same place in space, including
Cell Centers, Clean, Decimate, Extract Surface, Quadric Clustering, Shrink,
Smooth, and Tetrahedralize.
\item \emph{Sampling} : Computes new datasets that represent some essential
features from the datasets that they take as input, including Clip, Extract
Subset, Extract Selection, Glyph, Streamline, Probe, Plot, Histogram, and Slice.
\item \emph{Data Type Conversion} : Converts between the various VTK data
structures~\ref{sec:VTKDataModel} and joins or
splits entire data structures, including Append DataSets, Append Geometry,
Extract Blocks, Extract AMR Blocks, and Group DataSets.
\item \emph{White Box Filters} : Performs arbitrary processing as specified at
runtime by you the user, including the Calculator and Python Programmable
filters.
\end{itemize}
\section{Filter Parameters}
\label{sec:FilterParameters}
Each time a dataset is opened from a file, a source is selected, a filter is
applied, or an existing reader, source, or filter (hereafter simply referred to
as filter) is selected in the Pipeline Browser, ParaView updates the Object
Inspector for the corresponding output dataset. The Object Inspector has three
tabs. In this chapter we are primarily concerned with the Properties tab. The
[[ParaView/Displaying Data|Display]] tab gives you control over the visual
characteristics of the data produced by the filter as displayed in the active
view. The [[ParaView/Users Guide/Information Panel|Information]]
\todo{FixReferences} tab presents
meta-information about the data produced by the filter.
== Properties ==
From the Properties tab you modify the parameters of the filter, fine tuning
what it produces from its input, if any.
For example, a filter that extracts an isocontour will have a control with which
to set the isovalue (or isovalues) to extract at. The specific controls and
information provided on the tab then are specific to the particular vtkAlgorithm
you are working with, but all filters have at least the Apply, Reset, Delete and
? (help) controls.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=0.6\linewidth]{Images/ParaView_UsersGuide_PropertiesTabExample.png}
\caption{Properties panel for a cone source}
\label{fig:SamplePropertiesPanel}
\end{center}
\end{figure}
The help button brings up the documentation for the filter in ParaView's help
system in which the input restrictions to the filter, output type generated by
the filter, and descriptions of each parameter are listed. The same information
is repeated in the Appendices
%[[ParaView/Users Guide/List of readers#Readers|1]], [[ParaView/Users Guide/List of filters|2]]
\todo{FixReferences} of this book
The Delete button removes this filter from the pipeline. The delete button is
only enabled when there are no filters further down the pipeline that depend on
this filter's output. You have to either use the Pipeline Browser and Object
Inspector in conjunction to delete the dependent parts of the pipeline or use
Delete All from the Edit menu.
When a reader, source, or filter is first selected, the associated data set is
not immediately created. By default (unless you turn on Auto-Accept in
ParaView's settings) the filter will not run until you hit the \emph{Apply}
button. When you do press apply, ParaView sends the values shown on the
Properties tab to the data processing engine and then the pipeline is executed.
This delayed commit behavior is important when working with large data, for
which any given action might take a long time to finish.
Until you press Apply and any other time that the values shown on the GUI do not
agree with what was last sent to the server, the the Apply button will be
highlighted (in blue or green depending on your operating system). In this state
the Reset button is also enabled. Pressing that returns the GUI to the last
committed state, which gives you an easy way to cancel mistakes you've made
before they happen.
The specific parameter control widgets vary from filter to filter and sometimes
vary depending on the exact input to the filter. Some filters have no parameters
at all and others have many. Many readers present the list and type of arrays in
the file, and allow you to pick some or all of them as you need. In all cases
the widgets shown on the Properties tab give you control over exactly what the
filter does. If you are unsure of what they do, remember to hit the ? button to
see the documentation for that filter.
Note that ParaView attempts to provide reasonable default settings for the
parameter settings and to some extent guards against invalid entries. A numeric
entry box will not let you type in non-numerical values for example. Sliders and
spin boxes typically have minimum and maximum limits built in. In some cases
though you may want to ignore these default limits. Whenever there is a numeric
entry beside the widget, you are able to manually type in any number you need
to.
Some filter parameters are best manipulated directly in the 3D View window with
the mouse. For example, the Slice filter extracts slices from the data that lie
on a set of parallel planes oriented in space. This type of world space
interactive control is what [[Users Guide Widgets|3D Widgets]]
\todo{FixReferences} are for. The