I am trying to use paraview to integrate my structured cell data along a grid direction. I have a spherical grid and I want to display the radial integral somehow. I am trying to use the programmable filter to do this, but when I load in the cell data, the cells are stored as a 1D array rather than maintaining the grid structure (i.e., [radial slice, azimuthal slice, polar slice]). Is there a way to load in the data while mainting the grid structure to the filter, or transform the 1D data into 3D soo I can do the integration?
Also, is there an online list of the methods and attributes of the programmable filter input/output objects as I find the structure quite confusing!
Thank you very much! I have managed to get the integration working by using reshape, setting output to be same as input and then setting each radial slice to be the radial integral, i.e.
import numpy as np
executive = self.GetExecutive()
outInfo = executive.GetOutputInformation(0)
exts = [executive.UPDATE_EXTENT().Get(outInfo, i) for i in range(6)]
nx = exts[1]-exts[0]
ny = exts[3]-exts[2]
nz = exts[5]-exts[4]
dat_str = inputs[0].CellData.keys()[0]
data_1d = inputs[0].CellData[dat_str]
data_3d = np.reshape(data_1d,[nz,ny,nx])
data_integr_3d = np.zeros_like(data_3d)
for ix in range(nx):
data_integr_3d[:,:,ix] = np.sum(data_3d,axis=2)
data_integr_1d = np.reshape(data_integr_3d,nx*ny*nz)
output.CellData.append(data_integr_1d,"integ_x")