[Paraview] Python scripting/Grid geometry transformation

Felipe Bordeu felipe.bordeu at ec-nantes.fr
Wed Apr 3 11:13:51 EDT 2013


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   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 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


-- 
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/20130403/c21732ad/attachment-0001.htm>


More information about the ParaView mailing list