I think I'm answering my question. These strange secants are the result of scraping the ends of the list. By default, I believe that scipy will connect 2 consecutive points regardless of location. The vertices work correctly because he strictly adhered to the outline of this image and he surrounded the curve. The reason the secut is associated with the middle of the upper semicircle. This is the place where the last journey ends.
I suggest that converting to polar and removing the path is simple, but not entirely optimistic, but good.
I wonder if anyone has a better solution
def cart2polar(x,y, origin=None, size=np.array([200,200])): ny, nx= size[0], size[1] print size.shape if origin is None: origin_x, origin_y = nx//2, ny//2 else: origin_x, origin_y = origin[0], origin[1] x -= origin_x y -= origin_y r = np.sqrt(x**2 + y**2) theta = np.arctan2(y, x) return r, theta def main(): index = np.argsort(theta) r, theta = r[index[:]], theta[index[:]] f = interpolate.interp1d(theta,r) theta = np.linspace(round(theta.min()+.00005,),theta.max(), 200) r = f(theta) x,y = polar2cart(r, theta) def polar2cart(r, theta, origin=None, size=np.array([200,200]) ): ny, nx= size[0], size[1] if origin is None: origin_x, origin_y = nx//2, ny//2 else: origin_x, origin_y = origin[0], origin[1] x += origin_x y += origin_y return x, y