我试图保存对应于相同结构网格的三组矢量(速度、湍流强度和速度波动的标准偏差)。理想情况下,我希望它们成为同一个 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')
我花了几个小时寻找如何添加多个向量或标量场的示例,但失败了,所以我想在这里问。任何指导将不胜感激。
Thanks,
Artur
经过一番挖掘后,我发现了以下基于的解决方案this http://docs.enthought.com/mayavi/mayavi/data.html#imagedata and this http://docs.enthought.com/mayavi/mayavi/auto/example_atomic_orbital.html#example-atomic-orbital例子。您必须使用以下命令添加附加数据字段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')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)