[Paraview] Accessing a specific variable in Python Programmable Filter

Burlen Loring bloring at lbl.gov
Fri May 16 17:07:56 EDT 2014


By the way, the example following that is buggy as well, when you apply 
an internal filter you first need to shallow copy the input.

I fixed both of these, although I think these examples(ones in Examples 
section) are not great ones in the first place and don't add much to the 
already pretty comprehensive examples preceding them, I  would vote to 
remove them. However, I'll leave this up to the real pv developers....

On 05/16/2014 01:43 PM, Su, Simon M CTR USARMY ARL (US) wrote:
> Thanks Burlen
> -simon
>
> ------------------------------------------------------------------------
> *From:* Burlen Loring [bloring at lbl.gov]
> *Sent:* Friday, May 16, 2014 4:23 PM
> *To:* Su, Simon M CTR USARMY ARL (US); paraview at paraview.org
> *Subject:* Re: [Paraview] Accessing a specific variable in Python 
> Programmable Filter
>
>> =============================
>> input  =self.GetPolyDataInput();
>> output =self.GetPolyDataOutput();
>>   
>> colors = vtk.vtkUnsignedCharArray();
>> colors.SetNumberOfComponents(3);
>> colors.SetName("Colors");
>>   
>> numPoints =input.GetNumberOfPoints()
>> for  iin  range(0, numPoints):
>>      colors.InsertNextTuple3(255,0,0);
>>   
>> output=input
>> output.GetPointData().AddArray(colors)
>> ===============================
> Not sure how this got on the wiki but this is an example of what *not* 
> to do!!
>
> In a VTK filter one's never supposed to modify the input.
>> output=input
>> output.GetPointData().AddArray(colors)
> This is exactly what's done here. Of course you're not going to find 
> the array in the filter's output if you're adding it to the input!
>
> This code can be fixed by removing the output=input line. With that 
> change you should be able to see the array in downstream filters. 
> note, in python 2 range actually generates a list with all the values 
> in it, while xrange creates an iterator which is far more efficient. 
> To actually use the colors you'll also have to uncheck the map scalars 
> check box in the display properties.
>
> input = self.GetPolyDataInput();
>
> output = self.GetPolyDataOutput();
>
> colors = vtk.vtkUnsignedCharArray();
>
> colors.SetNumberOfComponents(3);
>
> colors.SetName("Colors");
>
> numPoints = input.GetNumberOfPoints()
>
> for i in xrange(0, numPoints):
>
> colors.InsertNextTuple3(0,255,0);
>
> output.GetPointData().AddArray(colors)
>
> del colors
>
>
>
> On 05/16/2014 12:46 PM, Su, Simon M CTR USARMY ARL (US) wrote:
>> Hello,
>>
>> After staring at 
>> http://www.paraview.org/Wiki/Python_Programmable_Filter for a while, 
>> the way to access the data for a specific variable name still eludes 
>> me. This is the python code from the wiki on Add the Colors variable 
>> to a PolyData
>>
>> =============================
>> input  =self.GetPolyDataInput();
>> output =self.GetPolyDataOutput();
>>   
>> colors = vtk.vtkUnsignedCharArray();
>> colors.SetNumberOfComponents(3);
>> colors.SetName("Colors");
>>   
>> numPoints =input.GetNumberOfPoints()
>> for  iin  range(0, numPoints):
>>      colors.InsertNextTuple3(255,0,0);
>>   
>> output=input
>> output.GetPointData().AddArray(colors)
>> ===============================
>>
>> How do I from the next filter, access the variable name "Colors" that 
>> I created?
>>
>> Any help is much appreciated.
>>
>> thanks
>> -simon
>>
>>
>> _______________________________________________
>> Powered bywww.kitware.com
>>
>> Visit other Kitware open-source projects athttp://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
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20140516/1262609e/attachment-0001.html>


More information about the ParaView mailing list