Как установить пользовательские значения временного шага для серии устаревших файлов VTK в ParaView?

У меня есть последовательность старых файлов VTK, например: file_0.vtk, file_1.vtk, file_2.vtk, которые я могу открыть в ParaView как временные ряды (описано здесь ) как 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, вот моя печальная попытка создать объект с помощью Устаревший VTKReader:

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, для обновления значений временного шага для каждого индекса устаревшего объекта VTK в ParaView?


person Mike T    schedule 18.11.2015    source источник


Ответы (1)


Я исследовал ваш ответ и не нашел прямого способа сделать то, что вы просите.

Однако вот косвенное решение (взято из списка рассылки paraview):

<сильный>1. конвертируйте файлы vtk в файлы paraview xml (например, файлы VTU или VTM): откройте файлы vtk с помощью paraview и напишите новые файлы с помощью 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>

<сильный>3. загрузите файл .pvd в paraview. Теперь вы можете использовать фильтр Annotate Time с правильными значениями временного шага.

Шаг 1 необходим, потому что приведенное выше решение не работает с файлами .vtk, как описано в вики paraview. .

person Bertrand Gazanion    schedule 06.12.2015