2017-03-20 53 views
0

我想使用python下的vtk库来跟踪数据集的流线。我需要沿着流线进行进一步计算。但是,我一直无法从vtk StreamLine对象中提取数据。如何从vtk StreamTracer对象提取流线数据

我正在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

这里是你如何恢复数据:

servermanager.Fetch(streamTracer) 

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

更多信息here