numpy_support Module

This module adds support to easily import and export NumPy (http://numpy.scipy.org) arrays into/out of VTK arrays. The code is loosely based on TVTK (https://svn.enthought.com/enthought/wiki/TVTK).

This code depends on an addition to the VTK data arrays made by Berk Geveci to make it support Python’s buffer protocol (on Feb. 15, 2008).

The main functionality of this module is provided by the two functions:
numpy_to_vtk, vtk_to_numpy.

Caveats:

  • Bit arrays in general do not have a numpy equivalent and are not supported. Char arrays are also not easy to handle and might not work as you expect. Patches welcome.
  • You need to make sure you hold a reference to a Numpy array you want to import into VTK. If not you’ll get a segfault (in the best case). The same holds in reverse when you convert a VTK array to a numpy array – don’t delete the VTK array.

Created by Prabhu Ramachandran in Feb. 2008.

paraview.numpy_support.create_vtk_array(vtk_arr_type)[source]

Internal function used to create a VTK data array from another VTK array given the VTK array type.

paraview.numpy_support.get_numpy_array_type(vtk_array_type)[source]

Returns a numpy array typecode given a VTK array type.

paraview.numpy_support.get_vtk_array_type(numpy_array_type)[source]

Returns a VTK typecode given a numpy array.

paraview.numpy_support.get_vtk_to_numpy_typemap()[source]

Returns the VTK array type to numpy array type mapping.

paraview.numpy_support.numpy_to_vtk(num_array, deep=0, array_type=None)[source]

Converts a contiguous real numpy Array to a VTK array object.

This function only works for real arrays that are contiguous. Complex arrays are NOT handled. It also works for multi-component arrays. However, only 1, and 2 dimensional arrays are supported. This function is very efficient, so large arrays should not be a problem.

If the second argument is set to 1, the array is deep-copied from from numpy. This is not as efficient as the default behavior (shallow copy) and uses more memory but detaches the two arrays such that the numpy array can be released.

WARNING: You must maintain a reference to the passed numpy array, if the numpy data is gc’d and VTK will point to garbage which will in the best case give you a segfault.

  • num_array : a contiguous 1D or 2D, real numpy array.
paraview.numpy_support.numpy_to_vtkIdTypeArray(num_array, deep=0)[source]
paraview.numpy_support.vtk_to_numpy(vtk_array)[source]

Converts a VTK data array to a numpy array.

Given a subclass of vtkDataArray, this function returns an appropriate numpy array containing the same data – it actually points to the same data.

WARNING: This does not work for bit arrays.

  • vtk_array : vtkDataArray

    The VTK data array to be converted.