# [SciPy-user] scipy to vtk conversion?

Fernando Perez Fernando.Perez at colorado.edu
Fri Dec 30 23:07:58 CST 2005

```Prabhu Ramachandran wrote:
>>>>>>"Pau" == Pau Gargallo <pau.gargallo at gmail.com> writes:
>
>
>     Pau> hi, is there a simple way to convert a scipy array to a vtk
>     Pau> array?  is there a way to do that without writing a explicit
>     Pau> python loop over the data?
>
> You can do this easily with TVTK:
>
>  http://www.enthought.com/enthought/wiki/TVTK

While TVTK is certainly the 'way of the future', I think it's worth mentioning
that using pyvtk

http://cens.ioc.ee/projects/pyvtk/

from our very own Pearu, for certain simple cases the conversion is very
straightforward.  For example:

def make_vtk(arr):
"""Build a vtk data obj from a Numeric 3d array"""

dims = list(arr.shape)
# We need to give the dims as (x,y,z), not (z,y,x):
dims.reverse()
grid = pyvtk.StructuredPoints(dims)

# RectilinearGrid is another option for this [use (x,y,z) order]:
#grid = pyvtk.RectilinearGrid(range(dims[2]),range(dims[1]),range(dims[0]))

if arr.iscontiguous():
dat = arr.flat
else:
dat = N.ravel(arr)
header = 'Data array'
point_data = pyvtk.PointData(pyvtk.Scalars(dat,
'Data Array: ','default'))
return pyvtk.VtkData(grid,header,point_data)

===========

I know this doesn't have anywhere near the functionality and cleanliness of
TVTK, but it may be good enough for cases where the data has simple geometry.

hth,

f

```

More information about the SciPy-user mailing list