【问题标题】:Using paraview filters in Python, Paraview python api在 Python 中使用 paraview 过滤器,Paraview python api
【发布时间】:2021-06-02 07:58:55
【问题描述】:

我一直在使用 Paraview 来可视化和分析 VTU 文件。我发现计算梯度过滤器非常有用。我想知道是否有用于 Paraview 的 python API 可用于使用此过滤器。

我正在寻找这样的东西。

import paraview as pv

MyFile = "Myfile0001.vtu"

Divergence = pv.filters.GradientOfUnstructuredDataset.(Myfile)

【问题讨论】:

标签: vtk paraview


【解决方案1】:

ParaView 完全是scriptable in python。本文档的每个部分都有一个“在 python 中执行”版本。

虽然 API 文档不一定存在,但您可以使用 Python Trace(在工具菜单中),它记录来自 GUI 的操作并将其保存为 python 脚本。

编辑

要将数据作为数组取回,它需要一些额外的步骤,因为 ParaView 在客户端/服务器模式下工作。您应该 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

【讨论】:

  • 您好,感谢您的回复。但是,它没有回答我的问题。如果我有一个向量数组,我正在寻找一种计算散度的方法。
  • 我的意思是,将 VTU 文件和字段作为参数传递,并将分歧作为数组返回。
  • 不清楚您是否要操作结果数组。我更新了我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 2021-11-04
  • 2022-11-07
相关资源
最近更新 更多