Paraview 中的 Python 脚本

计算科学 Python 可视化 视界
2021-12-11 15:51:14

我一直在使用 Paraview 的基本可视化功能。

现在,我想更进一步,通过编写 python 宏来处理一些特定的任务。

我对高级用户的问题: 是否有任何已知的指南来获得正确的开始?

已经完成了:

  • 阅读 Paraview wiki + 找到一些简明的讲义(我从这些讲义开始)
  • 使用“Trace”记录和修改python shell(这不是最好的学习方式)
3个回答

对不起,不是你所追求的答案......

我从来没有能够让 ParaView Python 界面做任何有用的事情。虽然我承认我只在 Python 方面过得去,而我想做的事情通常是开箱即用的。

我建议您了解VTK,您将能够做更多事情。您不仅不受 ParaView 为您提供 Python 接口的限制,您还可以访问比 ParaView 公开的更多的 VTK 功能。我现在倾向于在 ParaView 中测试一些东西,然后在我知道什么有效后跳入 VTK。

下面是 Python 示例和视频 tut 的链接。

VTK Python 代码

VTK Python 啧啧

我认为 python 脚本最强大的用途是可编程过滤器,而不是 python shell,因为它们允许在管道中创建对象(并且您的脚本将由服务器而不是客户端处理)。您可以在http://www.paraview.org/Wiki/ParaView/Simple_ParaView_3_Python_Filters中找到一些示例

如果您想在 python shell 中尝试这些脚本,您只需修改引用 "self" 的行。例如, pdi = self.GetInput() 应该变成类似 pdi = servermanager.Fetch(FindSource("sphere1")) 的东西。我仍然不确定导出以这种方式生成的数据的正确方法(请参阅我的诱惑 https://stackoverflow.com/a/24273259/1136458

您还可以将当前状态保存为 python 文件,而不是 pvsm,并检查它在那里做了什么(即使它不是 100% 准确,例如我对电子表格表示的某些属性有问题)。

如果你不需要渲染,只是加载一些文件,处理它们并保存它们,你可以有一个非常快速的脚本: - 在 paraview GUI 中创建你的管道
- 将状态导出为 py
- 打开 python 文件并删除所有表示和数据可视化代码(当然,只有当您对这些不感兴趣时​​)
- 用于导出多数据,将其设置为 ActiveSource,然后使用类似

vtkWriter = DataSetWriter(FileName = 'Surface.vtk' , Input = GetActiveSource(), FileType = 1) 
vtkWriter.UpdatePipeline() 

- 多次运行它只是改变一些参数!

正如 andybauer 已经提到的,您可以在此处找到文档http://www.paraview.org/ParaView3/Doc/Nightly/www/py-doc/

您可能希望使用这些作为参考: