Mik*_*e T 4 python time-series vtk paraview
我的序列遗留VTK文件,例如:file_0.vtk,file_1.vtk,file_2.vtk,我可以在的Paraview作为时间序列(打开这里所描述)为file_..vtk,和文件的顺序可以查看和使用时间控制动画。我目前正在使用ParaView 4.4.0。
旧版VTK文件如下所示,其中timestep值存储在标题(第二行)中:
# vtk DataFile Version 3.0
vtk output: file at time 0.0
ASCII
...
Run Code Online (Sandbox Code Playgroud)
但是,在ParaView中,时间步长值假定与索引相同,即索引0为时间0.0,索引1为时间1.0,索引2为时间2.0。并且添加AnnotateTime筛选器还会显示这些时间步长作为时间步长索引。
但是,我的文件使用可变的时间步长,如每个文件的标题中所述。(我认为传统的VTK格式无法指定这些值)。我已经查看了ParaView的应用程序,以查看是否可以导入或修改这些值,但找不到。
使用内置的Python Shell,这是我用LegacyVTKReader创建对象的不幸尝试:
files = ['file_0.vtk', 'file_1.vtk', 'file_2.vtk']
times = [0.0, 0.022608, 0.73781]
# First attempt
r = LegacyVTKReader(FileNames=files, TimestepValues=times)
print(r.TimestepValues) # [0.0, 1.0, 2.0]
# Second attempt to try and fix it
r.TimestepValues = times
print(r.TimestepValues) # [0.0, 0.022608, 0.73781]
Show(r)
Run Code Online (Sandbox Code Playgroud)
在我添加一个AnnotateTimeFilter之前,它将在对象“ Information”对话框中正确显示,将AnnotateTimeFilter重置为0到0、1到1和2到2。
是否可以使用鼠标单击或Python更新ParaView中旧VTK对象的每个索引的时间步值?
我调查了您的答案,发现没有直接方法可以执行您的要求。
但是,这是一个间接解决方案(取自paraview邮件列表):
1.将您的vtk文件转换为xml paraview文件(例如VTU或VTM文件):使用paraview打开您的vtk文件,然后通过File> Save Data写入新文件。您需要检查“将所有时间步都写为文件系列”。
2.创建一个ParaView数据文件(.pvd)。在此文件中,您可以为每个文件指定时间步长值。这是一个例子:
<VTKFile type="Collection" version="0.1" byte_order="LittleEndian">
<Collection>
<DataSet timestep="0" file='file_0.vtu'/>
<DataSet timestep="0.022608" file='file_1.vtu'/>
<DataSet timestep="0.73781" file='file_2.vtu'/>
</Collection>
</VTKFile>
Run Code Online (Sandbox Code Playgroud)
3.在paraview中加载.pvd文件。现在,您可以使用具有良好时间步长值的“注释时间”过滤器。
第1步是必需的,因为上述解决方案不与.vtk文件工作,在解释的paraview包维基。