I would like to vectorize the next computation:

nx, ny, nz = 720, 180, 3
outheight = np.arange(nz) * 3
oro = np.arange(nx * ny).reshape((nx, ny))

def compute1(outheight, oro):
    result = np.zeros((nx, ny, nz))
    for ix in range(nx):
        for iz in range(nz):
            result[ix, :, iz] = outheight[iz] + oro[ix, :]
    return result

I think this should be possible by using an advanced use of broadcasting in numpy.  Anyone willing to post a solution?

Francesc Alted