matlab如何读取数据绘制风场

发布时间:2021-12-30 17:31:31 作者:小新
来源:亿速云 阅读:1228

小编给大家分享一下matlab如何读取数据绘制风场,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

一、matlab读取NCEP再分析数据并绘制风场

%该程序用于求水汽通量散度%注意!我们这里读到的u是四维矩阵,分别是lon*lat*level*time,clc;clear;close allf_hgt = 'ps_level_20170121_0130.nc';% ncdisp(f_hgt);time=ncread(f_hgt,'time');level=ncread(f_hgt,'level');lon=ncread(f_hgt,'longitude');lat=ncread(f_hgt,'latitude');%%%%%%时间转换time  = double(time);format = 'mm dd, yyyy HH:MM:SS.FFF AM';%转换格式dstr = datestr((datenum('1900-01-01') + time./24),format);%转换后时间字符串存储TM = datevec(dstr);%将时间字符数组转化为数值数组tidx=find(TM(:,2)==1 & TM(:,3)==28 & TM(:,4)==00);%筛选7月25日08时(世界时加8)ps_lev=find(level ==850);%%删选出850hPa高度start=[1,1,ps_lev,tidx];%所指定变量的每一维的开始读取的位置count=[41,31,1,1];%从start指定的开始位置算起,一共读取的每一维要素的数目strip=[1,1,1,1];%从start开始,每一维读取的数目为count时,每一维的读取的步长hgt=ncread(f_hgt,'z',start,count,strip);%读取温度值,单位Ku=ncread(f_hgt,'u',start,count,strip);%读取温度值,单位Kv=ncread(f_hgt,'v',start,count,strip);%读取温度值,单位K[X,Y]=meshgrid(lon,lat);figure(1)m_proj('Mercator','lat',[25,35],'lon',[100,115]);% m_grid('linestyle','none','tickdir','out','fontsize',12,'fontname','Times New Roman');m_grid('linestyle','none','box','fancy','fontsize',11,'tickdir','in','xtick',[100:3:115],'ytick',[25:2:35]);hold onm_windbarb(X',Y',u,v,'color','k')%m_coast('patch',[.9 .9 .9],'edgecolor','none');[C,h]=m_contour(X',Y',hgt/10 ,'color','k','LineWidth',1);%[5000:80:5900]%[1520:25:1680]%set(b,'ShowText','on','TextStep',get(b,'LevelStep'),'fontsize',12,'fontname','Times New Roman');   %在等高线上叠加数值(文后详情)clabel(C,h,'FontSize',13,'fontname','Times New Roman');ma=shaperead('F:/RMeteoInfo/data/map/bou2_4l.shp'); % m_line( [ma(:).X], [ma(:).Y],'color',[0.5,0.5,0.5]);%绘制范围内的地图m_line([ma(:).X],[ma(:).Y],'color','r');%绘制范围内的地图m_plot(105.5,29.43,'marker','^','MarkerSize',7,'color','k','MarkerFaceColor','k')

matlab如何读取数据绘制风场


二、matlab读取ERA5并绘制全球风场图

clc;clear;close allu0=ncread('202008muwind.nc','uas');    %读取其中一项v0=ncread('202008mvwind.nc','vas');time0=ncread('202008muwind.nc','time');lat0=ncread('202008muwind.nc','lat');lon0=ncread('202008muwind.nc','lon');      [lat,lon]=meshgrid(lat0,lon0);u=u0(:,:,2);v=v0(:,:,2);b=sqrt(u.^2+v.^2);figure(1);m_proj('Equidistant Cylindrical','long',[-180 180],'lat',[-90 90]);%矩形投影;取区域观察[lon1,lat1]=meshgrid([-180:2.5:179.75],[-90:2.5:90]);u2=u(1:10:end,1:10:end)';% u3=[u2,u2(:,end)];v2=v(1:gap:end,1:gap:end)';% v3=[v2,v2(:,end)];m_quiver(lon1,lat1,u2,v2,0);hold offm_coast('patch',[1 .85 .7]);m_grid('box','on','tickdir','out');

matlab如何读取数据绘制风场

m_contourf(lon,lat,b);%在mmap基础上的画shading interp;%使数据插值hold on;m_quiver(lon1,lat1,u2,v2,0);hold off;

matlab如何读取数据绘制风场

m_quiver(lon1,lat1,u2,v2,0);

matlab如何读取数据绘制风场

m_contourf(lon,lat,b,500,'linestyle','none')   %在mmap基础上的画shading interp;  %使数据插值

matlab如何读取数据绘制风场

看完了这篇文章,相信你对“matlab如何读取数据绘制风场”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. Python怎么绘制全球风场
  2. Leaflet如何实现风场效果

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

matlab

上一篇:MATLAB GUI如何实现串口通信何制作串口助手

下一篇:java API文件产生器有哪些功能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》