Paraview:从积分变量中获取点数据
Paraview: Get Points data from Integrate Variables
使用 Python 与 Paraview 交互,我想从集成变量过滤器中获取 "Points" 数据。
我尝试了 GetArray("Points") 但它找不到它,即使您在电子表格视图中可以在 GUI 中清楚地看到它。
我的代码如下。通过 GUI 方法,我得到点 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
你们很亲近。对于所有其他数组,您可以使用您编写的方法访问该值。
但是 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 可编程过滤器中执行此操作。将过滤器从服务器传回客户端不是最佳实践,最好在服务器上进行所有计算。
使用 Python 与 Paraview 交互,我想从集成变量过滤器中获取 "Points" 数据。
我尝试了 GetArray("Points") 但它找不到它,即使您在电子表格视图中可以在 GUI 中清楚地看到它。
我的代码如下。通过 GUI 方法,我得到点 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
你们很亲近。对于所有其他数组,您可以使用您编写的方法访问该值。
但是 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 可编程过滤器中执行此操作。将过滤器从服务器传回客户端不是最佳实践,最好在服务器上进行所有计算。