code: def interp3d_core(x,y,t,Z,xout,yout,tout,**kwargs):
      
      
      #this below can take a very LOOOOOONG time
      gx = np.reshape(np.repeat(x,y.size*t.size),(x.size,y.size,t.size))
      gy = np.reshape(np.repeat(y,x.size*t.size),(y.size,x.size,t.size)).transpose((1,0,2))
      gt = np.reshape(np.repeat(t,x.size*y.size),(t.size,x.size,y.size)).transpose((1,2,0))
  
      gz = Z.flatten()
       
      points = zip(*(gx.flatten(),gy.flatten(),gt.flatten())) 
      xi = zip(*(xout,yout,tout))
      
      Zout = scipy.interpolate.griddata(points, gz, xi, **kwargs)
      return Zout
docs: INTERP3D : Interpolate values from a 3D matrix along a 1D trajectory
      
      @param x: 1st dimension vector of size NX
      @param y: 2nd dimension vector of size NY
      @param t: 3rd dimension vector of size NT
      
      @author: Renaud DUSSURGET, LER/PAC, Ifremer La Seyne