PythonとTVTKを使用して複数のベクトルフィールドを使用してデータを保存する
質問
同じ構造化グリッド(速度、乱流強度、速度変動の標準偏差)に対応する3組のベクトル量を保存しようとしています。理想的には、私は彼らが同じVTKファイルの一部になることをお勧めしますが、これまでのようなファイルの1つをそのようにファイルに入れることができただけでした。
sg = tvtk.StructuredGrid(dimensions=x.shape, points=pts)
sg.point_data.vectors = U
sg.point_data.vectors.name = 'U'
write_data(sg, 'vtktestWake.vtk')
.
私は数時間を超えて数時間を費やして、1つのベクトルやスカラーフィールドを追加する方法の例を検索しましたが、失敗したので、ここで尋ねると思った。どんなガイダンスでも最も高く評価されます。
ありがとう、
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')
. 所属していません StackOverflow