如何从vtk StreamTracer对象中提取流线数据

How to extract streamline data from vtk StreamTracer object

我正在尝试使用 python 下的 vtk 库来跟踪数据集的流线。我需要沿流线的位置以进行进一步计算。但是,我无法从 vtk StreamLine 对象中提取数据。

我在 IPython (Python 2.7.12) 下使用 paraview 库版本 5.0.1。

目前我正在加载数据、设置种子和追踪流线:

import paraview.simple as pv
b0vtk = pv.LegacyVTKReader(FileNames=['B0.vtk'])
streamTracer = pv.StreamTracer(Input=b0vtk, SeedType='Point Source')
streamTracer.Vectors = ['POINTS', 'bfield']
streamTracer.MaximumStreamlineLength = 50
streamTracer.SeedType.Center = [0, 0, 0]
streamTracer.SeedType.NumberOfPoints = 1000
streamTracer.SeedType.Radius = 1.6
streamTracer.UpdatePipeline()

最后一步好像真的有迹可寻

根据文档,这应该创建多段线(单元格数据)作为实际场线的输出,并创建具有沿场线位置的点数据。但是,我无法在 StreamLine 对象的任何地方找到它。现有的单元格数据似乎不同。

以下是恢复数据的方法:

servermanager.Fetch(streamTracer)

请注意,这可能会非常昂贵,因为数据需要从 pvserver 传输到 paraview 客户端。当然内置没关系。

更多信息here