График поверх линии с 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, соответствующий вашим действиям.

Другие вопросы по тегам