График поверх линии с pvpython
Добрый день, я пытаюсь использовать фильтр «Plot Over Line» Paraview в скрипте Python. В принципе, я хочу:
- Откройте файл «.vtu»;
- Используйте фильтр PlotOverLine для скорости;
- Сохраните данные в файле «.csv».
В Интернете я нашел возможный способ сделать это, но он выдает ошибку при запуске с pvpython (даже если использовать слово «простой» перед командами):
from paraview import simple
import csv
flow = GetActiveSource()
plotOverLine1 = PlotOverLine(Input=flow, Source='High Resolution Line Source')
passArrays1 = PassArrays(Input=plotOverLine1)
passArrays1.PointDataArrays = ['U']
plotOverLine1.Source.Point1 = [0, 0, 0]
plotOverLine1.Source.Point2 = [0, 0.4, 0]
writer = CreateWriter('data.csv')
writer.UpdatePipeline()
1 ответ
Во-первых, вы можете сообщить здесь о своих ошибках.
Как вы предполагаете, ваш скрипт не может работать как есть, вы должны изменить импорт на
from paraview.simple import *
.
Кроме того, ваш писатель не имеет явного ввода. я рекомендую использовать
CreateWriter(filename='path', input=myInput)
, или, для одного выстрела, напишите,
SaveData(filename='path', input=myInput)
.
Наконец, один из способов создания таких сценариев — использовать
Tools / Start Trace
опция меню (с конфигурацией по умолчанию). Затем выполните действия в интерфейсе. Окончательно
Tools / Stop Trace
дать вам скрипт python, соответствующий вашим действиям.