[Paraview] Python scripting/Grid geometry transformation
Felipe Bordeu
felipe.bordeu at ec-nantes.fr
Fri Apr 5 03:48:56 EDT 2013
By "pipelines", I think you want to say "filters". I do not know how to
delete intermediary results.
One way is to apply a filter and then save the result ("File"-> "Save
Data"). So you can open it later without the deed to recreate the hole
pipeline.
Felipe
Le 04/04/2013 19:51, Nikolaos Beratlis a écrit :
> Hi Felipe,
>
> When I try this script to transform from cartesian to cylindrical
> coordinates after I have applied the CleantoGrid Filter:
>
> pdi = self.GetInput()
> pdo = self.GetOutput()
> newPoints = vtk.vtkPoints()
> numPoints = pdi.GetNumberOfPoints()
> for i in range(0, numPoints):
> coord = pdi.GetPoint(i)
> x, y, z = coord[:3]
> r = x * cos(y)
> t = x * sin(y)
> newPoints.InsertPoint(i, r, t, z)
> pdo.SetPoints(newPoints)
> pdo.GetPointData().AddArray(pdi.GetPointData().GetArray(0))
> pdo.GetPointData().AddArray(pdi.GetPointData().GetArray(1))
> pdo.GetPointData().AddArray(pdi.GetPointData().GetArray(2))
>
> it creates two more pipelines, one for CleantoGrid and one for
> Programmable Filter. Both pipelines are linked to the original
> pipeline and both pipelines require the same memory as the original
> pipeline. Is there a way to to delete the previous two pipelines
> (original with cartesian coordinates and cleantoGrid) so that I only
> use one memory amount and not three?
>
> Nikos
>
>
> On Wed, Apr 3, 2013 at 12:05 PM, Felipe Bordeu
> <felipe.bordeu at ec-nantes.fr <mailto:felipe.bordeu at ec-nantes.fr>> wrote:
>
> you need to copy the point data: add this line to the end of your
> script:
>
> pdo.GetPointData().AddArray(pdi.GetPointData().GetArray(0))
>
>
> this will work only for one field, you can put this line inside a
> loop to add all the pointdata.
>
> Felipe
>
> Le 03/04/2013 17:59, Nikolaos Beratlis a écrit :
>> I did and it shows me the transformed grid, but the
>> ProgrammableFilter doesn't contain the variable var. I cannot
>> plot contours. Should I change the script?
>>
>>
>> On Wed, Apr 3, 2013 at 11:48 AM, Felipe Bordeu
>> <felipe.bordeu at ec-nantes.fr <mailto:felipe.bordeu at ec-nantes.fr>>
>> wrote:
>>
>> You must apply the programmablefilter to the cleantoGrid not
>> to the var3d.xmf.
>>
>> look at the screenshot.
>>
>> Felipe
>>
>>
>>
>> Le 03/04/2013 17:43, Nikolaos Beratlis a écrit :
>>> Hi Felipe,
>>>
>>> I applied the CleanToGrid Filter first and then applied the
>>> following script:
>>>
>>>
>>> pdi = self.GetInput()
>>>
>>> pdo = self.GetOutput()
>>>
>>> newPoints = vtk.vtkPoints()
>>>
>>> numPoints = pdi.GetNumberOfPoints()
>>>
>>> for i in range(0, numPoints):
>>>
>>> coord = pdi.GetPoint(i)
>>>
>>> x, y, z = coord[:3]
>>>
>>> r = x * cos(y)
>>>
>>> t = x * sin(y)
>>>
>>> newPoints.InsertPoint(i, r, t, z)
>>>
>>> pdo.SetPoints(newPoints)
>>>
>>>
>>> Notice the indentation and also the change of the cos(y) and
>>> sin(y) assignments.
>>>
>>> but I got this error:
>>>
>>> Traceback (most recent call last):
>>>
>>> File "<string>", line 26, in <module>
>>>
>>> File "<string>", line 12, in RequestData
>>>
>>> AttributeError: SetPoints
>>>
>>>
>>> What am I doing wrong?
>>>
>>>
>>> On Wed, Apr 3, 2013 at 11:13 AM, Felipe Bordeu
>>> <felipe.bordeu at ec-nantes.fr
>>> <mailto:felipe.bordeu at ec-nantes.fr>> wrote:
>>>
>>> apply a CleanToGrid filter before the python
>>> programmable filter and this is a corrected version of
>>> your script:
>>>
>>> pdi = self.GetInput()
>>>
>>> pdo = self.GetOutput()
>>>
>>> newPoints = vtk.vtkPoints()
>>>
>>> numPoints = pdi.GetNumberOfPoints()
>>>
>>> for i in range(0, numPoints):
>>>
>>> coord = pdi.GetPoint(i)
>>>
>>> x, y, z = coord[:3]
>>>
>>> r = x * sin(y)
>>>
>>> t = x * cos(y)
>>>
>>> newPoints.InsertPoint(i, r, t, z)
>>>
>>> pdo.SetPoints(newPoints)
>>>
>>>
>>>
>>> Felipe
>>>
>>> Le 03/04/2013 04:55, Nikolaos Beratlis a écrit :
>>>> Hi,
>>>>
>>>> I am reading the following xmf file (attached as
>>>> var3d.xmf) into Paraview:
>>>>
>>>> <?xml version="1.0" ?>
>>>> <!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
>>>> <Xdmf Version="2.2">
>>>> <Domain>
>>>> <Grid GridType="Uniform">
>>>> <Topology TopologyType="3DRectMesh" Dimensions=" 2
>>>> 4 3"/>
>>>> <Geometry GeometryType="VXVYVZ">
>>>> <DataItem Dimensions=" 3" NumberType="Float"
>>>> Precision="4" Format="XML">
>>>> 0.0000 1.0000 2.0000
>>>> </DataItem>
>>>> <DataItem Dimensions=" 4" NumberType="Float"
>>>> Precision="4" Format="XML">
>>>> 0.0000 2.0944 4.1888
>>>> <tel:2.0944%20%C2%A0%204.1888> 6.2832
>>>> </DataItem>
>>>> <DataItem Dimensions=" 2" NumberType="Float"
>>>> Precision="4" Format="XML">
>>>> 1.0000 2.0000
>>>> </DataItem>
>>>> </Geometry>
>>>> <Attribute Name="var" AttributeType="Scalar" Center="Node">
>>>> <DataItem Dimensions="24" NumberType="Float"
>>>> Precision="4" Format="XML">
>>>> 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
>>>> 22 23
>>>> </DataItem>
>>>> </Attribute>
>>>> </Grid>
>>>> </Domain>
>>>> </Xdmf>
>>>>
>>>> The grid is a 3D orthogonal grid read in cartesian
>>>> coordinates (see attached image showing grid and
>>>> contours of variable). I then want to transform the
>>>> grid from cartesian to cylindrical coordinates. I tried
>>>> using the following Python script:
>>>>
>>>> pdi = self.GetPolyDataInput()
>>>>
>>>> pdo = self.GetPolyDataOutput()
>>>>
>>>> newPoints = vtk.vtkPoints()
>>>>
>>>> numPoints = pdi.GetNumberOfPoints()
>>>>
>>>> for i in range(0, numPoints):
>>>>
>>>> coord = pdi.GetPoint(i)
>>>>
>>>> x, y, z = coord[:3]
>>>>
>>>> r = x * sin(y)
>>>>
>>>> t = x * cos(y)
>>>>
>>>> newPoints.InsertPoint(i, r, t, z)
>>>>
>>>> pdo.SetPoints(newPoints)
>>>>
>>>>
>>>> with Output Data Set Type chosen to be the Same as
>>>> Input, but I get this error:
>>>>
>>>>
>>>> Traceback (most recent call last):
>>>> File "<string>", line 26, in <module>
>>>> File "<string>", line 12, in RequestData
>>>> AttributeError: 'NoneType' object has no attribute
>>>> 'SetPoints'
>>>>
>>>> I have no experience with Python scripting. What am I
>>>> doing wrong?
>>>>
>>>> Thank you,
>>>>
>>>> Nikos
>>>>
>>>>
>>>> _______________________________________________
>>>> Powered bywww.kitware.com <http://www.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
>>>
>>>
>>> --
>>> Felipe Bordeu Weldt
>>> Ingénieur de Recherche
>>> -------------------------------------
>>> Tél. :33 (0)2 40 37 16 <tel:33%20%280%292%2040%2037%2016> 57
>>> Fax. :33 (0)2 40 74 74 <tel:33%20%280%292%2040%2074%2074> 06
>>> Felipe.Bordeu at ec-nantes.fr <mailto:Felipe.Bordeu at ec-nantes.fr>
>>> Institut GeM - UMR CNRS 6183
>>> École Centrale Nantes
>>> 1 Rue de La Noë, 44321 Nantes, FRANCE
>>> -------------------------------------
>>>
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com <http://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
>>>
>>>
>>
>>
>> --
>> Felipe Bordeu Weldt
>> Ingénieur de Recherche
>> -------------------------------------
>> Tél. :33 (0)2 40 37 16 <tel:33%20%280%292%2040%2037%2016> 57
>> Fax. :33 (0)2 40 74 74 <tel:33%20%280%292%2040%2074%2074> 06
>> Felipe.Bordeu at ec-nantes.fr <mailto:Felipe.Bordeu at ec-nantes.fr>
>> Institut GeM - UMR CNRS 6183
>> École Centrale Nantes
>> 1 Rue de La Noë, 44321 Nantes, FRANCE
>> -------------------------------------
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com <http://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
>>
>>
>
>
> --
> Felipe Bordeu Weldt
> Ingénieur de Recherche
> -------------------------------------
> Tél. :33 (0)2 40 37 16 <tel:33%20%280%292%2040%2037%2016> 57
> Fax. :33 (0)2 40 74 74 <tel:33%20%280%292%2040%2074%2074> 06
> Felipe.Bordeu at ec-nantes.fr <mailto:Felipe.Bordeu at ec-nantes.fr>
> Institut GeM - UMR CNRS 6183
> École Centrale Nantes
> 1 Rue de La Noë, 44321 Nantes, FRANCE
> -------------------------------------
>
>
> _______________________________________________
> Powered by www.kitware.com <http://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
>
>
--
Felipe Bordeu Weldt
Ingénieur de Recherche
-------------------------------------
Tél. : 33 (0)2 40 37 16 57
Fax. : 33 (0)2 40 74 74 06
Felipe.Bordeu at ec-nantes.fr
Institut GeM - UMR CNRS 6183
École Centrale Nantes
1 Rue de La Noë, 44321 Nantes, FRANCE
-------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20130405/eb24ba37/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 112018 bytes
Desc: not available
URL: <http://www.paraview.org/pipermail/paraview/attachments/20130405/eb24ba37/attachment-0001.png>
More information about the ParaView
mailing list