Hello all,
I’m writing a pvpython script to evaluate the mean flow over a surface for every time step, and do some further calculation with the extracted data.
As a first approach, i applied the integrate variables filter (iv) and used a for loop to cycle over times steps in order to extract the data using the servermanager.Fetch(iv) method.
Here a summary of what I do, just to get an idea.
iv= IntegrateVariables(Input=sda) # sda is the surface
iv.UpdatePipeline()
iv_data= servermanager.Fetch(iv)
for t in timesteps:
iv.UpdatePipeline(time=t) # update pipline at t
data_iv = servermanager.Fetch(iv)
flow_temp = data_iv .GetRowData().GetArray("velocity")
flow_data[surf_id] = vnp.vtk_to_numpy(flow_temp )
However, fetching data every time is not the smarter way, I think.
Thus, I figured out I can use the PlotDataOverTime filter to avoid this.
However, i cannot find a way to access to the “Row Data” of the filter.
Can you explain me how to do this?
Here a small part of my code to attempt on figuring what type of attributes the PlotDataOverTime filter had:
dataotime = PlotDataOverTime(Input=iv)
pdataotime.UpdatePipeline()
data_pdataotime = servermanager.Fetch(pdataotime)
print(“RowData plot over time:”, data_pdataotime.GetData.keys())
I know that I can export the data to a csv and then read the csv inside the script, but for me does not make sense that i cannot acces to the data directly using the PlotDataOverTime object itself.
Moreover, I found that using
PlotDataOverTime(Input=sda)
directly on the surface provides sometimes similar results with respect to
iv= IntegrateVariables(Input=sda) # sda is the surface
iv.UpdatePipeline()
PlotDataOverTime(Input=iv)
Why? Is it because PlotDataOverTime evaluate the average over the surface?
Thanks in advance, any help would be highly appreciated.
Cheers!