def hpx_to_coords(h, shape):
    """ Generate an N x D list of pixel center coordinates where N is
    the number of pixels and D is the dimensionality of the map."""

    x, z = hpx_to_axes(h, shape)

    x = np.sqrt(x[0:-1] * x[1:])
    z = z[:-1] + 0.5

    x = np.ravel(np.ones(shape) * x[:, np.newaxis])
    z = np.ravel(np.ones(shape) * z[np.newaxis, :])

    return np.vstack((x, z))