欢迎光临散文网 会员登陆 & 注册

利用Paraview内置编程计算处理vtk文件

2020-09-27 15:19 作者:不妙脆角  | 我要投稿

(对标题毫不了解的可以无视)

Paraview是一款优秀的立体模型可视化软件。

https://www.paraview.org/download/

之前只用它看看图,但用到里面的数据,就需要自己动手编程处理。今天发现其实Paraview是可以编程的!(火星)

先说基本操作:

  1. 导入数据

打开数据之后,数据会在这个栏里高亮显示

2.点击apPLY加载数据,点数据左边的小眼睛图标控制谁开谁关,如果都开就会重叠。

3.切块和切片

切块

选中一个vtk文件,点工具栏的Clip,然后出现下图所示:

左边在Normal处选择切平面的法向量,控制切的方向。

切平面的方向和位置可以在这里设置,也可以直接在图上拖动。

设置完成后,点击已经亮起的绿色APPLY按钮,完成切块。这样就能看到剖面表面的数据信息。

切片的操作完全一样,只是只切一个二维平面

4.编程计算。

Paraview支持很多Filter用于处理原数据

其中有几个可以很简单有效地帮助我们处理数据。

PythonCalculator:

首先选中一个vtk文件,点Filter里的search

搜python,选python calculator

然后你选中的vtk文件会出现一个下挂的文件

我们如何利用这个编程呢?

我们看被选中的vtk文件,点"Information"按钮,会看到模型参数。其中Data array中的velocity_E_it010000就是vtk储存的数据,就相当于python里的变量,可以直接用于计算。

记住变量名后,回到刚才生成的PythonCalculator1,看下面的栏

在Expression里可以输入python代码,我这里输入的是pow(velocity_E_it010000,2),意思就是数据做一个平方。Array_Name就是你生成的新数据的名字。然后apPLY。

接着改下面的Coloring参数,改成你新数据的变量名。这样图上的颜色才是你新数据的颜色。

效果图:

好了,这就是计算某个文件里的数据的方法了。

那么,我们如果有多个vtk文件,想同时用它们的数据做计算,该怎么办呢?

首先我先用上面的操作对E,N,Z三个文件都做同样的操作和命名,生成三个新子文件,我想把它们加起来求和。

这个时候是不能直接加起来的,因为每个文件的数据之后自己的子文件才能访问,所以我们怎么做呢?

同时选中三个文件(按着ctrl点鼠标),点Filters的Search

搜索append,选择append Attributes,然后点击绿色的apPLY键

这时候发现生成了一个三者共同的子文件AppendAttributes1

再看这个文件的information键的内容

发现这个共同子文件同时包含了三个文件的数据。这个时候我们可以在这个文件中用刚才的PythonCalculator计算了!

对AppendAttributes1做一个Python Calculator,点绿色的ApPLY。

然后在Expression中把上面算出来的三个变量加起来,起一个Array Name,然后点apPLY

之后在下面的Coloring中选择计算出的变量的颜色,sum_velocity,然后apPLY

这样就得到了我们想要的,三个vtk文件数据的平方和的vtk文件。

只是抛砖引玉,这就是跨文件提取参数计算的方法。至于局部怎么算我不太会了。




P.S.我是看了这篇文章才基本确定了Paraview可以内置编程

但是这位博主鸽了后面的计算部分。。。我表示当场去世。

于是经过一天的对Paraview的格式的研究,终于探索出了多个vtk→appendAttributes→PythonCalculates的可行道路。(也使我处理vtk的脚本显得很蠢

利用Paraview内置编程计算处理vtk文件的评论 (共 条)

分享到微博请遵守国家法律