【发布时间】:2015-05-14 14:46:10
【问题描述】:
我正在尝试使用 Paraview 中的 PlotOverLine 过滤器从一条线上提取所有时间步长的数据(作为 csv)。在 GUI 中,我加载了泡沫文件,使用 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 上作为宏运行时会生成 file_0 到 file_5.csv,但是,file_1 到 file_4 的数据为“nan”,而不是实际值。其中,file_0 和 file_5 具有应有的值。我是新手,不知道哪里出错了!在绘制下一行数据之前不确定时间步长是否正在更新。任何帮助将不胜感激!应该有一种更简单的方法来更新时间步,然后在我猜的相同位置使用相同的过滤器。
【问题讨论】:
标签: python csv scripting export-to-csv paraview