Plotting Wind magnitude and direction

Hello, I need to plot hourly wind maps with magnitude as its background and direction arrows above it. I have 2 nc file which contains hourly data of wind magnitude i.e., u component and Wind direction i.e., v component for a month. how can I plot these based on different time interval. hereby i am attaching my both nc file named uwnd and vwnd. Please help me out. Thanks in advance. netcdf file

Respuestas (2)

KSSV
KSSV el 24 de Oct. de 2018
YOu can read the data from ncfile using ncread.
Let u, v be your wind matrices. And X, Y be your locations.
M = sqrt(u.^2+v.^2) ; % magnitude
figure
hold on
pcolor(X,Y,M) ;
shading interp
quiver(X,Y,u,v)

9 comentarios

shravani banerjee
shravani banerjee el 24 de Oct. de 2018
But how can I extract my u wind and v wind variables based on time and lat/long. I am mainly stuck in this issue. Thanks in advance.
KSSV
KSSV el 24 de Oct. de 2018
YOu can read all the variables at once..this will be a 3d matrix..from here extract the each time data and plot.
Or
Using ncread you can read variables in a loop of time. Read about ncread
shravani banerjee
shravani banerjee el 25 de Oct. de 2018
Can you give me a sample code to extract each time and plotting. It will be a great help as i am new to this software.
KSSV
KSSV el 25 de Oct. de 2018
No issues..attach your file...
shravani banerjee
shravani banerjee el 25 de Oct. de 2018
netcdf file It consist both the u wind and v wind file. Thanks in advance.
KSSV
KSSV el 26 de Oct. de 2018
ncfile1 = 'uwnd.nc';
ncfile2 = 'vwnd.nc';
lon = ncread(ncfile1,'longitude') ; nx = length(lon) ; dx = min(diff(lon)) ;
lat = ncread(ncfile1,'latitude') ; ny = length(lat) ; dy = min(diff(lat)) ;
[X,Y] = meshgrid(lon,lat) ;
t = ncread(ncfile1,'time') ; nt = length(t) ;
pivot = datenum('1900-01-01 00:00:0.0') ;
thedates = datetime(datestr((double(t)/24+pivot))) ;
for i = 1:nt
u = ncread(ncfile1,'u',[1,1,i],[nx,ny,1]) ;
v = ncread(ncfile2,'v',[1,1,i],[nx,ny,1]) ;
s = sqrt(u.^2+v.^2) ;
pcolor(X,Y,s') ;
hold on
quiver(X,Y,u',v',1,'r') ;
title(sprintf('%s',thedates(i)))
hold off
drawnow
end
shravani banerjee
shravani banerjee el 26 de Oct. de 2018
Thank you a lot! I'll try this code and get back to you.
shravani banerjee
shravani banerjee el 9 de Nov. de 2018
Editada: shravani banerjee el 9 de Nov. de 2018
is this command correct? %
thedates = datetime(datestr((double(t)/24+pivot))) ;
as i am getting an error in this line.
Error using date2time (line 55)
Not enough input arguments
KSSV
KSSV el 9 de Nov. de 2018
Editada: KSSV el 9 de Nov. de 2018
It is working fine in my version......YOu can comment that line and title line...and check.

Iniciar sesión para comentar.

Bijay Guha
Bijay Guha el 20 de En. de 2020

1 voto

This kind of wind vector plots are possible in MATLAB?? Kindly help!
The attached image shows the wind vector plots in the vertical axis. I need the help regarding the arrows only!
Thanks in Advance
Regards

Categorías

Más información sobre Graphics Object Properties en Centro de ayuda y File Exchange.

Preguntada:

el 24 de Oct. de 2018

Comentada:

el 20 de En. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by