Как извлечь данные об оптимизации из объекта vtk StreamTracer

Я пытаюсь использовать библиотеку vtk под python для отслеживания потоков для набора данных. Мне нужны позиции вдоль линий тока для дальнейших расчетов. Однако мне не удалось извлечь данные из объекта 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. Существующие данные ячейки кажутся другими.


person Iomsn    schedule 20.03.2017    source источник


Ответы (1)


Вот как вы можете восстановить данные:

servermanager.Fetch(streamTracer)

Имейте в виду, что это может быть довольно дорого, потому что данные должны передаваться с pvserver на клиент paraview. Конечно во встроенном не беда.

Подробнее здесь

person Mathieu Westphal    schedule 22.03.2017