这里介绍用于三维科学可视化的四个开源库,包括可以从 Python 使用的独立应用程序或可编写脚本的工具。
大型 3D 数据集的科学可视化是一项复杂的任务,为此,专门的软件库已经开发了相当长的一段时间。与 CAD 或 CAE 的其他领域不同,3D 可视化软件大多是开源的。


As shown below👇
四个开源库简介
Paraview(Python 和standalone)
ParaView 是一个开源、多平台的科学数据分析和 可视化工具,可实现对超大型的分析和可视化 数据。ParaView 既是一个通用的最终用户应用程序,又具有 分布式架构,可由您的桌面或其他设备无缝利用 远程并行计算资源和具有 用于各种应用程序(包括脚本编写)的工具和库的集合 (使用 Python)、Web 可视化(通过 trame 和 ParaViewWeb)或原位分析(使用 Catalyst)。
ParaView 利用并行数据处理和渲染来实现交互式超大型数据集的可视化。它还包括对大型的支持显示,包括平铺显示和具有头部跟踪功能的沉浸式 3D 显示和wand控制功能。
ParaView 还支持使用 Python 编写脚本和批处理。用包含的 Python 模块,您可以编写几乎可以执行所有交互式应用程序公开的功能等等。

VisIt(Python 和standalone)
劳伦斯利弗莫尔国家实验室 (LLNL) 开发的 VisIt 软件套件于 2002 年首次发布,提供了一套强大的可视化功能,包括并行处理、对多种科学数据格式的支持和 Python 脚本。
与 Paraview 一样,VisIt 也利用 VTK 作为基本构建块,以及 Python 脚本。与此同时,在并行化到极大规模方面做出了具体努力,纳入了对非标准数据模型的支持。特别是,VisIt 的一个突出点是它支持非常多的输入文件格式。

PyVista(Python)
同样基于 VTK 的 PyVista 库为 3D 数据和 modales 提供可视化例程,旨在实现易用性和在科学和工程领域的广泛适用性。
它的主要目的是成为 VTK 上的抽象层,为“Pythonically”公开的 VTK 提供便利和功能。特别是,它支持VTK的大部分甚至全部功能,包括并行文件,这些文件是可视化超大型数据集所必需的。
PyVista 开发人员还支持各种相关工具,包括用于修复 PyVista 表面网格中的孔的 PyMeshFix、[Python 的 TetGen 包装器](https://github.com/pyvista/tetgen)和 PyACVD(表面网格重采样算法 ACVD 的 Python 实现)。

Mayavi(Python)
MayaVi 也基于 VTK,是一个用于 3D 可视化的 Python 库。它专注于直接从 Python 创建可视化场景,提供与 Python 生态系统中其他科学库的简单无缝集成。
缺点之一是对于非常大的数据集,它可能会很慢,特别是它不支持并行文件格式。

资料参考
Paraview官方文档和主页
https://docs.paraview.org/en/latest/index.html
https://www.paraview.org/
VisIt主页和文档
https://visit-dav.github.io/visit-website/
https://visit-sphinx-github-user-manual.readthedocs.io/en/stable/index.html
PyVist主页和文档
https://pyvista.org/
https://docs.pyvista.org/
Mayavi文档
https://docs.enthought.com/mayavi/mayavi/mlab.html
本文中所有库都提供允许商业用途的宽松许可证。重要的是,可以依赖两种工具。
一,有大型独立应用程序,如Paraview或VisIt,它们非常强大,但可能有一个步骤学习曲线。使用这些工具,可以完成的任务几乎没有限制,包括使用复杂算法对极其庞大的数据集进行可视化。虽然这些工具提供对脚本的支持,但最常见的工作流程是使用它们打开文件进行后处理。
二,有一些较小的软件项目与 Python 或 Julia 等编程语言更紧密地联系在一起,它们专注于在语言内部轻松无缝地使用。因此,这些工具可能更易于使用,但对可以管理的数据集的大小有更多的限制,内置算法和支持的数据格式较少。



