How to add a custom array to a polydata in paraview?

爷,独闯天下 提交于 2019-12-01 06:40:34

Better approach would be use the Programmable Filter to add the array to your input dataset. In ParaView 4.1, the following script can be added to the Script on Properties panel for the Programmager Filter

polydata = output
array = vtk.vtkIntArray()
array.SetNumberOfComponents(0)
array.SetName("regionsize")
for i in range(polydata .GetNumberOfPoints()):
    array.InsertNextValue(somecomputedvalue)
polydata.GetPointData().AddArray(array);
lib

The method which works better with the pipeline is using a programmable filter. (related: Paraview Python -- Reverse operation to servermanager.Fetch()? )

For saving the new polydata to file: (discovered thanks to http://markmail.org/message/4kp7cxl2ani25cak when importing all ctk modules)

from paraview.vtk.vtkIOLegacy import *
writer = vtkPolyDataWriter()
.....

A more "rough" method is to export the data as csv using numpy.savetxt , then reading the csv and apply the TableToPoints filter or Python scripting.

It could be possible to use TrivialProducer and GetClientSideObject when client and server share the same memory space (with the builtin server) as explained here http://public.kitware.com/pipermail/paraview/2011-February/020120.html , but I haven't tried it

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!