ParaView

From KitwarePublic
Jump to navigationJump to search
Pvsplash1.png


ParaView is an open-source, multi-platform application designed to visualize data sets of size varying from small to very large. The goals of the ParaView project include developing an open-source, multi-platform visualization application that support distributed computational models to process large data sets. It has an open, flexible, and intuitive user interface. Furthermore, ParaView is built on an extensible architecture based on open standards. ParaView runs on distributed and shared memory parallel as well as single processor systems and has been succesfully tested on Windows, Linux, Mac OS X, IBM Blue Gene, Cray XT3 and various Unix workstations and clusters. Under the hood, ParaView uses the Visualization Toolkit as the data processing and rendering engine and has a user interface written using the Qt cross-platform application framework.

The goal of this Wiki is to provide up-to-date documentation maintained by the developer and user communities. As such, we welcome volunteers that would like to contribute. If you are interested in contributing, please contact us on the ParaView mailing list http://public.kitware.com/mailman/listinfo/paraview.

You can find more information about ParaView on the ParaView web site: http://paraview.org. For more help, check out http://paraview.org/New/help.html.

Real world concept -> Paraview terminology map

Often new users may say "Surely Paraview can do X... but I can't find it!". This terminology map should help!

Complete list/description of paraview filters

If you're looking through the list of filters in paraview, you may want to know what they all do! Here is a complete list.

Short HowTos

These howtos are instructions for some common operations.

Description/Explanation of Sources

  1. Origin - The origin of the plane to be created. When viewing the plane orthogonally, this could be interpreted as the "lower left corner" of the plane.
  2. Point1 - the "bottom right" corner of the plane.
  3. Point2 - the "top left" corner of the plane.
  4. X Resolution - how many divisions will be created in the X direction. You can see what is going on by switching to wireframe mode.
  5. Y Resolution - how many divisions will be created in the Y direction. You can see what is going on by switching to wireframe mode.
  6. The Apply button must be pressed before the plane will be generated.
  • Line - hover the mouse and press 'p'. This seems to move the closest endpoint of the line to the current mouse position.
  • Ruler - acts just like the line source - hover the mouse and press 'p' to snap the nearest endpoint of the ruler's indicator line to the current mouse position. The distance between the two points is displayed.
  • Sphere - create a sphere by creating a discrete set of points on the surface of a sphere and then creating a mesh on them.
  1. Center - the coordinate of the center of the sphere
  2. Radius - the radius of the sphere
  3. Theta Resolution - how many points to use on cross sections of the sphere in the XY plane. You can see what is going on by switching to wireframe mode.
  4. Start Theta - the angle from +x (in the counter clockwise direction) in the XY plane to start creating points on the sphere. If this is > 0, there will be a "cut" out of the sphere
  5. End Theta - the angle from +x (in the clockwise direction) in the XY plane to finish creating points on the sphere. If this is < 360, there will be a "cut" out of the sphere
  6. Phi Resolution - how many points to use (minus the poles) on the cross sections of the sphere in the XZ plane. You can see what is going on by switching to wireframe mode.
  7. Start Phi - the angle from +z to start the sphere. There will be a missing "cap" on the top of the sphere if this is >0.
  8. End Phi - the angle from -z to finish the sphere. There will be a missing "cap" on the bottom of the sphere if this is < 180.
  • Arrow - Create an arrow. The arrow always has length 1. It is commonly used as a glyph source, so the final length of the arrow is determined by a scaling factor. To change the size of an arrow, use the "scaling" in the display tab of the object inspector or apply a transform filter.
  1. Tip Resolution - The number of faces which are used to draw the tip. The more faces, the "rounder" the tip will look.
  2. Tip Radius - The width of the tip.
  3. Tip Length - The proportional size of the arrow tip to the whole arrow.
  4. Shaft Resolution - The number of faces used to draw the cylinder (shaft) of the arrow. The more faces, the "rounder" the cylinder will be.
  5. Shaft Radius - The width of the cylinder (shaft) of the arrow.

ParaView In Use

Some examples of how ParaView is used
Screenshots generated by ParaView

Documentation

Compile/Install

Instructions for downloading source as well as pre-compiled binaries for common platforms.
Compiling and installing ParaView from source.

Server Setup

Configuring your cluster to act as a ParaView server.
Using the ParaView client to start the servers.
Customizing server startup and connection processes using XML-based configuration scripts.

Generating Data

How to write out data in a format that Paraview understands

Python Scripting

Scripting ParaView using python
Generating/Processing data using python.
Using the python shell interface in paraview
Beginning and advanced tutorial sets, each presented as 2 hour classes by Sandia National Laboratories

Animation

Animating file series.
Saving animations on the server without client connection.
Using Animation View to setup animations.
Creating animations involving camera movements.

Plugins

Using and writing new plugins to extend ParaView's functionality.
Including extensions into ParaView at compile time.
A simple wizard application developed by MIRARCO that provides boilerplate code for some of the most common plugin types.

Other Features

Creating visualizations for Print and Screen.
Specify a colormap and save it as an xml file for later use.
Synchronizing filters, clip planes, camera etc.
Loading restarted data for different file formats.
Packaging pipelines into a single composite.
Selecting and focusing on subset of a dataset.
Exporting scenes as VRML, X3D etc.
Backwards compatibility for ParaView state files (*.pvsm).
The locations where ParaView saves settings.
Computing statistics and using them to assess datasets.
How to configure ParaView's image compressor for use during remote rendering.

Books and Tutorials

The official ParaView guide available from Kitware.
An introductory and comprehensive tutorial.
Slides for the advanced topics tutorial by Sandia, Kitware, and LANL.
Slides on topics for installing and using ParaView on visualization clusters.
Beginning and advanced tutorial sets, each presented as 2 hour classes by Sandia National Laboratories
Slides for the advanced topics tutorial by Sandia, Kitware, and CSCS.
This Wiki is full of useful information and tutorials about ParaView.
ParaView related books, articles and papers


Design & Implementation

ParaView GUI Testing framework.
Providing details about blocks, hierarchies, assemblies etc. to the client.
Details on handling multiple views in client-server framework.
Dealing with composite datasets in VTK.
Understanding ParaView's views and representations.
Understanding Time implementation.
Compiling ParaView and VTK on BlueGene and Cray Xt3/Catamount.
Suggestions for online help documentation changes.

ParaView based Applications

Documentation about the StreamingParaView application.

Miscellaneous

Quarterly newsletter for developers designed to deliver detailed technical articles related to Kitware's open source products including ParaView.



ParaView: [Welcome | Site Map]

Wiki Sandbox

Paraview Ranking test

Developers Corner

Mailing List

The developers mailing list is here: http://public.kitware.com/mailman/subscribe/paraview-developers This should be used for questions about modifying the Paraview code, not using Paraview.

Pitfalls

  • When writing a VTK reader, filter, or writer for use with Paraview, any variable declaration in header files involving VTK classes or your own derived data type has to be wrapped in a "//BTX" "//ETX" pair of comments to tell the parser (Paraview's vtkWrapClientServer) to ignore these lines. The following is an example based on ParaView/Examples/Plugins/Filter/vtkMyElevationFilter.h:

<source lang="cpp">

class VTK_EXPORT vtkMyElevationFilter : public vtkElevationFilter
{
private:
 vtkMyElevationFilter(const vtkMyElevationFilter&);
 void operator=(const vtkMyElevationFilter&);
//BTX
 vtkSmartPointer<vtkPolyData> Source;
 vtkSmartPointer<vtkPolyData> Target;
//ETX
};

</source>

If these tags are omitted, building the plugin will fail with an error message like the following: <source lang="text">

      • SYNTAX ERROR found in parsing the header file <something>.h before line <line number> ***

</source>

  • Compile error "invalid conversion from ‘vtkYourFiltersSuperClass*’ to ‘vtkYourFilter*’"

Any VTK object that needs to be treated as a filter or source has to be a vtkAlgorithm subclass. The particular superclass a filter is derived from has to be given not only in the standard C++ way <source lang="cpp"> class VTK_EXPORT vtkMyElevationFilter : public vtkElevationFilter </source>

but additionally declared with help of the "vtkTypeRevisionMacro". For the example given above <source lang="cpp">

class VTK_EXPORT vtkMyElevationFilter : public vtkElevationFilter
{
public:
 vtkTypeRevisionMacro(vtkMyElevationFilter, vtkElevationFilter);
}

</source>

Otherwise, compiling the filter will fail with a variety of error messages (depending on superclass) like <source lang="cpp">

vtkMyElevationFilter.cxx:19: error: no 'void vtkMyElevationFilter::CollectRevisions(std::ostream&)'
   member function declared in class 'vtkMyElevationFilter'

</source> or <source lang="cpp">

vtkMyElevationFilterClientServer.cxx:97: error: invalid conversion from ‘vtkPolyDataAlgorithm*’ to
   ‘vtkICPFilter*’

</source>