sensotwin.write_vtt

 1import vtk
 2from vtk.util import numpy_support
 3import numpy as np
 4import logging
 5logging.captureWarnings(True)
 6import pandas as pd
 7logging.captureWarnings(False)
 8
 9def _create_vtktable(dataframe: pd.DataFrame) -> vtk.vtkTable:
10    """Create vtkTable object from input data.
11
12    Args:
13        dataframe: pandas dataframe with table data to convert to vktTable
14
15    Returns:
16        vtk table equal to input pandas dataframe in structure and content
17    """
18    table = vtk.vtkTable()
19    for column in list(dataframe):
20        np_array = dataframe[column].to_numpy()
21        if np_array.dtype == np.dtype(object):
22            # string are not handled properly by numpy_to_vtk, create manually
23            vtk_array = vtk.vtkStringArray()
24            vtk_array.SetNumberOfComponents(1)
25            vtk_array.SetNumberOfTuples(len(np_array))
26            for i, value in enumerate(list(np_array)):
27                vtk_array.SetValue(i, value)
28        else:
29            # for numbers, use numpy_to_vtk
30            vtk_array = numpy_support.numpy_to_vtk(np_array, deep=True, array_type=None)
31        vtk_array.SetName(column)
32        table.AddColumn(vtk_array)
33    return table
34
35
36def _write_to_disk(filename: str, table: vtk.vtkTable):
37    """Write input vtkTable to vtt file on disk.
38
39    Args:
40        filename: full or relative filepath with file name to save to
41        table: vtkTable containing data to write
42    """
43    writer = vtk.vtkXMLTableWriter()
44    writer.SetFileName(filename)
45    writer.SetDataModeToAppended()
46    writer.SetInputData(table)
47    writer.Write()
48
49
50def write_file(filename: str, dataframe: pd.DataFrame):
51    """Write given pandas data to file in specified location in vtk table format.
52
53    Args:
54        filename: full or relative filepath with file name to save to
55        dataframe: pandas dataframe with input table data
56    """
57    table = _create_vtktable(dataframe)
58    writer = _write_to_disk(filename, table)
def write_file(filename: str, dataframe: pandas.core.frame.DataFrame):
51def write_file(filename: str, dataframe: pd.DataFrame):
52    """Write given pandas data to file in specified location in vtk table format.
53
54    Args:
55        filename: full or relative filepath with file name to save to
56        dataframe: pandas dataframe with input table data
57    """
58    table = _create_vtktable(dataframe)
59    writer = _write_to_disk(filename, table)

Write given pandas data to file in specified location in vtk table format.

Args: filename: full or relative filepath with file name to save to dataframe: pandas dataframe with input table data