在 Paraview 中将圆柱体展开到平面

计算科学 Python 计算几何 可视化 局部坐标 视界
2021-12-02 17:40:46

我想从圆柱体的边界表面(在.vtu文件中)提取数据并将其绘制到平面上,其中坐标是圆柱体的 theta(旋转角)和 Z(高度)。我知道这可以通过多种方式完成,但我正在寻找一个简单干净的解决方案,使用 Paraview、python 或两者(即 paraview 中的 python 宏)

  • 我尝试使用该ExtractSurface选项将外部点及其数据导出,但由于某种原因,一些“体积”点(我的意思是不在域边界上的点)也被导出

  • 我使用该包编写了一个 Python 脚本VTK来解析我的输入数据文件,然后获取笛卡尔坐标,将其转换为极坐标,最后使用半径条件获取边界点。虽然这可行,但它并非完美无缺,因为边界点不是“精确”定位在最大半径上,而是在半径间隔内(漫反射界面)

有什么方法可以使用 paraview 过滤器来完成工作吗?我还检查了该Programmable filter选项,尝试了一些教程示例,但我发现它有点复杂。

有什么建议或想法吗?

1个回答

在不进行任何 C++ 或 Python 编程的情况下,我能想到的最好方法是以下步骤,所有步骤都使用 ParaView 的串行运行:

  1. 使用提取表面过滤器
  2. 使用选择或剪辑过滤器去除圆柱体的盖子(可选但更适合查看)
  3. 使用剪辑过滤器切除圆柱体的正 X 侧
  4. 使用计算器过滤器展开这半个圆柱边界(检查坐标结果以执行此操作)
  5. 从 1 或 2 的输出中,使用剪辑滤波器切除圆柱体的负 X 侧
  6. 使用计算器过滤器从 5 展开圆柱边界输出的一半
  7. 突出显示两个计算器过滤器,然后使用附加数据集过滤器将它们缝合在一起(查看时不需要,但可能对分析有用)