Add arrows to surface plot to represent wind direction

10 visualizaciones (últimos 30 días)
mashtine
mashtine el 23 de Sept. de 2015
Comentada: mashtine el 24 de Sept. de 2015
Hi there,
I am seeing a lot of information about the quiverm function but I only have my wind direction data in degrees and not in the u and v components. Is there a simple way to project a matrix of wind direction values (360 degrees) onto a sufacem plot? Perhaps there is a way to add and arrow and align it based on the wind direction value? I do not want to add magnitude as well, just direction.
Many thanks,
  7 comentarios
mashtine
mashtine el 23 de Sept. de 2015
Hi Kirby,
I believe the NCL website is giving the correct data as it will produce the correct wind direction for the negative quadrants. I am also getting the expect wind direction (easterly winds). For instance,
atan2(sind(181),cosd(181))*r2d
ans =
-179
where I should not be getting a negative direction but degrees in 0 to 360. I believe it is accounting for matlab use of the atan2 function as this differs in some software
Kirby Fears
Kirby Fears el 23 de Sept. de 2015
-179 is the correct answer.
-179+360=181
The NCL website adds 180 to this, which would be
-179+180=1, which is incorrect.

Iniciar sesión para comentar.

Respuesta aceptada

Kirby Fears
Kirby Fears el 23 de Sept. de 2015
Editada: Kirby Fears el 23 de Sept. de 2015
I'm posting an example as described in my earlier comment.
Code below creates a 10x10 grid of arrows that are all pointing at 120 degrees.
x=repmat(1:10,10,1);
y=x';
deg=120; % all points have same direction
% if you have a degree array the same size as x,
% you can use cosd and sind on "deg" without
% using repmat after
u=repmat(cosd(deg),size(x));
v=repmat(sind(deg),size(x));
% you can multiply u and v by magnitude of required
quiver(x,y,u,v);
  5 comentarios
Thorsten
Thorsten el 24 de Sept. de 2015
Use
cosd(90 - deg)
sind(90 - deg)
mashtine
mashtine el 24 de Sept. de 2015
Thanks a lot Thorsten! As the I would like the arrows to point to where the wind is going to, I will use
cosd(270 - deg)
sind(270 - deg)
That seems to be working well for all degrees.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Vector Fields en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by