matlab如何读取数据绘制风场
小编给大家分享一下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读取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');
m_contourf(lon,lat,b);%在mmap基础上的画shading interp;%使数据插值hold on;m_quiver(lon1,lat1,u2,v2,0);hold off;
m_quiver(lon1,lat1,u2,v2,0);
m_contourf(lon,lat,b,500,'linestyle','none') %在mmap基础上的画shading interp; %使数据插值
看完了这篇文章,相信你对“matlab如何读取数据绘制风场”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
当前标题:matlab如何读取数据绘制风场
分享地址:http://ybzwz.com/article/ipiipg.html