Saya memiliki rangkaian file VTK lama, misalnya: file_0.vtk
, file_1.vtk
, file_2.vtk
, yang dapat saya buka di ParaView sebagai rangkaian waktu (dijelaskan di sini ) sebagai file_..vtk
, dan urutan file dapat dilihat dan dianimasikan menggunakan kontrol waktu. Saat ini saya menggunakan ParaView 4.4.0.
File VTK lama terlihat seperti ini, di mana nilai timestep disimpan di header (baris kedua):
# vtk DataFile Version 3.0
vtk output: file at time 0.0
ASCII
...
Namun, di ParaView nilai timestep diasumsikan sama dengan indeks, yaitu indeks 0 adalah waktu 0,0, indeks 1 adalah waktu 1,0, dan indeks 2 adalah waktu 2,0. Dan menambahkan filter AnnotateTime juga menunjukkan langkah waktu ini untuk indeks langkah waktu.
Namun, file saya menggunakan langkah waktu variabel, seperti yang dijelaskan di header setiap file. (Saya rasa format VTK lama tidak memiliki cara untuk menentukan nilai-nilai ini). Saya telah melihat-lihat aplikasi ParaView untuk melihat apakah ada cara untuk mengimpor atau mengubah nilai-nilai ini, tetapi saya tidak dapat menemukannya.
Menggunakan Python Shell bawaan, inilah upaya menyedihkan saya untuk membuat objek dengan VTKReader Lama:
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)
Yang menampilkan dialog "Informasi" objek dengan benar, hingga saya menambahkan AnnotateTimeFilter, yang menyetel ulang 0 ke 0, 1 ke 1, dan 2 ke 2.
Apakah ada cara, menggunakan point-click atau Python, untuk memperbarui nilai timestep untuk setiap indeks objek VTK lama di ParaView?