paraview 使用¶
导航¶
ParaView Documentation ParaView Classroom Tutorials
基本信息¶
ParaView 使用 VTK(the Visualization Toolkit)作为可视化和数据处理的核心支撑。
VTK 的模型基于数据流(data-flow)范式。在这种范式下,数据在系统中流动,并在每一步被称为 algorithm 的模块所转换。algorithm 可以是常见操作(如裁剪、切片或从数据生成等值面),也可以用来计算派生量等。algorithm 通过其输入端口(input port)接收数据,并通过输出端口(output port)输出结果。为了将数据输入到系统中,需要能够读取或生成数据的生产者,这些没有输入端口但拥有一个或多个输出端口的 algorithm 称为 source。比如,从文件中读取数据的 reader 就是这类 source 的一个示例。此外,还有将数据转换成图形基元(graphics primitives)以便在计算机屏幕上渲染或保存到另一个文件中的 algorithm。此类具有一个或多个输入端口但没有输出端口的 algorithm 称为 sink。而同时带有输入端口和输出端口、用于对数据进行中间处理的 algorithm 则称为 filter。source、filter 和 sink 共同构建了灵活的基础架构,用户只需通过连接这些 algorithm 就能创建复杂的处理管线来执行各种复杂任务。
从这种视角来看,可视化管线是 ParaView 工作流的核心:通过创建一个 reader(即 source)将数据导入系统,然后使用 filter 提取信息(例如生成等值面)并在 view 中进行渲染,或者利用 writer(作为一种 sink)将数据保存到磁盘。
基本操作¶
- 将默认的蓝色背景改为白色背景

-
移动 3D 视角
- 鼠标左键: 拖拽物体
- 鼠标滚轮: 放大/缩小物体
- 按住滚轮: 上下平移物体
-
切换回默认视角

- 切换到 FRC 的 x-z 视角
- set view direction to -Y
- Rotate 90d clockwise

- 指定 seed point
- 在 panel 的
Source一栏中添加 source - 如果想打包多个 source, 可以选中这些 source 后选择:
Filters > Alphabetical > GroupDatasets
- 在 panel 的
保存视角信息¶
在 paraview 中运行如下脚本
import paraview.simple as pvs
# 获取当前视图和相机
view = pvs.GetActiveView()
camera = view.GetActiveCamera()
# 保存当前相机位置和角度
camera_position = camera.GetPosition()
camera_focal_point = camera.GetFocalPoint()
camera_view_angle = camera.GetViewAngle()
camera_view_up = camera.GetViewUp()
print("***"*10)
print("camera_position ", camera_position)
print("camera_focal_point ", camera_focal_point)
print("camera_view_angle ", camera_view_angle)
print("camera_view_up ", camera_view_up)
print("***"*10)
就可以在终端中打印出来当前视角信息。恢复视角信息需要如下脚本 (举例):
import paraview.simple as pvs
view = pvs.GetActiveView()
camera = view.GetActiveCamera()
camera.SetPosition((-4.668740696971327, 2.564520009400343, 4.142102672113201))
camera.SetFocalPoint((0.07808221425864849, 0.22357416491324963, 0.32058582292675847))
camera.SetViewAngle(30.0)
camera.SetViewUp((0.30210918260735825, 0.9328669149578858, -0.19618705553952975))
常用的设置¶
clip box¶
比如,想对一个 \(r=0.3\)m,\(z\in[-2,2]\) 的圆柱做 clip,

cylinder source¶
如果想显示计算区域的 Box, 像下图中的白色框线那样,

可以定义一个 cylinder source:


定义参考平面¶
如果想高亮 \(x=0\) 的 YZ 平面作为参考平面,像下面的淡绿色平面:

