Please help how to access data created in a Python Shell from a Pipeline Browser. I need to plot the data that I calculated using python shell. So that each cell corresponds to a python list item
You need to use a TrivialProducer.
See an example here :
Thanks for the help. But we still can’t figure it out. I have a python list user_data, each cell has a corresponding value in this list. Next I write
t = TrivialProducer() #TrivialProducer1 is created in the Pipeline Browser
filter = t.GetClientSideObject()
And I get the TypeError: SetOutput argument %Id: %V
what is user_data ? How is it created ?
This is a python list created by a script in a python shell. For example:
user_data=[0.1, 0.2, 0.3, 0.4, 0.5]
It is not clear how exactly this data should be presented. Obviously, this data can be presented in any form as a list or a tuple, and combined with any IDs. For example:
user_data=[ [1,0.1], [2,0.2], [3,0.3], [4,0.4], [5,0.5] ]
You need to transform to a vtkTable.
Thank you very much for your help! The transfer of data from Python Shell to the Pipeline Browser could be done using the following script
import numpy as np import vtk # Initial user data as a standard Python list user_data = [0.1, 0.2, 0.3, 0.4, 0.5] # Converting Python list to NumPy array # N.B. In general, this is a good idea for Python scripting to perform calculations using the NumPy library arr = np.array(user_data) # Converting NumPy array to VTK array vtkarr = vtk.vtkDoubleArray() vtkarr.SetNumberOfComponents(1) vtkarr.SetNumberOfTuples(arr.shape) # alternatively SetNumberOfTuples(arr.shape) for a two-dimensional array (more than one data column) vtkarr.SetVoidArray(arr,arr.size,0) vtkarr.SetName("User Data") # Creating of the VTK table tab=vtk.vtkTable() tab.GetRowData().AddArray(vtkarr) # Creating of the TrivialProducer object accessible from the Pipeline Browser t=TrivialProducer() t.GetClientSideObject().SetOutput(tab)