def split_tracks(lat,lon,*args):
        '''assumes eastward motion'''
        tracks = []
        lt,ln = [lat[0]],[lon[0]]
        zz = [[z[0]] for z in args]
        for i in range(1,len(lon)):
            lt.append(lat[i])
            for z,a in zip(zz,args):
                z.append(a[i])
            d1 = abs(lon[i] - lon[i-1])
            d2 = abs((lon[i-1] + 360) - lon[i])
            d3 = abs(lon[i-1] - (lon[i] + 360))
            if d2 < d1:
                ln.append(lon[i]-360)
                tracks.append([np.array(lt),np.array(ln)] \
                    + [np.array(z) for z in zz])
                lt = [lat[i-1],lat[i]]
                ln = [lon[i-1]+360,lon[i]]
                zz = [[z[i-1]] for z in args]
            elif d3 < d1:
                ln.append(lon[i]+360)
                tracks.append([np.array(lt),np.array(ln)] \
                    + [np.array(z) for z in zz])
                lt = [lat[i-1],lat[i]]
                ln = [lon[i-1]-360,lon[i]]
                zz = [[z[i-1],z[i]] for z in args]
            else:
                ln.append(lon[i])
        if len(lt):
            tracks.append([np.array(lt),np.array(ln)] \
                + [np.array(z) for z in zz])
        return tracks