我正在尝试使用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对象中的任何位置找到它。现有的细胞数据似乎不同。
答案 0 :(得分:1)
以下是恢复数据的方法:
servermanager.Fetch(streamTracer)
请注意,这可能非常省钱,因为需要将数据从pvserver转移到paraview客户端。当然,内置它并不重要。
更多信息here