Source code for paraview.numeric

# SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
# SPDX-License-Identifier: BSD-3-Clause
r"""
This module provides functions to vtk data arrays to NumPy arrays.
"""

__num_py_available__ = False
try:
    import numpy
    __num_py_available__ = True
except:
    raise """NumPy module "numpy" is not accessible. Please make sure
           that NumPy is installed correctly."""

# These types are returned by GetDataType to indicate data type.
VTK_VOID            = 0
VTK_BIT             = 1
VTK_CHAR            = 2
VTK_UNSIGNED_CHAR   = 3
VTK_SHORT           = 4
VTK_UNSIGNED_SHORT  = 5
VTK_INT             = 6
VTK_UNSIGNED_INT    = 7
VTK_LONG            = 8
VTK_UNSIGNED_LONG   = 9
VTK_FLOAT           =10
VTK_DOUBLE          =11
VTK_ID_TYPE         =12

__typeDict = { VTK_CHAR:numpy.int8,
               VTK_UNSIGNED_CHAR:numpy.uint8,
               VTK_SHORT:numpy.int16,
               VTK_UNSIGNED_SHORT:numpy.int16,
               VTK_INT:numpy.int32,
               VTK_FLOAT:numpy.float32,
               VTK_DOUBLE:numpy.float64 }

[docs]def fromvtkarray(vtkarray): """This function takes a vtkDataArray of any type and converts it to a NumPy array of appropriate type and dimensions.""" global __typeDict__ global __num_py_available__ if not __num_py_available__: raise "NumPy module is not available." #create a numpy array of the correct type. vtktype = vtkarray.GetDataType() if vtktype not in __typeDict: raise "Cannot convert data arrays of the type %s" \ % vtkarray.GetDataTypeAsString() # size = num_comps * num_tuples # imArray = numpy.empty((size,), type) # vtkarray.ExportToVoidPointer(imArray) type = __typeDict[vtktype] pyarray = numpy.frombuffer(vtkarray, dtype=type) # re-shape the array to current number of rows and columns. num_tuples = vtkarray.GetNumberOfTuples() num_comps = vtkarray.GetNumberOfComponents() pyarray = numpy.reshape(pyarray, (num_tuples, num_comps)) return pyarray