Paraview:从Integrate Variables获取Points数据

时间:2018-01-02 22:21:31

标签: python paraview

使用Python与Paraview交互,我希望获得" Points"来自集成变量过滤器的数据。

我尝试了GetArray(" Points"),但即使您可以在GUI中清楚地看到它,也无法找到它。

我的代码如下。使用GUI方法,我得到Point ID = 0数组" Points"有三个值(0.54475,-1.27142e-18,4.23808e-19),这是有道理的,因为默认箭头在y和z中是对称的。

有没有办法在python中获取值0.54475?

MWE

#Import Paraview Libraries
#import sys
#sys.path.append('Path\\To\\Paraview\\bin\\Lib\\site-packages')
from paraview.simple import *
#### disable automatic camera reset on 'Show'
paraview.simple._DisableFirstRenderCameraReset()
# create a new 'Arrow'
arrow1 = Arrow()
# create a new 'Integrate Variables'
integrateVariables1 = IntegrateVariables(Input=arrow1)
pdata = paraview.servermanager.Fetch(integrateVariables1).GetPointData()

print pdata.GetArray("Points") # prints None

1 个答案:

答案 0 :(得分:3)

你非常接近。对于所有其他数组,您可以使用您编写的方法访问该值。

然而,VTK略微区别对待点坐标,因此点坐标所需的代码为:

arrow1 = Arrow()
integrateVariables1 = IntegrateVariables(Input=arrow1)
integrated_filter = paraview.servermanager.Fetch(integrateVariables1)
print integrated_filter.GetPoint(0)

这给了我:(0.5447500348091125,-1.2714243711743785e-18,4.238081064918634e-19)

我还建议您可以在Python可编程过滤器中执行此操作。将过滤器从服务器传递回客户端不是最佳做法,最好在服务器上进行所有计算。