def METHOD_NAME(data, mesh, vTop, vBot, flat=False):
    """Create 2D velocity gradient model.
    Creates a smooth, linear, starting model that takes the slope
    of the topography into account. This is done by fitting a straight line
    and using the distance to that as the depth value.
    Parameters
    ----------
    data: pygimli DataContainer
        The topography list is in here.
    mesh: pygimli.Mesh
        The parametric mesh used for the inversion
    vTop: float
        The velocity at the surface of the mesh
    vBot: float
        The velocity at the bottom of the mesh
    Returns
    -------
    model: pygimli Vector, length M
        A numpy array with slowness values that can be used to start
        the inversion.
    """
    xVals = pg.x(data)
    yVals = pg.y(data)
    if abs(min(yVals)) < 1e-8 and abs(max(yVals)) < 1e-8:
        yVals = pg.z(data)
    x = pg.x(mesh.cellCenters())
    z = pg.y(mesh.cellCenters())
    pos = np.column_stack((x, z))
    if flat:
        p = np.polyfit(xVals, yVals, deg=1)  # slope-intercept form
        n = np.asarray([-p[0], 1.0])  # normal vector
        nLen = np.sqrt(np.dot(n, n))
        d = np.array([np.abs(np.dot(pos[i, :], n) - p[1]) / nLen for i
                      in range(pos.shape[0])])
    else:
        d = np.interp(x, xVals, yVals) - z
    return 1.0 / np.interp(d, [min(d), max(d)], [vTop, vBot])