Я пытаюсь извлечь данные (как csv) из строки для всех временных шагов с помощью фильтра PlotOverLine в Paraview. В графическом интерфейсе я загружаю файл пены, использую фильтр PlotOverLine и сохраняю представление электронной таблицы как файл csv, а затем нажимаю кнопку «Далее» на панели анимации, чтобы загрузить следующий временной шаг, и повторяю вышеуказанное для оставшихся временных шагов в то же время. расположение линейного источника. (поскольку это временные данные, мне нужны данные за все временные шаги в фиксированном месте). Я использовал следующий сценарий.
try: paraview.simple
except: from paraview.simple import *
paraview.simple._DisableFirstRenderCameraReset()
my_foam = FindSource("case.foam") #loading my case file
SetActiveSource(my_foam)
tsteps = my_foam.TimestepValues # trying to read all time step directories
for TimeStepNum in range(0,len(tsteps)): # the loop?
view = GetActiveView()
view.ViewTime = tsteps[TimeStepNum]
Render()
PlotOverLine1 = PlotOverLine( Source="High Resolution Line Source" )
DataRepresentation7 = Show()
PlotOverLine1.Source.Point1 = [-0.052, 0.0, 0.0] #my fixed location
PlotOverLine1.Source.Point2 = [0.0, 0.0, 0.0]
source = PlotOverLine1
writer = CreateWriter("file_%d.csv" %(TimeStepNum), source)
writer.FieldAssociation = "Points"
writer.UpdatePipeline()
Render()
del writer
Скажем, если у меня есть 5 временных шагов, скрипт при запуске в качестве макроса в Paraview создает файл_0 в файл_5.csv, однако в файлах от file_1 до file_4 в качестве данных вместо фактических значений используется «nan». Где as, у file_0 и file_5 есть значения, которые должны быть. Я новичок, не знаю, где я ошибаюсь! Не уверен, обновляется ли временной шаг перед построением данных следующей строки. Любая помощь будет принята с благодарностью! Должен быть более простой способ обновить временные интервалы, а затем использовать тот же фильтр в том же месте, я думаю.