如何从vtk StreamTracer对象

时间:2017-03-20 21:32:32

标签: python vtk paraview

我正在尝试使用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对象中的任何位置找到它。现有的细胞数据似乎不同。

1 个答案:

答案 0 :(得分:1)

以下是恢复数据的方法:

servermanager.Fetch(streamTracer)

请注意,这可能非常省钱,因为需要将数据从pvserver转移到paraview客户端。当然,内置它并不重要。

更多信息here