Paraview Python — Reverse operation to servermanager.Fetch()?

老子叫甜甜 提交于 2019-12-13 04:42:38

问题


I am using Paraview with the Python Shell and I want to modify some coordinates. The considered data is opened using a reader, the new coordinates are saved just as txt. I obtain the grid from the reader by using the Fetch()-routine and then modify it -- but my question is: can I somehow "return" the now changed grid to the reader-object and then Show() it?

Here is the code used so far:

from paraview import simple
from paraview.vtk import *
import numpy as np

reader=simple.LSDynaReader(FileName='/home/test.d3plot')
reader.UpdatePipeline()
simple.Show(reader)

coord=np.loadtxt('/home/coord.dat')

pts=vtkPoints()
arr=vtkFloatArray()
arr.SetNumberOfComponents(3)

arr.SetVoidArray(coord,14766*3,1)
ug=vtkUnstructuredGrid()

#the data to be modified is a vtkUnstrucuredGrid in a vtkMultiBlockDataset
ug.ShallowCopy(simple.servermanager.Fetch(reader).GetBlock(84))
pts.SetData(arr)
ug.SetPoints(pts)

How can I make the changes visible now? Any help would be appreciated!


回答1:


ParaView is not designed for this and hence doesn't provide mechanisms to do exactly that. If you want to transform data in Python, look at using the Programmable Filter (http://www.paraview.org/Wiki/Python_Programmable_Filter) instead.




回答2:


I am bit late but I found this question while looking for my own How to add a custom array to a polydata in paraview? . I ended up exporting the data as csv with numpy.savetxt and reading the new csv again



来源:https://stackoverflow.com/questions/20470286/paraview-python-reverse-operation-to-servermanager-fetch

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