我使用Paraview和Python Shell,我想修改一些座標。所考慮的數據使用讀取器打開,新的座標保存爲txt。我通過使用Fetch() - 例程獲取網格,然後對其進行修改 - 但是我的問題是:我能否以某種方式將現在更改的網格「返回」到讀取器對象,然後顯示()它?Paraview Python - 對servermanager.Fetch()的反向操作?
這是迄今爲止使用的代碼:
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)
我怎樣才能讓現在的變化可見? 任何幫助,將不勝感激!
因此,只是爲了正確理解它 - 通過外部Python腳本/ PVPython無法訪問這些可編程過濾器的良好機制? –
不,它們是,但是你將不得不在Python腳本中創建可編程過濾器並傳遞另一個「腳本」來完成這項工作。 – Utkarsh