尝试使用由NumPy数组制作的tvtk保存vtk文件

时间:2013-08-01 21:54:07

标签: python numpy vtk enthought

我正在尝试使用tvtk(Enthought的Canopy附带的软件包)将一些数组转换成.vtk数据,我可以将其丢给VisIt(mayavi在我的操作系统(Mac OS X)上抱怨。我发现看起来像什么这里的解决方案(Exporting a 3D numpy to a VTK file for viewing in Paraview/Mayavi)但是我没有恢复答案作者所做的输出,并且想知道是否有人能告诉我我做错了什么。所以我在Canopy笔记本中输入命令,

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

data = np.random.random((10,10,10))

grid = tvtk.ImageData(spacing=(10, 5, -10), origin=(100, 350, 200), 
                  dimensions=data.shape)
grid.point_data.scalars = np.ravel([], order='F')
grid.point_data.scalars.name = 'Test Data'

# Writes legacy ".vtk" format if filename ends with "vtk", otherwise
# this will write data using the newer xml-based format.
write_data(grid, '/Users/Epictetus/Documents/Dropbox/Work/vtktest.vtk')

确实创建了一个vtk文件,但与上一个答案的作者输出的输出不同,我只得到一个空白输出,

# vtk DataFile Version 3.0
vtk output
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 10 10 10
SPACING 10 5 -10
ORIGIN 100 350 200

我做错了很明显吗?文件I / O从未成为我的强项...

干杯!

-user2275987

1 个答案:

答案 0 :(得分:4)

更改行

grid.point_data.scalars = np.ravel([], order='F')

grid.point_data.scalars = data.ravel(order='F')

您的网格没有任何数据,因此没有任何内容保存到vtk文件中! : - )