[Paraview] Programmable filter from external python program

Simon Couture simon-2.couture at polymtl.ca
Wed Mar 5 20:31:06 EST 2014


Hi everyone,

I am trying to use paraview from an external python program where I import
paraview.simple and mostly use python code generated by Paraview's trace tool
to accomplish what I want. In general it works well, but in one instance I need
to generate a new data array from my source/reader, and as far as I know, the
programmable filter is the only way to do this (the actual PointData arrays of
the sources are not directly visible/editable through the python shell). Now
when I try to execute the python code that I get from trace to insert a
programmable filter with a given script, the PointData array that the
programmable filter's script is supposed to create is not created (and it does
work when I create the programmable filter using the Paraview GUI).

To be more clear, here is the python code that I run (cutting out camera and
rendering commands):

mysource = AVSUCDReader( FileNames=['/home/myfile.inp'] )

mysource.PointArrayStatus = []
mysource.CellArrayStatus = []

RenderView1 = GetRenderView()
DataRepresentation3 = Show()
ProgrammableFilter1 = ProgrammableFilter()
DataRepresentation4 = Show()
ProgrammableFilter1.RequestUpdateExtentScript = ''
ProgrammableFilter1.PythonPath = ''
ProgrammableFilter1.RequestInformationScript = ''
ProgrammableFilter1.Script = "pdi = self.GetInput()\nnbpoints =
pdi.GetNumberOfPoints()\ninput_pointdata = pdi.GetPointData().GetArray('data')
[... the rest of my script here]"

After running this in either the paraview python shell or from an external
python program, if I do for instance:

ProgrammableFilter1.PointData.GetNumberOfArrays()

I get 0 meaning that no PointData array was created, whereas if the same
programmable filter is created in the paraview GUI, I would get 1. Please note
that I am not using the Copy Arrays option of the programmable filter.

Has anyone successfully used the programmable filter from a python script?



More information about the ParaView mailing list