[Paraview] Programmable filter from external python program
Utkarsh Ayachit
utkarsh.ayachit at kitware.com
Sun Mar 9 15:04:30 EDT 2014
Just saw reset of thread -- mind putting
"import sys
print sys.path"
in your ProgrammableFilter script and seeing what is the default path
it is ending up picking?
On Sun, Mar 9, 2014 at 3:02 PM, Utkarsh Ayachit
<utkarsh.ayachit at kitware.com> wrote:
> Did you call an UpdatePipeline before checking for point-data arrays?
> e.g.
>
> ProgrammableFilter1.UpdatePipeline()
> print ProgrammableFilter1.PointData.GetNumberOfArrays()
>
>
> Utkarsh
>
> On Wed, Mar 5, 2014 at 8:31 PM, Simon Couture
> <simon-2.couture at polymtl.ca> wrote:
>> 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?
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.paraview.org/mailman/listinfo/paraview
More information about the ParaView
mailing list