PythonとTVTKを使用して複数のベクトルフィールドを使用してデータを保存する

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

  •  21-12-2019
  •  | 
  •  

質問

同じ構造化グリッド(速度、乱流強度、速度変動の標準偏差)に対応する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')
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top