ParaView and Python
Introduction
ParaView offers a rich and powerful Python interface. This allows users to automate processing of their data, and gives access to powerful tools in the Visualization Tool Kit (VTK). This tutorial will describe ParaView and Python. It shows a user how to drive ParaView using Python commands, and how to automate the creation and use of these commands.
Overview
ParaView is a client/ server architecture. The client includes the ParaView GUI and display. The server reads the user's data, processes the data, and passes these images to the client. We can use Python to control ParaView either in the GUI, at the client level, or directly on the server.
A simple Python toy example within ParaView
- Start ParaView.
- Start the Python Interpreter Tools → Python Shell
- Lets create and display a sphere.
- (Type the following into the Python Shell)
- sphere=Sphere()
- Show()
- Render()
- (Type the following into the Python Shell)
- We have now created a sphere in the pipeline, turned on it's visibility, and re-rendered.
- Next, lets add a shrink filter. We hide the sphere, add the shrink filter, and re-render.
- Hide()
- shrink=Shrink()
- Show()
- Render()
- ParaView will allow us to use either the normal GUI controls or Python. For instance:
- Select the Sphere in the pipeline browser.
- In the Python Shell, type the following:
- clip=Clip()
- Show()
- Render()
- Help! (How do we find out what commands are available?)
- To see all commands available in ParaView:
- dir()
- To see all of the options for the Clip command:
- dir(Clip)
- To see all of the options for the clip we created above:
- dir(clip)
- To see lots of detail on a command, create the object and ask for help on that object..
- help(clip)
- To see all commands available in ParaView:
- Change! (Lets look at, and change somthing)
- Print the Theta Resolution
- print(sphere.ThetaResolution)
- Change it to 64
- sphere.ThetaResolution=64
- Show()
- Render()
- Print the Theta Resolution
- Control input
- Lets delete the clip
- Delete(clip)
- Lets add a filter to the sphere, without selecting it first
- wireframe=ExtractEdges(Input=sphere)
- Show()
- Render()
- Lets delete the clip
A simple Python example reading a datafile and writing a screenshot
- Within the ParaView GUI, Edit → Reset Session
- Start the Python Interpreter Tools → Python Shell
- Lets read in can.exo, clip can.exo, paint can.exo and save a screenshot.
- canex2=OpenDataFile('D:\\directoryName\\can.ex2')
- clip=Clip()
- Show()
- Render()
- SaveScreenshot('D:\\directoryName\\picture.jpg')
- Extra Credit - Paint by a variable
- canex2.ElementVariables = ['EQPS']
- canex2.PointVariables = ['DISPL', 'VEL', 'ACCL']
- canex2.GlobalVariables = ['KE', 'XMOM', 'YMOM', 'ZMOM', 'NSTEPS', 'TMSTEP']
- renderView1 = GetActiveViewOrCreate('RenderView')
- canex2Display = Show(canex2, renderView1)
- ColorBy(canex2Display, ('POINTS', 'DISPL'))
Python documentation (out of date) http://www.paraview.org/Wiki/ParaView/Python_Scripting
Trace Recorder
- Within the ParaView GUI, Edit → Reset Session
- Start the Python Interpreter Tools → Python Shell
- Lets read in can.exo, clip can.exo, paint can.exo and save a screenshot.
Where do you go next?
- Filters tutorial.
- GUI tutorial.
- Client server tutorial.
- Making 2d plots tutorial.
- Making Powerpoint slides tutorial.
Acknowledgements
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.