I agree that this can be simplified - we shouldn't even have to use ``np.convolve`` at all, right? Say you have a model ``model`` and your grid goes from ``xmin`` to ``xmax`` in ``n`` cells, then you just need to do:

```
xedges = np.linspace(xmin, xmax, n + 1)
yedges = model(xedges)
y = 0.5 * (yedges[1:] + yedges[:-1])
```

and that's it! Similar for 2D below, except the last line is the sum of four slices multiplied by 0.25.