def METHOD_NAME(specs,p0,p1):
    img = Image.open(name+".tiff")
    data = np.array(img)
    x0 = int((p0["lon"]-box["W"])/(box["E"]-box["W"])*data.shape[0])
    y0 = int((p0["lat"]-box["N"])/(box["S"]-box["N"])*data.shape[1])
    x1 = int((p1["lon"]-box["W"])/(box["E"]-box["W"])*data.shape[0])
    y1 = int((p1["lat"]-box["N"])/(box["S"]-box["N"])*data.shape[1])
    dx = x1-x0
    dy = y1-y0
    s = 0.0
    n = 0
    zz = []
    tt = []
    if abs(dx) > abs(dy): # iterate over x
        y = y0
        r = dy/dx
        for x in range(x0,x1+1,np.sign(dx)):
            zz.append(data[int(x),int(y)])
            tt.append(np.sqrt((x0-x)*(x0-x)+(y0-y)*(y0-y))*dd)
            y += r
    else: # iterate over y
        x = x0
        r = dx/dy
        for y in range(y0,y1+1,np.sign(dy)):
            zz.append(data[int(x),int(y)])
            tt.append(np.sqrt((x0-x)*(x0-x)+(y0-y)*(y0-y))*dd)
            x += r
    d = round(np.sqrt(dx*dx+dy*dy)*dd) # distance in feet
    zz = np.array(zz)
    t = np.array(tt)
    z = list(map(lambda x:float(x/res/res),list(map(interp1d(t,zz),np.arange(tt[0],tt[-1],1.0)))))
    return {
        "from" : p0,
        "to" :p1,
        "min":zz.min(),
        "max":zz.max(),
        "avg":np.round(zz.mean(),1),
        "std":np.round(zz.std(),1),
        "len":d,
        "t" : np.arange(tt[0],tt[-1],1.0),
        "z": np.array(z),
    }