Difference between revisions of "ParaView/Users Guide/Introduction"

From KitwarePublic
Jump to: navigation, search
(initial dump from the paraview book)
 
(The Pipeline Concept)
(35 intermediate revisions by 8 users not shown)
Line 1: Line 1:
= User Interface =
+
[[File:ParaView_UsersGuide_ParaViewLogo.png|500px]]
In this chapter, we will discuss the parts of the ParaView user interface. Shown below is the ParaView GUI as it appears at start-up on Windows after an initial data set is loaded.
+
  
<center></center>
+
== What is ParaView? ==
  
<center>'''Figure 1. Initial ParaView GUI'''</center>
+
ParaView is an open-source, multi-platform application for the visualization and analysis of scientific datasets, primarily those that are defined natively in a two- or three-dimensional space including those that extend into the temporal dimension.
  
The parts of the main window of the ParaView user interface labeled in the above image will be described in detail in this chapter. Following the sections about the labeled parts of the interface, we will discuss the '''Pipeline Browser''' for moving between data sets in ParaView. Then we will describe some application settings available for ParaView. We will end the chapter by discussing ParaView's rendering parameters.
+
The front end graphical user interface (GUI) has an open, flexible and intuitive user interface that still gives you fine-grained and open-ended control of the data manipulation and display processing needed to explore and present complex data as you see fit.  
  
Because ParaView is built on top of VTK, it inherits its pipeline architecture. ParaView’s user interface is designed to make connecting the pieces of the pipeline more intuitive. A diagram of the current visualization pipeline is visible in the '''Pipeline Browser'''. Changing the connections in the pipeline can be done by right-clicking a filter in the '''Pipeline Browser''' and selecting '''Change Input''' from the context menu or by selecting '''Change Input''' from the '''Edit''' menu.  
+
ParaView has extensive scripting and batch processing capabilities. The standard scripting interface uses the widely used python programming language for scripted control. As with the GUI, the python scripted control is easy to learn, including the ability to record actions in the GUI and save them out as succinct human readable python programs. It is also powerful, with the ability to write scripted filters that run on the server that have access to every bit of your data on a large parallel machine.  
  
== Menus ==
+
ParaView's data processing and rendering components are built upon a modular and scalable distributed-memory parallel architecture in which many processors operate synchronously on different portions of the data. ParaView's scalable architecture allows you to run ParaView directly on anything from a small netbook class machine up to the world's largest supercomputer. However, the size of the datasets ParaView can handle in practice varies widely depending on the size of the machine that ParaView's server components are run on. Thus people frequently do both, taking advantage of ParaView's client/server architecture to connect to and control the supercomputer from the netbook.
[[Image:]]
+
  
There are eight menus in the menu bar at the top of the main ParaView window. The functionality in each of these menus is described below. The '''Filters''' menu is initially grayed out because no data has been loaded; filters can only be applied to data that has been loaded into the application.
+
ParaView is meant to be easily extended and customized into new applications and be used by or make use of other tools. Correspondingly there are a number of different interfaces to ParaView's data processing and visualization engine, for example the web-based [http://www.paraview.org/Wiki/ParaViewWeb ParaViewWeb]. This book does not focus on these nor does it describe in great detail the programmers' interface to the ParaView engine. The book instead focuses on understanding the standard ParaView GUI based application.
  
=== File Menu ===
+
== User Interface ==
<center>[[Image:]]</center>
+
The different sections of ParaView's Graphical User Interface (GUI) are shown below. Of particular importance in the following discussion are the:
 +
*File and Filter menus which allow you to open files and manipulate data
 +
*Pipeline Browser which displays the visualization pipeline
 +
*Object Inspector with its Properties, Display and Information tabs where you can control any given module within the pipeline
 +
*View area where data is displayed in one or more windows
  
<center>'''Figure 2. File menu'''</center>
+
[[Image:ParaView_UsersGuide_ParaViewGUIOverview.png|thumb|center|800px|link=|'''Figure 1.1''' ParaView GUI Overview]]
  
The '''File''' menu handles various tasks involving loading data, saving data, and server connections. Each entry in the '''File''' menu is described below.
+
=== Modality ===
 +
One very important thing to keep in mind when using ParaView is that the GUI is very modal. At any given time you will have one "active" module within the visualization pipeline, one "active" view, and one "active" selection. For example, when you click on the name of a reader or source within the Pipeline Browser, it becomes the active module and the properties of that filter are displayed in the Object Inspector. Likewise when you click within a different view, that view becomes the active view and the visibility "eye" icons in the Pipeline Browser are changed to show what filters are displayed within this View. These concepts will be described in detail in later chapters
 +
([http://paraview.org/Wiki/ParaView/Displaying_Data#Multiple_Views Multiple Views],[http://paraview.org/Wiki/ParaView/UsersGuide/Filtering_Data#Pipeline_Basics Pipeline Basics],[http://paraview.org/Wiki/ParaView/Users_Guide/Selection Selection]). For now you should be aware that the information displayed in the GUI always pertains to these active entities.
  
'''Open''': This allows you to load data files. The data file formats ParaView supports are described in section Error: Reference source not found, Error: Reference source not found.
+
=== Features ===
 +
Modern graphical applications allow users to treat the GUI as a document where informations can be queried and used by Copy/Paste from one place to another and that's precisely where we are heading to with ParaView.
 +
Typically user can query any Tree/Table/List view widget in the UI by activating that component and by hitting the Ctrl+F or Command+F on Mac keyboard shortcut, while the view widget is in focus. This will enable a dynamic widget showing up which get illustrated in the following screenshot. This search-widget will be closed when the view widget lost focus, or the Esc button is pressed, or the Close button on the search-widget is clicked.  
  
'''Recent Files''': If you have previously loaded data into ParaView, a list of the most recently opened files will be available from the '''Recent Files''' submenu. Files are listed according to the server connection used when they were last loaded. Selecting a file from this submenu will load it into ParaView.
+
[[Image:FindText.png|thumb|center|400px|link=|'''Figure 1.2''' Searching in lists ]]
  
'''Load State''' and '''Save State''': These entries handle saving and loading ParaView state files. These files capture the current state of the ParaView server manager, allowing the user to recreate a particular visualization and restore the state of the ParaView application.
+
[[Image:SearchText.png|thumb|center|400px|link=|'''Figure 1.3''' Searching in trees ]]
  
'''Save Data''': This menu option allows you to save the data you are currently visualizing to a data file. ParaView allows you to save your data in a variety of data file formats. See section Error: Reference source not found.
 
  
'''Save Screenshot''': This allows you to save the selected view (highlighted in red) to an image file. ParaView supports saving images in several standard image formats: PNG, BMP, TIFF, PPM, and JPG. Saving the view image to a PDF is also supported.
+
In order to retrieve data from spreadsheet or complex UI, you will need to double click on the area that you are interested in and select the portion of text that you want to select to Copy. The set of screenshots below illustrate different selection use case across the UI components.
  
'''Save Animation''': This menu option allows you to save the result of an animation. The animation can be saved as a series of images (JPEG, TIFF, or PNG) or as an AVI movie file.
+
[[Image:ParaViewCopyPaste3.png|thumb|center|400px|link=|'''Figure 1.4''' Copying time values from Information Tab]]
  
'''Save Geometry''': This entry allows you to save the geometry created by an animation in the PVD file format.
+
[[Image:ParaViewCopyPaste1.png|thumb|center|400px|link=|'''Figure 1.5''' Copying values from trees on the Information Tab]]
  
'''Connect''': Connect the ParaView client to a ParaView server. This menu option will disconnect ParaView from the server that it is connected to, and establish a new connection with a server that you choose. Chapter Error: Reference source not found describes the client and server components of ParaView and dialog that this button initiates to let you choose a server in detail.
+
[[Image:ParaViewCopyPaste4.png|thumb|center|400px|link=|'''Figure 1.6''' Copying values from Spreadsheet View]]
  
'''Disconnect''': Disconnect the ParaView client from a ParaView server, and establish a connection with the builtin server. Whenever you disconnect from a server, the server process is shut down and the datasets in its memory are destroyed. Before actually disconnecting, ParaView displays a dialog box that gives you the chance to verify that you have not attempted to disconnect accidentally.
+
[[Image:ParaViewCopyPaste2.png|thumb|center|400px|link=|'''Figure 1.7''' Copying values from Information Tab]]
  
'''Exit''': This last item on the '''File''' menu closes the ParaView application. Clicking the '''X''' in the upper right corner of the application window has the same effect.
+
== Basics of Visualization ==
 +
Put simply, the process of visualization is taking raw data and converting it to a form that is viewable and understandable to humans. This enables a better cognitive understanding of our data. Scientific visualization is specifically concerned with the type of data that has a well-defined representation in 2D or 3D space. Data that comes from simulation meshes and scanner data is well suited for this type of analysis.
  
=== Edit Menu ===
+
There are three basic steps to visualizing your data: reading, filtering, and rendering. First, your data must be read into ParaView. Next, you may apply any number of filters that process the data to generate, extract, or derive features from the data. Finally, a viewable image is rendered from the data and you can then change the viewing parameters or rendering modality for best the visual effect.
<center>[[Image:]]</center>
+
  
<center>'''Figure 3. Edit menu'''</center>
+
== The Pipeline Concept ==
 +
In ParaView, these steps are made manifest in a visualization pipeline. That is, you visualize data by building up a set of modules, each of which takes in some data, operates on it, and presents the result as a new dataset. This begins with a reader module that ingests data off of files on disk.  
  
'''Undo/Redo''': Undo the last action (or redo the last undone action) performed in ParaView not related to changing the point of view or orientation for viewing data in a 3D view. This is the same functionality provided by the Undo/Redo controls toolbar.
+
Reading data into ParaView is often as simple as selecting Open from the File menu, and then clicking the glowing Accept button on the reader's Object Inspector tab. ParaView comes with support for a large number of file formats [http://paraview.org/Wiki/ParaViewUsersGuide/List_of_readers], and its modular architecture makes it possible to add new file readers [http://paraview.org/Wiki/Writing_ParaView_Readers].
  
'''Undo/Redo Camera''': Undo the last camera-related action (or redo the last undone action of this type). Camera-related actions include changing the viewpoint for looking at the data in the 3D scene (rotating, panning, zooming, selecting one of the axis-aligned views) or changing the orientation for viewing the data (rolling).
+
Once a file is read, ParaView automatically renders it in a view. In ParaView, a view is simply a window that shows data. There are different types of views, ranging from qualitative computer graphics rendering of the data to quantitative spreadsheet presentations of the data values as text. ParaView picks a suitable view type for your data automatically, but you are free to change the view type, modify the rendering parameters of the data in the view, and even create new views simultaneously as you see fit to better understand what you have read in. Additionally, high-level meta information about the data including names, types and ranges of arrays, temporal ranges, memory size and geometric extent can be found in the Information tab.
  
'''Change Input''': Choose a new input for the item selected in the '''Pipeline Browser'''. This only works for filters in the pipeline since sources and readers do not have inputs. The user interface for choosing a new input is discussed in section 1.6 later in this chapter.
+
You can learn a great deal about a given dataset with a one element visualization pipeline consisting of just a reader module. In ParaView, you can create arbitrarily complex visualization pipelines, including ones with multiple readers, merging and branching pipelines. You build up a pipeline by choosing the next filter in the sequence from the Filters menu. Once you click Accept, this new filter will read in the data produced by the formerly active filter and perform some processing on that data. The new filter then becomes the active one. Filters then are created differently from but operate in the same manner as readers. At all points you use the Pipeline Inspector to choose the active filter and then the Object Inspector to configure it.
  
'''Delete''': Remove the item selected in the '''Pipeline Browser''' from the visualization pipeline. This can only be done if the selected item is at the end of the pipeline (i.e., no filters are connected to it).
+
The Pipeline Browser is where the overall visualization pipeline is displayed and controlled from. The Object Inspector is where the specific parameters of one particular module within the pipeline are displayed and controlled from. The Object Inspector has three tabs; one presents the parameters of the processing done within that module, another presents the parameters of how the output of that module will be displayed in a view, and the last presents the meta information about the data produced by the module as described above.
  
'''Delete All''': This option removes any readers, sources, or filters you have created. This is the equivalent of going to the '''Properties''' tab for each data set and pressing the '''Delete''' button or selecting each data set in the '''Pipeline Browser''' and selecting '''Delete''' from the '''View''' menu (see above) for it
+
Figure 1.8 demonstrates a three-element visualization pipeline, where the output of each module in the the pipeline is displayed in its own view. A reader takes in a vector field, defined on a curvilinear grid, which comes from a simulation study of a wind turbine. Next a slice filter produces slices of the field on five equally spaced planes along the X-axis. Finally, a warp filter warps those planes along the direction of the vector field, which primarily moves the planes downwind but also shows some complexity at the location of the wind turbine.
  
'''Interact''': Click and drag in a 3D view to change the point of view or orientation for viewing the data set. Changing which mouse and key bindings are associated with which interactions is discussed in section Error: Reference source not found.
+
[[Image:ParaView_UsersGuide_PipelineExample.png|thumb|700px|center|'''Figure 1.8''' A three-element visualization pipeline]]
  
The next four entries in the '''View''' menu change ParaView’s mouse interaction mode so that clicking and dragging in a 3D view draws a selection rectangle. Which points or cells are selected depends on which mode is chosen. Regardless, the appearance of the selection can be specified using the '''Selection Inspector''', discussed later in this chapter.
+
There are more than one hundred filters available to choose from, all of which manipulate the data in different ways. The full list of filters is available in the [http://paraview.org/Wiki/ParaViewUsersGuide/List_of_readers Appendix] and within the application under the Help menu. 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 data sets so it is only enabled when the module you are building on top of produces image data, rectilinear grid data, or structured grid data. (These input restrictions are also listed in the [http://paraview.org/Wiki/ParaViewUsersGuide/List_of_filters Appendix] and help menu). In this situation you can often find a similar filter which does accept your data, or apply a filter which transforms your data into the required format. In ParaView 3.10, you can ask ParaView to try to do the conversion for you automatically, by clicking "Auto convert properties" in the application [http://paraview.org/Wiki/ParaView/Users_Guide/Settings settings].  The mechanics of applying filters are described fully in the [http://paraview.org/Wiki/ParaView/UsersGuide/Filtering_Data Manipulating Data] chapter.
  
'''Select Cells On''': Draw a selection rectangle to select cells located on the surface of a data set.
+
== Making Mistakes ==
 +
Frequently, new users of ParaView falter when they open their data, or apply a filter, and do not see it immediately  because they have not pressed the Apply button. ParaView was designed to operate on large datasets, for which any given operation could take a long time to finish. In this situation you need the Apply button so that you have a chance to be confident of your change before it takes effect. The highlighted Apply button is a reminder that the parameters of one or more filters are out of sync with the data that you are viewing. Hitting the Apply button accepts your change (or changes) whereas hitting the Reset button reverts the options back to the last time you hit Apply. If you are working with small datasets, you may want to turn off this behavior with the Auto Accept setting under the Application [http://paraview.org/Wiki/ParaView/Users_Guide/Settings Settings].  
  
'''Select Points On''': Draw a selection rectangle to select points located on the surface of a data set.
+
The Apply behavior circumvents a great number of mistakes but not all of them. If you make some change to a filter or to the pipeline itself and later find that you are not satisfied with the result, hit the Undo button. You can undo all the way back to the start of your ParaView session and redo all the way forward if you like.  You can also undo and redo camera motion by using the camera undo and redo buttons located above each view window.
  
'''Select Cells Through''': Draw a selection rectangle to select cells through a data set regardless of their depth relative to the visible surface.
+
== Persistent Sessions ==
  
'''Select Points Through''': Draw a selection rectangle to select points through a data set regardless of their depth relative to the visible surface.
+
If on the other hand you are satisfied with your visualization results, you may want to save your work so that you can return to it at some future time. You can do so by using ParaView's Save State ('''File'''|Save State) and Save Trace ('''Tools''' | Save Trace) features. In either case, ParaView produces human readable text files (XML files for State and Python script for Trace) that can be restored or modified and restored later. This is very useful for batch processing, which is discussed in the [http://paraview.org/Wiki/ParaView/Python_Scripting Python Scripting] chapter.
  
'''Settings''': Selecting this option displays a dialog box that controls the settings for the ParaView application as a whole. In the left column of the dialog box is a tree structure for selecting which settings to view and/or change.
+
To save state means to save enough information about the ParaView session to restore it later and thus show exactly the same result. ParaView does so by saving the current visualization pipeline and parameters of the filters within it.  
  
<center>[[Image:]]</center>
+
If you turn on a trace recording when you first start using ParaView, saving a trace can be used for the same purpose as saving state. However, a trace records all of your actions, including the ones that you later undo, as you do them. It is a more exact recording of not only what you did, but how you did it. Traces are saved as python scripts, which ParaView can play back in either batch mode or within an interactive GUI session. You can therefore use traces then to automate repetitive tasks by recording just that action. It is also an ideal tool to learn ParaView's python scripting API.
  
<center>'''Figure 4. General settings'''</center>
+
== Client/Server Visualization ==
 +
With small datasets it is usually sufficient to run ParaView as a single process on a small laptop or desktop class machine. For large datasets, a single machine is not likely to have enough processing power and, much more importantly, memory to process the data. In this situation you run an MPI parallel ParaView Server process on a large machine to do computationally and memory expensive data processing and/or rendering tasks and then connect to that server within the familiar GUI application.
  
When '''General''' is selected in the left column, there is only one control in the main portion of the dialog. It is a drop-down menu for selecting which type of rendering view is the default. The options are '''3D View''', '''Bar Chart''', '''XY Plot''', '''3D View (Comparative)''', and '''Spreadsheet View'''. These different types of views are discussed later in this chapter. The initial value for '''Default View''' is '''3D View'''.
+
When connected to a remote server the only difference you will see will be that the visualization pipeline displayed in the Pipeline Browser will begin with the name of the server you are connected to rather than the word 'builtin' which indicates that you are connected to a virtual server residing in the same process as the GUI. When connected to a remote server, the File Open dialog presents the list of files that live on the remote machine's file system rather than the client's. Depending on the server's capabilities, the data size and your application settings ('''Edit'''|Settings|Render View|Server) the data will either be rendered remotely and pixels will be sent to the client or the geometry will be delivered and rendered locally. Large data visualization is described fully in the [http://paraview.org/Wiki/Users_Guide_Client-Server_Visualization Client Server Visualization] Chapter.
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 5. General Render View settings'''</center>
+
 
+
'''Use Immediate Mode Rendering''': If immediate mode rendering is not used, then display lists are used during rendering. Display lists can improve rendering speed for small data sets or those whose geometry does not change. For cases other than these, using display lists can slow rendering times because of the memory they consume and the overhead of re-creating them.
+
 
+
'''Use triangle strips''': If this option is selected, then the triangles in your data set will be combined into triangle strips before they are drawn. This may improve rendering speed. However, it also changes how normals are generated during the rendering process if your data set does not already contain them, so the shading of the data set will be different depending on whether this option is selected. Also, you can not currently color by cell-centered attributes properly when triangle strips are enabled.
+
 
+
The '''LOD Parameters''' (in '''Render View, General''' settings) are described in section Error: Reference source not found.
+
 
+
The '''Camera''' settings of the '''Render View''' section are discussed in section Error: Reference source not found. These settings control the mapping between mouse movements and interactions in the 3D view.
+
 
+
The '''Server''' settings of the '''Render View''' section are discussed in sections Error: Reference source not found and Error: Reference source not found. These settings control various properties of remote rendering.
+
 
+
'''View Settings''': The '''View Settings''' entry in the '''Edit''' menu displays a dialog for changing properties of the selected view. The contents of this dialog change depending on which view type is selected. The various view types are discussed in chapter Error: Reference source not found.
+
 
+
=== View Menu ===
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 6. View menu'''</center>
+
 
+
ParaView’s '''View''' menu controls which inspectors and views are displayed in the ParaView user interface. (See the next section for a description of inspectors and views.)
+
 
+
'''Camera''': Using the entries in this submenu, you can position the camera (viewing position) to view the 3D scene from any of the six major viewing directions. The first entry, Reset, positions the camera so that the objects in the selected view are all within the viewing frustum, making everything visible so long as it is not behind another object in the scene.
+
 
+
'''Show Center''': Toggle the visibility of the axes marking the center of rotation.
+
 
+
'''Reset Center''': Reposition the center of rotation so that it is at the center of the bounds of the data set selected in the '''Pipeline Browser'''.
+
 
+
'''Pick Center''': Left-click in the 3D view to select the center of rotation. If you click on a data set, the center of rotation will lie on the surface of the data set located at the location you clicked.
+
 
+
'''Show Color Legend''': Toggle the visibility of the color legend (scalar bar) for the selected data set in the selected view. The range of values displayed in the color legend is determined by the scalar or vector array chosen for coloring the selected data set.
+
 
+
'''Toolbars''': This submenu lists the various toolbars available in ParaView and allows you to toggle the visibility of each. See the Toolbars section later in this chapter for a description of each toolbar.
+
 
+
'''Animation Inspector''': The '''Animation Inspector''' provides a means for adding and editing time frames in an animation. Please see section Error: Reference source not found for more information.
+
 
+
'''Animation View''': The Animation View displays a timeline viewer for animation in ParaView. Such an interface should be fairly familiar to users of movie creation software. Please see section Error: Reference source not found for more information.
+
 
+
'''Comparative View Inspector''': The Comparative View Inspector provides controls for setting up a comparative visualization: rendering in a multi-paned 3D view where each pane shows the output of the visualization pipeline with a different setting for one or two visualization parameters. Please see section Error: Reference source not found for more information.
+
 
+
'''Selection Inspector''': The '''Selection Inspector''' entry toggles the visibility of the '''Selection Inspector''' in ParaView’s user interface. See section Error: Reference source not found for more information about the '''Selection Inspector'''.
+
 
+
The next two entries in the '''View''' menu relate to lookmarks. The purpose of lookmarks is to save and restore particular views of one or more datasets.
+
 
+
'''Lookmark Browser''': The '''Lookmark Browser''' may be shown or hidden using its entry in the View menu; it is also available from the right-click menu in the '''Lookmarks''' toolbar. It contains a list of all lookmarks available in the current ParaView session, and it is useful for the reasons listed below. Using the buttons at the top of the browser, you may export (to a file) or delete multiple lookmarks at once as well as import lookmarks from a file. Importing lookmarks will concatenate them to the end of the '''Lookmark Browser'''. Double-clicking an item in the browser will apply that lookmark to the selected view. Finally, if the '''Lookmark Inspector''' (see next item) is open at the same time as the '''Lookmark Browser''', the inspector will display the properties of the lookmark currently selected in the browser.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 7. An example lookmark browser.'''</center>
+
 
+
'''Lookmark Inspector''': The '''Lookmark Inspector''' displays the properties of a lookmark. The lookmark that it displays is changed by either selecting a new item in the '''Lookmark Browser''' or by choosing '''Edit''' in the right-click menu of an item in the '''Lookmarks''' toolbar. From the '''Lookmark Inspector''', you can apply the lookmark in the active view or delete it entirely by using the buttons at the top. The '''Pipeline View''' portion of the lookmark inspector displays the pipeline that has been saved in the lookmark and that will be generated when the lookmark is applied. The name and description of a lookmark can be edited, but the '''Save''' button must be pressed for these changes to take effect. The user also has control over two properties of how lookmarks behave when they are applied. When a lookmark is created, the time value and camera properties in the selected view (highlighted in red) are stored in the lookmark. When the lookmark is applied, these saved values (time value and/or camera properties) can be restored. This behavior is controlled by two checkboxes at the bottom of the '''Lookmark Inspector'''. By default, neither of these values is applied with the lookmark. If you select or deselect one of these checkboxes, then the '''Save''' button must be pressed for the changes to take effect the next time the lookmark is applied.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 8. Lookmark Inspector interface.'''</center>
+
 
+
'''Object Inspector''': Toggle the visibility of the panel containing the '''Properties''', '''Display''', and '''Information''' tabs corresponding to the data set selected in the '''Pipeline Browser'''. See chapter Error: Reference source not found for more information about the '''Object Inspector'''.
+
 
+
'''Pipeline Browser''': This entry from the '''View''' menu turns on/off the '''Pipeline Browser''', the user interface component that shows the names of the data sets and filters currently loaded in ParaView and the connections between them. See section 1.6 later in this chapter for more information about the '''Pipeline Browser'''.
+
 
+
'''Statistics View''': Selecting this entry toggles the visibility of the '''Statistics View'''. This view lists basic statistical information for each instance of a reader, source, or filter used in the current ParaView session, including its name several pieces of information about its output (i.e., the dataset type, the number of cells and points, the amount of memory it consumes, and its spatial bounds).
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 9. Statistics View'''</center>
+
 
+
=== Sources Menu ===
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 10. Sources menu'''</center>
+
 
+
The '''Sources''' menu lists the various sources you can use to create data sets within ParaView. In ParaView, a source is an object that creates data without using another data set as input or reading data from a file. For example, the '''Cone''' source creates a cone in the 3D scene. User interface controls are provided to manipulate the parameters of the cone. Each of the sources is described in detail in Appendix Error: Reference source not found.
+
 
+
=== Filters Menu ===
+
The '''Filters''' menu provides access to the filters you can apply to data sets in ParaView. It contains the following submenus: '''Recent''', '''Common''', '''Data Analysis''', and '''Alphabetical'''. The '''Recent''' submenu lists the filters (up to 10) that you have most recently added to the visualization pipeline, allowing easier access to the filters you use most frequently. The '''Common''' submenu lists the same filters that are available on the '''Filters''' toolbar, described later in this chapter. These are filters that most ParaView users will use often. The filters listed in the '''Data Analysis''' submenu are useful for analyzing quantitative aspects of a data set. The '''Alphabetical''' submenu lists all the filters available in ParaView in alphabetical order. The state of the entries (enabled or disabled) in these submenus changes based on the characteristics of the current data set such as the data set type (polygonal, rectilinear, etc.) and information about the associated point- and cell-based data. (See section Error: Reference source not found for information about the data set types ParaView supports.) The '''Filters''' menu is inactive until a data set has been created in ParaView. Appendix Error: Reference source not found contains a description of each of the filters in ParaView.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 11. Filters menu'''</center>
+
 
+
=== Animation Menu ===
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 12. Animation menu'''</center>
+
 
+
The entries in this menu control moving between frames in an animation that has already been created. Please see chapter Error: Reference source not found for more information about creating animations in ParaView.
+
 
+
'''First Frame''': Go to the beginning of the animation.
+
 
+
'''Previous Frame''': Go to the previous frame in the animation.
+
 
+
'''Play''': Play the animation.
+
 
+
'''Next Frame''': Go to the next frame in the animation.
+
 
+
'''Last Frame''': Go to the end of the animation.
+
 
+
'''Loop''': When pressed, the animation plays in a loop. To stop the looping behavior, press this button again. The animation will stop when the end of the animation is reached.
+
 
+
=== Tools Menu ===
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 13. Tools menu'''</center>
+
 
+
'''Create Custom Filter''': Group one or more filters and their properties into a reusable macro with a name you assign. Through a series of dialogs, you may choose which properties of the filter(s) to expose. When you finish, the new filter is listed in the '''Alphabetical''' submenu of the '''Filters''' menu with the name you assigned it.
+
 
+
'''Manage Custom Filters''': This dialog box lists any custom filters currently loaded into ParaView. From it, you may import custom filters previously saved to a file, export one or more of the ones in the list to a file, or remove any custom filters listed.
+
 
+
'''Create Lookmark''': Selecting '''Create Lookmark''' from the '''Tools''' menu will create a lookmark of the active view (highlighted in red). The user must enter a unique name for the lookmark in the dialog box that appears and can (optionally) add a text description that will be stored with the lookmark. Clicking the '''Create''' button will store a copy of the lookmark. Lookmarks created in one ParaView session are available in subsequent ParaView sessions unless they are deleted.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 14. Dialog for creating a new lookmark.'''</center>
+
 
+
'''Manage Links''': From the dialog that appears, you can create property, object, or camera links. You can also edit or remove existing links.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 15. Link Manager dialog'''</center>
+
 
+
A property link causes a single property of two different objects to have the same value. For example, you could link the center of a sphere object with that of a cone object. When the center of one of these objects changes, the center of the other will be updated accordingly.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 16. Link the radius of the cone source to the radius of the cylinder source.'''</center>
+
 
+
An object link causes all of the properties of a given object to be linked to all of the properties of another object. This only makes sense if you have two instances of the same object.
+
 
+
Camera links can also be created using '''Manage Links'''<nowiki>; </nowiki>'''Add Camera Link''' (see below) is a shortcut.
+
 
+
'''Add Camera Link''': A camera link connects the camera (viewpoint) of two different 3D views so that you are viewing both scenes from the same 3D point and looking in the same direction. This menu option creates a camera link from the active view (highlighted in red) to the one you select (by clicking it after you select the menu option). This functionality is also available by right-clicking on a 3D view. In the Link Manager (see above), a camera link is listed as an object link between two render views.
+
 
+
'''Manage Plugins''': From this dialog, you may load server-side or client-side plugins previously created. Server-side plugins create VTK objects on the server(s); client-side plugins add new user interface elements.
+
 
+
'''Dump Widget Names''': This menu option displays a list of all the Qt widgets being used. This is useful in debugging and testing for making sure all the widgets have reasonable names.
+
 
+
'''Record Test''': This entry allows you to record a ParaView test as either XML or Python. You will first be asked to enter a file name and choose the file type. Then a dialog box will appear listing the full path to the test. It also has a '''Stop Recording''' button. Perform whatever actions you wish to have recorded in the test as you normally would in ParaView. When you are finished, click '''Stop Recording'''. A test file will be saved using the path and file name you specified.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 17. Dialog indicating a test is being recorded.'''</center>
+
 
+
'''Record Test Screenshot''': Typically this option is used after the '''Play Test''' option (see below). It captures a 300x300 pixel image of the selected view and saves it with the file name you specify. This is useful for creating a valid image for regression testing.
+
 
+
'''Play Test''': When you select this item, you choose a file containing either an XML or Python test -- typically one you recorded previously with the '''Record Test''' option in this menu. When you load the file, ParaView plays through the test contained in it.
+
 
+
'''Max Window Size: 300x300''': When you record a screenshot for a test in ParaView, the image resolution is 300 x 300. If you want to use mouse interactions in the 3D view in the test, you may want to first use this menu option to force the rendering window in the 3D view to be 300 x 300. This is because ParaView stores mouse interactions in normalized coordinates, and if the interactions are captured in a 300 x 300 window, they will be exactly the same during playback of the test as they were during test recording. If you do not use this option, the results of the interactions may be a little different than what you expect.
+
 
+
'''Timer Log''': Choosing this menu option causes a timer log dialog box to be displayed as shown below. It keeps track of the amount of time various operations take to complete. If you leave this dialog open while ParaView is running, you may click the '''Refresh''' button to show the most up-to-date timing information. The '''Clear''' button removes all the information currently in the timer log. You may set the '''Timer Threshold''' to indicate how often to record new timer events. The '''Buffer Length''' indicates how many events to keep in the log; earlier entries will be removed first. Additionally, you may save the contents of the timer log to a text file using the '''Save''' button.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 18. Timer log for viewing the amount of time required for performing certain operations.'''</center>
+
 
+
'''Output Window''': Any errors or warnings ParaView produces are shown in the '''Output Window'''. This window appears when an error or warning occurs, but this menu entry allows you to view the list of messages any time you wish to see it. At the bottom of the output window is a '''Clear''' button to delete its contents. There is also a '''Close''' button which simply closes the dialog.
+
 
+
'''Python Shell''': This menu item displays a dialog for entering Python commands to create and/or control most aspects of the ParaView application including readers, sources, filters, writers, representations, views, etc. Please see chapter Error: Reference source not found for more information about Python scripting in ParaView.
+
 
+
=== Help Menu ===
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 19. Help menu'''</center>
+
 
+
The '''Help''' menu contains options for displaying various types of information about the ParaView application.
+
 
+
'''About''': This entry displays a dialog box containing information about the current version of ParaView.
+
 
+
'''Help''': This entry displays ParaView’s on-line help.
+
 
+
'''Enable Tooltips''': Toggle the visibility of the help balloons that appear when the mouse is resting over a user interface element.
+
 
+
== Inspectors and Views ==
+
Most of the user interface controls in ParaView are displayed in movable panels within the ParaView main window. These panels contain either inspectors or views. An inspector allows you to modify the properties of some associated object. Views only display information; they do not allow you to change the information shown.
+
 
+
The '''Object Inspector''' has tabs across the top so that multiple pages are accessible. The contents of the '''Object Inspector''' changes based on the reader, source, or filter selected in the '''Pipeline Browser'''. The '''Object Inspector''' is discussed in detail in chapter Error: Reference source not found. Which inspectors and views are shown depend on the selection(s) in the bottom half of the '''View''' menu; there are many different types of views and inspectors used in various aspects of the ParaView application.
+
 
+
At the on-screen divisions between views and/or inspectors, there is a separation bar; the mouse cursor changes to indicate the bar can be moved vertically or horizontally. By left-clicking and dragging this bar, you can change the width or height of one inspector or view with respect to the others surrounding it. Additionally, the views and inspectors listed in the '''View''' menu may be repositioned ParaView’s user interface or moved into a separate window by left-clicking and dragging in the title bar for the view or inspector. The positions of two the rendering views (3D View, Spreadsheet View, etc.) may be swapped by dragging the title bar of one to the title bar of another, but these views may not be separated from the main ParaView application window.
+
 
+
Sometimes the contents of a inspector or view may need more vertical space than is available in the ParaView window. When this happens, a vertical scroll bar will be displayed on the right side of the inspector or view. Additionally, many of the main sections of the user interface have a [[Image:]] (minimize) button in the upper left corner. Clicking this [[Image:]] hides the contents of that portion of the interface. The [[Image:]] is replaced with [[Image:]] (maximize button). Clicking the [[Image:]] button expands that portion of the user interface again.
+
 
+
 
+
 
+
<center>'''Figure 20. Section of user interface shown expanded and minimized'''</center>
+
 
+
== Toolbars ==
+
<center>[[Image:]]</center>
+
 
+
By default, all of ParaView’s toolbars are enabled. The various controls are grouped into toolbars based on their functionality. The visibility of each toolbar may be toggled by selecting / deselecting the entries in the '''Toolbars''' submenu of the '''View''' menu.
+
 
+
=== Main Controls Toolbar ===
+
[[Image:]]
+
 
+
[[Image:]]Open a data file to load a dataset into ParaView. Please see section Error: Reference source not found for a list of file formats ParaView can read.
+
 
+
[[Image:]]Save the dataset selected in the '''Pipeline Browser''' to a file.
+
 
+
[[Image:]]Connect to an existing server or launch a server to which you wish to connect. See the description of the '''Connect''' entry in the '''File''' menu earlier in this chapter for more information.
+
 
+
[[Image:]]Disconnect from a server to which you are currently connected. See the description of the '''Disconnect''' entry in the '''File''' menu earlier in this chapter for more information.
+
 
+
[[Image:]]Display the on-line help browser.
+
 
+
 
+
=== Selection Controls Toolbar ===
+
[[Image:]]
+
 
+
Please see chapter Error: Reference source not found for more information about selection.
+
 
+
[[Image:]]Left-click and drag to rotate the dataset. Middle-click and drag to pan. Right-click and drag to zoom (down to zoom in, up to zoom out).
+
 
+
[[Image:]]The cells/elements lying within the selection rectangle on the surface of the dataset are selected.
+
 
+
[[Image:]]The points/nodes lying within the selection rectangle on the surface of the dataset are selected.
+
 
+
[[Image:]]The cells/elements lying within the selection rectangle all the way through the dataset are selected.
+
 
+
[[Image:]]The points/nodes lying within the selection rectangle all the way through the dataset are selected.
+
 
+
=== Undo/Redo Controls Toolbar ===
+
[[Image:]]
+
 
+
As you work with ParaView, the program keeps a record of everything you do. The Undo and Redo buttons let you step back and forth through the record of actions. ParaView does not record the data produced by the pipeline at each step, because doing so would quickly consume all available memory. Instead of restoring the data, these buttons cause ParaView to reset its configuration to a recorded state, which causes the visualization pipeline to re-execute.
+
 
+
[[Image:]]Undo the last action performed in ParaView.
+
 
+
[[Image:]]Redo the last undone action in ParaView.
+
 
+
 
+
=== VCR Controls Toolbar ===
+
[[Image:]]
+
 
+
The buttons in this toolbar are exactly the same as the ones in the '''Animation''' menu discussed earlier in this chapter. When the '''Play''' button is pressed, and the animation starts, the button changes to a '''Pause''' button. Pressing it causes the animation to stop, and it also changes the button back to a '''Play''' button.
+
 
+
=== Current Time Controls Toolbar ===
+
[[Image:]]
+
 
+
When active, the entry box on the left of this toolbar allows you to specify a particular time to jump to in an animation. The spin box on the right side of the toolbar allows you to choose a particular time step (by index) in a dataset that supports time. In this case, the text box on the left will contain the time value corresponding to this time step index. Please see chapter Error: Reference source not found for more information about time support in ParaView.
+
 
+
=== Active Variable Controls Toolbar ===
+
[[Image:]]
+
 
+
[[Image:]]Toggle the visibility of the color legend (scalar bar) for the active variable in the selected 3D view. The active variable is the one by which the data set is being colored.
+
 
+
[[Image:]]Select the active variable in the selected 3D view. This variable is used for coloring the dataset.
+
 
+
=== Representation Toolbar ===
+
[[Image:]]
+
 
+
This toolbar contains only a single item: the selection menu for determining how the data set selected in the '''Pipeline Browser''' is rendered in the selected (outlined in red) 3D view. See page Error: Reference source not found for a description of the representation options available.
+
 
+
=== Camera Controls Toobar ===
+
[[Image:]]
+
 
+
[[Image:]]Set the viewing position so that all visible datasets in the selected 3D view are within the viewing frustum. The viewing direction is not changed. Some datasets (or portions of them) may not be visible if they are obscured by another dataset closer to the viewing position.
+
 
+
[[Image:]]Set the viewing position to view the data in the selected 3D view along the +X axis.
+
 
+
[[Image:]]Set the viewing position to view the data in the selected 3D view along the -X axis.
+
 
+
[[Image:]]Set the viewing position to view the data in the selected 3D view along the +Y axis.
+
 
+
[[Image:]]Set the viewing position to view the data in the selected 3D view along the -Y axis.
+
 
+
[[Image:]]Set the viewing position to view the data in the selected 3D view along the +Z axis.
+
 
+
[[Image:]]Set the viewing position to view the data in the selected 3D view along the -Z axis.
+
 
+
 
+
=== Center of Rotation Toolbar ===
+
[[Image:]]
+
 
+
The buttons on this toolbar have exactly the same functionality as the '''Show Center''', '''Reset Center''', and '''Pick Center''' entries in '''View''' menu, described earlier in this chapter.
+
 
+
=== Common Filters Toolbar ===
+
[[Image:]]
+
 
+
The buttons for the filters in this toolbar are the same as those listed in the '''Common''' submenu of the '''Filters''' menu. They are the calculator filter, contour (or isosurface) filter, clip filter, slice filter, threshold filter, extract subset filter, glyph filter, stream tracer filter, warp (vector) filter, group datasets filter, and extract group filter. A description of each filter can be found in appendix Error: Reference source not found.
+
 
+
=== Lookmarks Toolbar ===
+
One way to access lookmarks in the user interface is through the lookmarks toolbar. It is located on the right side of the ParaView application window by default, and it contains buttons when lookmarks have been created; initially it is empty. It contains an icon for each lookmark. Hovering your mouse over an icon in the toolbar will display the lookmark's name in a help balloon, while right-clicking an icon will give you the option to delete that lookmark, edit its properties (by displaying the '''Lookmark Inspector'''), create a new lookmark (by displaying the '''Create Lookmark''' dialog), or display the '''Lookmark Browser'''. Left-clicking on an icon in the lookmark toolbar will apply that lookmark in the selected view (highlighted in red).
+
 
+
== Display Area ==
+
The display area (by default, to the right of the '''Object Inspector''' and '''Pipeline Browser''') is probably the most important part of the user interface because it shows the current view(s) of the scene, in various possible formats. This portion of the user interface displays the results of the current visualization pipeline. Mouse interaction in the display area varies depending on the type of view that is active (highlighted in red).
+
 
+
== Status Bar ==
+
The status bar at the bottom of the main ParaView window is divided into two sections. The left section displays information about what ParaView is currently doing (e.g., which filter is currently running or a description of the current menu selection). The right part of the status bar contains ParaView’s progress gauge. When a reader, source, or filter could take a non-trivial amount of time to run, the progress gauge shows the percentage of the process that has already been completed.
+
 
+
== Pipeline Browser ==
+
The '''Pipeline Browser''' depicts ParaView’s current visualization pipeline and allows you to easily navigate to the various readers, sources, and filters it contains. (The details of the visualization pipeline are discussed in chapter Error: Reference source not found.) To the left of each entry is an “eye” icon indicating whether that data set is currently visible. A dark icon indicates that the data set is visible; when a data set is invisible, its icon is drawn in light gray. Clicking on the “eye” icon toggles the visibility of the corresponding data set. In this example, '''iron protein.vtk''' and '''Clip1''' are visible, but '''Contour1''' is not. '''Clip1''' is also highlighted in blue, indicating that it is the current data set.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 21. Pipeline Browser'''</center>
+
 
+
Left-clicking the name of one of the data sets causes it to become the current data set. The '''Object Inspector'''’s '''Properties''', '''Display''', and '''Information''' tabs are updated for the current data set. Double-clicking the name of one of the data sets causes the name to become editable, enabling you to change it to something more meaningful; type a new name for the data set and press Enter.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 22. Context menu in Pipeline Browser'''</center>
+
 
+
 
+
Right-clicking a data set’s name displays a menu from which you can load a new data file, create a custom filter, and delete the data set (if it is at the end of the visualization pipeline). For filters, this context menu also has an entry for selecting a new input.
+
 
+
<center>[[Image:]]</center>
+
 
+
<center>'''Figure 23. Dialog for changing the input to a filter.'''</center>
+
 
+
Right-clicking '''Clip1''' from the '''Pipeline Browser''' example shown above and selecting '''Change Input''' causes the '''Input Editor''' to be displayed (shown above). From this dialog, the input to a filter can be changed. In this example, the possibilities for input to the clip filter are '''iron protein.vtk''' and '''Contour1'''<nowiki>; the input editor does not allow the creation of loops in the visualization pipeline, so </nowiki>'''Clip1''' cannot be the input to itself. Left-clicking on one of the possible inputs in the '''Select Source''' window causes the '''Pipeline Preview''' window to show what the contents of the pipeline browser would be if the input was changed in this way. Clicking '''OK''' causes the input to change.
+

Revision as of 12:35, 8 February 2012

ParaView UsersGuide ParaViewLogo.png

What is ParaView?

ParaView is an open-source, multi-platform application for the visualization and analysis of scientific datasets, primarily those that are defined natively in a two- or three-dimensional space including those that extend into the temporal dimension.

The front end graphical user interface (GUI) has an open, flexible and intuitive user interface that still gives you fine-grained and open-ended control of the data manipulation and display processing needed to explore and present complex data as you see fit.

ParaView has extensive scripting and batch processing capabilities. The standard scripting interface uses the widely used python programming language for scripted control. As with the GUI, the python scripted control is easy to learn, including the ability to record actions in the GUI and save them out as succinct human readable python programs. It is also powerful, with the ability to write scripted filters that run on the server that have access to every bit of your data on a large parallel machine.

ParaView's data processing and rendering components are built upon a modular and scalable distributed-memory parallel architecture in which many processors operate synchronously on different portions of the data. ParaView's scalable architecture allows you to run ParaView directly on anything from a small netbook class machine up to the world's largest supercomputer. However, the size of the datasets ParaView can handle in practice varies widely depending on the size of the machine that ParaView's server components are run on. Thus people frequently do both, taking advantage of ParaView's client/server architecture to connect to and control the supercomputer from the netbook.

ParaView is meant to be easily extended and customized into new applications and be used by or make use of other tools. Correspondingly there are a number of different interfaces to ParaView's data processing and visualization engine, for example the web-based ParaViewWeb. This book does not focus on these nor does it describe in great detail the programmers' interface to the ParaView engine. The book instead focuses on understanding the standard ParaView GUI based application.

User Interface

The different sections of ParaView's Graphical User Interface (GUI) are shown below. Of particular importance in the following discussion are the:

  • File and Filter menus which allow you to open files and manipulate data
  • Pipeline Browser which displays the visualization pipeline
  • Object Inspector with its Properties, Display and Information tabs where you can control any given module within the pipeline
  • View area where data is displayed in one or more windows
Figure 1.1 ParaView GUI Overview

Modality

One very important thing to keep in mind when using ParaView is that the GUI is very modal. At any given time you will have one "active" module within the visualization pipeline, one "active" view, and one "active" selection. For example, when you click on the name of a reader or source within the Pipeline Browser, it becomes the active module and the properties of that filter are displayed in the Object Inspector. Likewise when you click within a different view, that view becomes the active view and the visibility "eye" icons in the Pipeline Browser are changed to show what filters are displayed within this View. These concepts will be described in detail in later chapters (Multiple Views,Pipeline Basics,Selection). For now you should be aware that the information displayed in the GUI always pertains to these active entities.

Features

Modern graphical applications allow users to treat the GUI as a document where informations can be queried and used by Copy/Paste from one place to another and that's precisely where we are heading to with ParaView. Typically user can query any Tree/Table/List view widget in the UI by activating that component and by hitting the Ctrl+F or Command+F on Mac keyboard shortcut, while the view widget is in focus. This will enable a dynamic widget showing up which get illustrated in the following screenshot. This search-widget will be closed when the view widget lost focus, or the Esc button is pressed, or the Close button on the search-widget is clicked.

Figure 1.2 Searching in lists
Figure 1.3 Searching in trees


In order to retrieve data from spreadsheet or complex UI, you will need to double click on the area that you are interested in and select the portion of text that you want to select to Copy. The set of screenshots below illustrate different selection use case across the UI components.

Figure 1.4 Copying time values from Information Tab
Figure 1.5 Copying values from trees on the Information Tab
Figure 1.6 Copying values from Spreadsheet View
Figure 1.7 Copying values from Information Tab

Basics of Visualization

Put simply, the process of visualization is taking raw data and converting it to a form that is viewable and understandable to humans. This enables a better cognitive understanding of our data. Scientific visualization is specifically concerned with the type of data that has a well-defined representation in 2D or 3D space. Data that comes from simulation meshes and scanner data is well suited for this type of analysis.

There are three basic steps to visualizing your data: reading, filtering, and rendering. First, your data must be read into ParaView. Next, you may apply any number of filters that process the data to generate, extract, or derive features from the data. Finally, a viewable image is rendered from the data and you can then change the viewing parameters or rendering modality for best the visual effect.

The Pipeline Concept

In ParaView, these steps are made manifest in a visualization pipeline. That is, you visualize data by building up a set of modules, each of which takes in some data, operates on it, and presents the result as a new dataset. This begins with a reader module that ingests data off of files on disk.

Reading data into ParaView is often as simple as selecting Open from the File menu, and then clicking the glowing Accept button on the reader's Object Inspector tab. ParaView comes with support for a large number of file formats [1], and its modular architecture makes it possible to add new file readers [2].

Once a file is read, ParaView automatically renders it in a view. In ParaView, a view is simply a window that shows data. There are different types of views, ranging from qualitative computer graphics rendering of the data to quantitative spreadsheet presentations of the data values as text. ParaView picks a suitable view type for your data automatically, but you are free to change the view type, modify the rendering parameters of the data in the view, and even create new views simultaneously as you see fit to better understand what you have read in. Additionally, high-level meta information about the data including names, types and ranges of arrays, temporal ranges, memory size and geometric extent can be found in the Information tab.

You can learn a great deal about a given dataset with a one element visualization pipeline consisting of just a reader module. In ParaView, you can create arbitrarily complex visualization pipelines, including ones with multiple readers, merging and branching pipelines. You build up a pipeline by choosing the next filter in the sequence from the Filters menu. Once you click Accept, this new filter will read in the data produced by the formerly active filter and perform some processing on that data. The new filter then becomes the active one. Filters then are created differently from but operate in the same manner as readers. At all points you use the Pipeline Inspector to choose the active filter and then the Object Inspector to configure it.

The Pipeline Browser is where the overall visualization pipeline is displayed and controlled from. The Object Inspector is where the specific parameters of one particular module within the pipeline are displayed and controlled from. The Object Inspector has three tabs; one presents the parameters of the processing done within that module, another presents the parameters of how the output of that module will be displayed in a view, and the last presents the meta information about the data produced by the module as described above.

Figure 1.8 demonstrates a three-element visualization pipeline, where the output of each module in the the pipeline is displayed in its own view. A reader takes in a vector field, defined on a curvilinear grid, which comes from a simulation study of a wind turbine. Next a slice filter produces slices of the field on five equally spaced planes along the X-axis. Finally, a warp filter warps those planes along the direction of the vector field, which primarily moves the planes downwind but also shows some complexity at the location of the wind turbine.

Figure 1.8 A three-element visualization pipeline

There are more than one hundred filters available to choose from, all of which manipulate the data in different ways. The full list of filters is available in the Appendix and within the application under the Help menu. 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 data sets so it is only enabled when the module you are building on top of produces image data, rectilinear grid data, or structured grid data. (These input restrictions are also listed in the Appendix and help menu). In this situation you can often find a similar filter which does accept your data, or apply a filter which transforms your data into the required format. In ParaView 3.10, you can ask ParaView to try to do the conversion for you automatically, by clicking "Auto convert properties" in the application settings. The mechanics of applying filters are described fully in the Manipulating Data chapter.

Making Mistakes

Frequently, new users of ParaView falter when they open their data, or apply a filter, and do not see it immediately because they have not pressed the Apply button. ParaView was designed to operate on large datasets, for which any given operation could take a long time to finish. In this situation you need the Apply button so that you have a chance to be confident of your change before it takes effect. The highlighted Apply button is a reminder that the parameters of one or more filters are out of sync with the data that you are viewing. Hitting the Apply button accepts your change (or changes) whereas hitting the Reset button reverts the options back to the last time you hit Apply. If you are working with small datasets, you may want to turn off this behavior with the Auto Accept setting under the Application Settings.

The Apply behavior circumvents a great number of mistakes but not all of them. If you make some change to a filter or to the pipeline itself and later find that you are not satisfied with the result, hit the Undo button. You can undo all the way back to the start of your ParaView session and redo all the way forward if you like. You can also undo and redo camera motion by using the camera undo and redo buttons located above each view window.

Persistent Sessions

If on the other hand you are satisfied with your visualization results, you may want to save your work so that you can return to it at some future time. You can do so by using ParaView's Save State (File|Save State) and Save Trace (Tools | Save Trace) features. In either case, ParaView produces human readable text files (XML files for State and Python script for Trace) that can be restored or modified and restored later. This is very useful for batch processing, which is discussed in the Python Scripting chapter.

To save state means to save enough information about the ParaView session to restore it later and thus show exactly the same result. ParaView does so by saving the current visualization pipeline and parameters of the filters within it.

If you turn on a trace recording when you first start using ParaView, saving a trace can be used for the same purpose as saving state. However, a trace records all of your actions, including the ones that you later undo, as you do them. It is a more exact recording of not only what you did, but how you did it. Traces are saved as python scripts, which ParaView can play back in either batch mode or within an interactive GUI session. You can therefore use traces then to automate repetitive tasks by recording just that action. It is also an ideal tool to learn ParaView's python scripting API.

Client/Server Visualization

With small datasets it is usually sufficient to run ParaView as a single process on a small laptop or desktop class machine. For large datasets, a single machine is not likely to have enough processing power and, much more importantly, memory to process the data. In this situation you run an MPI parallel ParaView Server process on a large machine to do computationally and memory expensive data processing and/or rendering tasks and then connect to that server within the familiar GUI application.

When connected to a remote server the only difference you will see will be that the visualization pipeline displayed in the Pipeline Browser will begin with the name of the server you are connected to rather than the word 'builtin' which indicates that you are connected to a virtual server residing in the same process as the GUI. When connected to a remote server, the File Open dialog presents the list of files that live on the remote machine's file system rather than the client's. Depending on the server's capabilities, the data size and your application settings (Edit|Settings|Render View|Server) the data will either be rendered remotely and pixels will be sent to the client or the geometry will be delivered and rendered locally. Large data visualization is described fully in the Client Server Visualization Chapter.