我有一个legacy VTK files序列,例如:file_0.vtk
,file_1.vtk
,file_2.vtk
,我可以在ParaView中打开它作为时间序列(described here )作为file_..vtk
,可以使用时间控件查看和动画文件序列。我目前正在使用ParaView 4.4.0。
传统的VTK文件如下所示,其中时间步长值存储在标题中(第二行):
# vtk DataFile Version 3.0
vtk output: file at time 0.0
ASCII
...
然而,在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)
在对象“信息”对话框中正确显示,直到我添加AnnotateTimeFilter,它重置0到0,1到1和2到2。
是否使用点击式或Python 来更新ParaView中传统VTK对象的每个索引的时间步长值?
答案 0 :(得分:5)
我调查了你的答案,没有找到直接的方法来做你所要求的。
但是,这是间接解决方案(取自the paraview mailing list):
<强> 1。将您的vtk文件转换为xml paraview文件(例如VTU或VTM文件):使用paraview打开您的vtk文件,并使用File&gt;编写新文件。保存数据。您需要检查&#34;将所有时间步长写为文件系列&#34;。
<强> 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>
第3。在paraview中加载.pvd文件。您现在可以使用具有良好时间步长值的Annotate Time过滤器。
第1步是必需的,因为上述解决方案无法使用.vtk文件,如the paraview wiki中所述。