2017-03-20 1 views
0

Ich versuche, die Vtk-Bibliothek unter Python zu verwenden, um Stromlinien für einen Datensatz zu verfolgen. Ich brauche die Positionen entlang Stromlinien für weitere Berechnungen. Es ist mir jedoch nicht gelungen, die Daten aus dem vtk StreamLine-Objekt zu extrahieren.So extrahieren Streamline-Daten von vtk StreamTracer Objekt

Ich arbeite unter IPython (Python 2.7.12) mit einer Paraview-Bibliothek Version 5.0.1.

Derzeit bin Laden ich die Daten, die Samen der Einrichtung und verfolgen die Stromlinien:

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() 

Der letzte Schritt scheint tatsächlich die Stromlinien zu verfolgen.

Gemäß der Dokumentation sollte dies Polylinien (Zellendaten) als Ausgabe erzeugen, die die tatsächlichen Feldlinien sind, und die Daten mit den Positionen entlang der Feldlinien zeigen. Allerdings konnte ich das nirgendwo im StreamLine-Objekt finden. Die vorhandenen Zelldaten scheinen unterschiedlich zu sein.

Antwort

1

Hier ist, wie Sie die Daten wiederherstellen können:

servermanager.Fetch(streamTracer) 

Beachten Sie, dass dies ganz costy sein kann, weil Daten aus dem pvserver an den Client übertragen paraview werden muss. Natürlich ist es im eingebauten Zustand egal.

Weitere Informationen here