使用python将自定义属性添加到vtkXMLUnstructuredGrid

问题描述:

我有一个.vtu文件,代表我通过vtkXMLUnstructuredGridReader读取的网格。然后我创建一个numpy数组(nbOfPoints x 3),其中存储网格顶点坐标,我将其称为meshArray。 我也有一个列数组(nOfPoints x 1),我将调用brightnessArray,它表示我想要分配给meshArray的顶点的某个属性;所以每个顶点对应一个标量值。例如:对元素meshArray [0]将对应brightnessArray [0]等。 我该怎么做?使用python将自定义属性添加到vtkXMLUnstructuredGrid

然后可以在网格的顶点内插值以获得为了在paraview中将其可视化而设置的属性的平滑变化?

谢谢。 西蒙

+0

你的问题还不清楚。你能准确地知道你的输入和输出是什么吗? –

+0

我的输入是vtu网格和一个数组。网格具有一定数量的节点(nbOfPoints),并且该数组长度相同。网格是一个XMLUnstructuredGrid。每个节点都可以包含某个属性的信息。例如,速度场可以由分配给网格节点的标量值表示。所需的输出是一个新的网格,具有与原始网格相同的点,数组值已分配到该网格。换句话说,我想任意地为网格分配一个新的标量字段。 这很难解释,对不起。我希望这次我更清楚。 谢谢。 – semions

+0

更清晰。这应该可以通过python可编程过滤器来实现。数组存储在哪里? –

以下是你需要做的:

  1. 编写Python编程源代码作为一个vtkUnstructuredGrid阅读您numpy的数据。 下面是可编程源的几个例子: https://www.paraview.org/Wiki/ParaView/Simple_ParaView_3_Python_Filters https://www.paraview.org/Wiki/Python_Programmable_Filter

  2. 阅读您的.vtu数据集

  3. 使用在你的Python编程源输出“Ressample与数据集”过滤器并选择您的数据集作为“源“

大功告成。

最难的部分是编写程序集源脚本。