Matlab 画全球风场图并计算散度风和旋度风

clear all;close all;clc
%%
fname = 'wind_uv300.nc';
lat   = ncread(fname, 'lat');
lon   = ncread(fname, 'lon');
uwind = ncread(fname, 'U');
vwind = ncread(fname, 'V');
uwind = uwind(:,:,2);
vwind = vwind(:,:,2);
%
[lat2d, lon2d] = meshgrid(lat,lon);

% plot
figure(1)
set( gcf , 'color' ,'w');
m_proj('miller','lat',[-85, 85],'lon',[-180, 180]);
m_coast('patch',[.7 .7 .7],'edgecolor','none');
m_grid('box','on','linestyle','none');

hold on
% draw data
s0 = 4;
m_quiver( lon2d(1:4:end,1:4:end) , lat2d(1:4:end,1:4:end), ...
          uwind(1:4:end,1:4:end)/s0, vwind(1:4:end,1:4:end)/s0,0,'color','k');%0是拉伸程度
% referenec vector
m_quiver(-60,20, 120/s0,0,0,'color','b');%东经110度,北纬30度的水平箭头,30m/s作为参考,z=0

title( 'Global wind' , 'fontsize' , 18 , 'fontweight' , 'bold' );
%%   计算散度风
[lat2d, lon2d] = meshgrid(double(lat),double(lon));

% grid distance
dd0 = 2*pi*6371000/360;  % distance for one Latitude (unit: meter)
xx = lon2d*dd0.*cosd( lat2d );
yy = lat2d*dd0;
% calculate divergence
div = divergence( xx', yy', uwind', vwind');%要求第二维变化

figure(2)
set( gcf , 'color' ,'w');
m_proj('miller','lat',[-87, 87],'lon',[-180, 180]);
m_contourf(lon2d,lat2d,div',20);
m_coast('patch',[.7 .7 .7]);
m_grid('box','on','linestyle','none');
colormap('jet');colorbar
caxis([-1*10^-4 1*10^-4]);
title('散度风分布图')
%%   计算旋度风
[lat2d, lon2d] = meshgrid(double(lat),double(lon));

% grid distance
dd0 = 2*pi*6371000/360;  % distance for one Latitude (unit: meter)
xx = lon2d*dd0.*cosd( lat2d );
yy = lat2d*dd0;
% calculate rotation
vor = curl(xx', yy', uwind', vwind');

figure(3)
set( gcf , 'color' ,'w');
m_proj('miller','lat',[-87, 87],'lon',[-180, 180]);
m_contourf(lon2d,lat2d,vor',20);
m_coast('patch',[.7 .7 .7]);
m_grid('box','on','linestyle','none');
colormap('jet');colorbar
caxis([-1*10^-4 1*10^-4]);
title('旋度风分布图')




  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要用MATLAB剖面风场,可以按照以下步骤进行: 1. 准备数据:需要获取一组剖面的风场数据,包括不同高度上的速和向。可以从气象台、卫星数据或模拟模型中获取这些数据。 2. 导入数据:使用MATLAB的数据导入功能,将风场数据导入MATLAB工作环境。可以使用readtable函数导入以表格形式存储的数据,或使用load函数导入已保存为MAT文件的数据。 3. 数据处理:根据需要对数据进行处理,确保数据格式正确且一致。可以使用MATLAB的数据处理函数,如reshape和interp2,进行插值、重塑、平滑等操作。 4. :使用MATLAB的绘函数,如quiver和contourf,将处理后的风场数据绘制成剖面风场。quiver函数可以绘制矢量箭头表示速和向,contourf函数可以根据颜色填充速等级。 5. 添加坐标轴和标签:使用MATLAB的绘函数修改坐标轴范围、添加刻度、标签、例等,使形更具可读性和美观性。 6. 输出结果:使用MATLAB的输出函数,如saveas和print,将剖面风场保存为指定格式(如PNG、JPEG、PDF)或打印出来。 需要注意的是,为了提高绘效果,可以根据实际需要选择更专业的绘工具包,如MATLAB自带的mapping toolbox或以下开源工具箱:M_Map、NCtools、NCTOOLBOX等。 以上是用MATLAB剖面风场的大致步骤,具体的实现方法根据数据的格式和要求而定,可根据需要进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值