0

我在 Python Shell 中使用 Paraview,我想修改一些坐标。使用阅读器打开所考虑的数据,新坐标保存为 txt。我通过使用 Fetch() 例程从阅读器获取网格,然后对其进行修改——但我的问题是:我可以以某种方式将现在更改的网格“返回”给阅读器对象,然后 Show() 吗?

这是到目前为止使用的代码:

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)

我怎样才能使更改现在可见?任何帮助,将不胜感激!

4

2 回答 2

1

ParaView 不是为此而设计的,因此没有提供机制来做到这一点。如果您想在 Python 中转换数据,请考虑使用可编程过滤器 ( http://www.paraview.org/Wiki/Python_Programmable_Filter )。

于 2013-12-10T22:28:51.740 回答
0

我有点晚了,但我在寻找自己的如何将自定义数组添加到 paraview 中的 polydata 时发现了这个问题?. 我最终使用 numpy.savetxt 将数据导出为 csv 并再次读取新的 csv

于 2014-06-18T07:56:59.267 回答