Сохранить данные в VTK, используя Python и TVTK с более чем одним векторным полем

StackOverflow https://stackoverflow.com//questions/20035620

  •  21-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь сэкономить три набора величин векторов, соответствующих той же структурированной сети (скорость, интенсивность турбулентности и стандартное отклонение флуктуаций скорости).В идеале, я бы хотел, чтобы они были частью того же файла VTK, но до сих пор я смог получить только один из них в файл, как так:

sg = tvtk.StructuredGrid(dimensions=x.shape, points=pts)
sg.point_data.vectors = U
sg.point_data.vectors.name = 'U'
write_data(sg, 'vtktestWake.vtk')
.

Я провел последние несколько часов поиска на примере того, как добавить более одного вектора или скалярного поля, но не удалось, и поэтому думал, что я спрошу здесь.Любое руководство будет наиболее оценено.

Спасибо,

Artur

Это было полезно?

Решение

После некоторого копания вокруг я нашел следующее решение на основе на основе на основе Это и Это пример .Вы должны добавить дополнительное поле данных, используя метод add_array см.:

from tvtk.api import tvtk, write_data
import numpy as np

data = np.random.random((3,3,3))
data2 = np.random.random((3,3,3))

i = tvtk.ImageData(spacing=(1, 1, 1), origin=(0, 0, 0))
i.point_data.scalars = data.ravel()
i.point_data.scalars.name = 'scalars'
i.dimensions = data.shape
# add second point data field
i.point_data.add_array(data2.ravel())
i.point_data.get_array(1).name = 'field2'
i.point_data.update()

write_data(i, 'vtktest.vtk')
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top