Trivial Producer Scalars not Visible? (Part of increasing understanding of VTK + Paraview scripting)

Hi there,

I’m trying to improve my understanding of both paraview and vtk’s python module by generating small point sets and viewing them in paraview using the Trivial Producer. I succeed in getting points drawn to the screen with this code when I use Run Script in paraview, but there’s no clear way to see the scalar data set on the points.

import numpy as np
from paraview.simple import *
import paraview.vtk as vtk
from paraview.vtk.numpy_interface import dataset_adapter as dsa
import paraview.vtk.util.numpy_support as vnp

node = np.array(
        [[0.0, 0.0, 0.0],
         [1.0, 0.0, 0.0],
         [1.0, 1.0, 0.0],
         [0.0, 1.0, 0.0]], dtype=np.float)

NC = cell.shape[0]

points = vtk.vtkPoints()
points.SetData(vnp.numpy_to_vtk(node))
vpoly = vtk.vtkPolyData()
vpoly.SetPoints(points)

# create scalars
s = vtk.vtkFloatArray()
s.InsertTuple1(0,20.0)
s.InsertTuple1(1,30.0)
s.InsertTuple1(2,50.0)
s.InsertTuple1(3,50.0)

vcells = vtk.vtkCellArray()

for i in range(node.shape[0]):
	vcells.InsertNextCell(1)
	vcells.InsertCellPoint(i)

vpoly.SetVerts(vcells)

vpoly.GetPointData().SetScalars(s)
# how to put uGrid into the following codes
view = GetActiveViewOrCreate('RenderView') 


# create a trivial producer to bridge between the VTK object and ParaView
tp = TrivialProducer()
tp.GetClientSideObject().SetOutput(vpoly)

dispaly = Show(tp)

#Interact()

Funnily enough if I use the vtp extractor then I can open a resulting vtp file and see the scalar data, but I’d prefer not to do those several extra steps just to view some small changes in the values I write in the python script.

Here’s what things look like in paraview. I’m unsure if the error that comes up is related to the missing data displayed

So the question is, how can I use trivial producer to show scalar data on a vtkPolyData object I’ve written from scratch? In a larger sense this question is also asking “what is the preferred way to use vtk and paraview scripting together?”

Thanks for any support on this matter!

the error

Name your array

the question is, how can I use trivial producer to show scalar data on a vtkPolyData object I’ve written from scratch?

Yes, but only in built-in mode, not in server mode.

In a larger sense this question is also asking “what is the preferred way to use vtk and paraview scripting together?”

Programmable source/Filter

Thank you for the concise yet comprehensive run through of my questions!

Oh woops, yes I was totally expecting something like _Scalars by default but that was wrong. Sure enough adding s.SetName("test") did the trick.

Great I’ll make sure I understand those better as they are the preferred route to make use of python vtk within paraview.

Cheers

1 Like