我一直在使用 Paraview 的基本可视化功能。
现在,我想更进一步,通过编写 python 宏来处理一些特定的任务。
我对高级用户的问题: 是否有任何已知的指南来获得正确的开始?
已经完成了:
- 阅读 Paraview wiki + 找到一些简明的讲义(我从这些讲义开始)
- 使用“Trace”记录和修改python shell(这不是最好的学习方式)
我一直在使用 Paraview 的基本可视化功能。
现在,我想更进一步,通过编写 python 宏来处理一些特定的任务。
我对高级用户的问题: 是否有任何已知的指南来获得正确的开始?
已经完成了:
对不起,不是你所追求的答案......
我从来没有能够让 ParaView Python 界面做任何有用的事情。虽然我承认我只在 Python 方面过得去,而我想做的事情通常是开箱即用的。
我建议您了解VTK,您将能够做更多事情。您不仅不受 ParaView 为您提供 Python 接口的限制,您还可以访问比 ParaView 公开的更多的 VTK 功能。我现在倾向于在 ParaView 中测试一些东西,然后在我知道什么有效后跳入 VTK。
下面是 Python 示例和视频 tut 的链接。
我认为 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/
您可能希望使用这些作为参考: