Pergunta

Eu estou tentando salvar três conjuntos de grandezas vetoriais correspondentes ao mesmo estruturado grade (velocidade, intensidade de turbulência e o desvio padrão das flutuações de velocidade).Idealmente, eu gostaria de ser uma parte do mesmo arquivo vtk mas até agora tenho sido capaz de obter um deles para o arquivo assim:

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

Eu passei passado algumas horas procurando um exemplo de como adicionar mais de um vetor ou campo escalar, mas falhou e então pensei em perguntar aqui.Qualquer orientação será mais apreciado.

Obrigado,

Artur

Foi útil?

Solução

Depois de alguns cavar em torno achei a seguinte solução, com base no este e este exemplo.Você tem que adicionar os dados de campo usando o add_array método ver:

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')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top