\documentclass[a4paper]{article}

\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{document}

\begin{tikzpicture}
	\begin{axis}[
		point meta rel=per plot,
		filter discard warning=false,
	]
	\addplot3[surf,domain=0:1] {
		x+y 
		+ 0.8*sin(x*360)*x*(1-y) 
		+ 0.4*(-sin(x*360)-sin(y*300))*(x+0.1)^2*(y+0.4)^2
		+ exp(-((x-0.2)^2 + (y-0.7)^2)*10)*0.8
	};	
	\addplot3[red,
		%--------------------------------------------------
		% quiver={
		% 	u=0,
		% 	v=1,
		% 	w=1-0.8*sin(1*360) ,
		% },
		%-------------------------------------------------- 
		variable=\t,
		domain=0:1,samples y=0] 
	(1.03,t,{
		1+t 
		+ 0.8*sin(1*360)*1*(1-t) 
		+ 0.4*(-sin(1*360)-sin(t*300))*(1+0.1)^2*(t+0.4)^2
		+ exp(-((1-0.2)^2 + (t-0.7)^2)*10)*0.8
	});	
	%\tracingmacros=2 \tracingcommands=2
	\addplot3[contour gnuplot={
			number=9,
			labels=false,
			output point meta=rawz, % override the z filter
		},
		z filter/.code={%
			\ifdim##1pt<0.15pt %
				\def\pgfmathresult{}% skip incomplete contour
			\else
				\def\pgfmathresult{3}% fix complete contour plot at a specific level
			\fi
		},
		domain=-0.3:0.6, domain y=-0.2:1.1,
		colormap/hot,
		] 
	{
		+ exp(-((x-0.2)^2 + (y-0.7)^2)*10)*0.8
	};

	\addplot3[->,blue,domain=4:5*pi,variable=\t,samples=60,samples y=0]
    ({sin(deg(t))*(1-t/5/pi)*0.3 + 0.2},
     {cos(deg(t))*(1-t/5/pi)*0.15 + 0.7},
     {3*t/(5*pi)});

	\addplot3[quiver={
			% deg'(t) !?
			u= cos(deg(t)) * (1-t/5/pi)*0.3 - sin(deg(t)) *0.3 /5/pi,
			v=-sin(deg(t)) * (1-t/5/pi)*0.15- cos(deg(t)) *0.15/5/pi,
			w=3/5/pi,
			scale arrows=1.5,
		},
		red,
		-stealth,
		variable=\t,
		domain=4:5*pi,samples=5,samples y=0]
    ({sin(deg(t))*(1-t/5/pi)*0.3 + 0.2},
     {cos(deg(t))*(1-t/5/pi)*0.15 + 0.7},
     {3*t/(5*pi)});
	\end{axis}
\end{tikzpicture}
\end{document}

