# Select columns of structured data

**URL:** https://discourse.paraview.org/t/select-columns-of-structured-data/8822
**Category:** ParaView Support
**Created:** [January 21, 2022, 7:38pm UTC](https://discourse.paraview.org/t/select-columns-of-structured-data/8822 "2022-01-21T19:38:50Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![woodscn](https://discourse.paraview.org/user_avatar/discourse.paraview.org/woodscn/32/3226_2.png) [@woodscn](https://discourse.paraview.org/u/woodscn)
#### Post date: [February 1, 2022, 12:16am UTC](https://discourse.paraview.org/t/select-columns-of-structured-data/8822/6 "2022-02-01T00:16:29Z")

</div>

So this looks like it’s almost working (as a programmable filter), but the end result is about half what it should be. I’m trying to integrate a 3D density field with respect to ‘Z’.

I can’t for the life of me figure out why I’d need a factor of 2, so I’m wondering if I’ve messed up the data structure interface somehow.

```auto
from vtk.util.numpy_support import vtk_to_numpy, numpy_to_vtk
nx, ny, nz = inputs[0].GetDimensions()
dx, dy, dz = inputs[0].GetSpacing()
integrand = vtk_to_numpy(inputs[0].PointData['density']).reshape(nz, ny, nx)
out_numpy = numpy.add.reduce(integrand, axis=0, keepdims=True)*dz
out_vtk = numpy_to_vtk(out_numpy.flatten(), deep=1)
out_vtk.SetName('density_a')
out_vtk.SetNumberOfComponents(1)
out_vtk.SetNumberOfTuples(nx*ny*1)
out = self.GetOutput()
out.SetDimensions(nx, ny, 1)
out.SetOrigin(inputs[0].GetOrigin())
out.SetSpacing(inputs[0].GetSpacing()) 
out.GetPointData().AddArray(out_vtk)

```

---

_[View the full topic](https://discourse.paraview.org/t/select-columns-of-structured-data/8822)._
