在 Python、Paraview python api 中使用 paraview 过滤器
Using paraview filters in Python, Paraview python api
我一直在使用 Paraview 来可视化和分析 VTU 文件。我发现计算梯度过滤器非常有用。我想知道 Paraview 是否有 python API 可以用来使用这个过滤器。
我正在寻找这样的东西。
import paraview as pv
MyFile = "Myfile0001.vtu"
Divergence = pv.filters.GradientOfUnstructuredDataset.(Myfile)
ParaView 完全 scriptable in python。本文档的每个部分都有一个 'do it in python' 版本。
虽然 API 文档不一定存在,但您可以使用 Python Trace(在“工具”菜单中)记录来自 GUI 的操作并将其保存为 python 脚本。
编辑
要以数组形式取回数据,需要一些额外的步骤,因为 ParaView 在 client/server 模式下工作。您应该 Fetch 数据,然后您可以操作 vtkObject,提取数组并将其转换为 numpy。
类似
from paraview.simple import *
from vtk.numpy_interface import dataset_adapter as dsa
gridvtu = XMLUnstructuredGridReader(registrationName='grid', FileName=['grid.vtu'])
gradient = GradientOfUnstructuredDataSet(registrationName='Gradient', Input=gridvtu)
vtk_grid = servermanager.Fetch(gradient)
wraped_grid = dsa.WrapObject(vtk_grid)
divergence_array = wraped_grid.PointData["Divergence"]
请注意 divergence_array
是 numpy.ndarray
您也可以编写纯 vtk 代码,如 this example on SO
我一直在使用 Paraview 来可视化和分析 VTU 文件。我发现计算梯度过滤器非常有用。我想知道 Paraview 是否有 python API 可以用来使用这个过滤器。
我正在寻找这样的东西。
import paraview as pv
MyFile = "Myfile0001.vtu"
Divergence = pv.filters.GradientOfUnstructuredDataset.(Myfile)
ParaView 完全 scriptable in python。本文档的每个部分都有一个 'do it in python' 版本。
虽然 API 文档不一定存在,但您可以使用 Python Trace(在“工具”菜单中)记录来自 GUI 的操作并将其保存为 python 脚本。
编辑
要以数组形式取回数据,需要一些额外的步骤,因为 ParaView 在 client/server 模式下工作。您应该 Fetch 数据,然后您可以操作 vtkObject,提取数组并将其转换为 numpy。
类似
from paraview.simple import *
from vtk.numpy_interface import dataset_adapter as dsa
gridvtu = XMLUnstructuredGridReader(registrationName='grid', FileName=['grid.vtu'])
gradient = GradientOfUnstructuredDataSet(registrationName='Gradient', Input=gridvtu)
vtk_grid = servermanager.Fetch(gradient)
wraped_grid = dsa.WrapObject(vtk_grid)
divergence_array = wraped_grid.PointData["Divergence"]
请注意 divergence_array
是 numpy.ndarray
您也可以编写纯 vtk 代码,如 this example on SO