Plotting time series scalars on a single mesh

I have a single surface (say, a sphere). For the sphere, I would like to store the scalar named temperature which varies over time. I have data from 1000 time points. Here, I don’t wish to store all the scalar arrays (from 1000 time points) as separate scalar array names. How can I store all the 1000 scalar arrays under one name and switch between them?
The following line is not suitable me:

mapper.GetInput().GetPointData().SetActiveScalars("temperature1")
mapper.GetInput().GetPointData().SetActiveScalars("temperature2")
mapper.GetInput().GetPointData().SetActiveScalars("temperature3")
...
mapper.GetInput().GetPointData().SetActiveScalars("temperature1000")

Is there a better way?

Elements in a VTK array are tuples that can have any number of components. So you could store your temperatures as individual components in a tuple.

See the chapter about Data Arrays in VTK Users guide.

Thanks Dan for the reply!
So I will have to declare that there are 1000 components, and every tuple will have length 1000? That means data for a particlar timestep(1000 Double values) should be inserted into multiple tuples?
Should I be using the function SetVectorComponent(int) to switch between the temporal visualizations? Am I correct? Sorry if I misunderstood you, please correct me if I am wrong.

It is not clear to me why you want to store all time steps in one dataset. You could switch between time steps to visualize them, you don’t really need to store them together unless you want to process them together somehow.

See
https://www.kitware.com/streaming-in-vtk-time/

on how to update a pipeline to a certain time step.

1 Like