HYCOM数据画出二维流场图的方法
在HYCOM网页上获取到cn文件之后,可以通过这段代码生成二维流场图。
中国某岛周围海流图

代码部分:
%% 画流场图
lat = ncread('HYCOM.nc','lat');
lon = ncread('HYCOM.nc','lon');
[Lat,Lon]=meshgrid(lat,lon);
%读取u,v数据
u = ncread('HYCOM.nc','water_u');
v = ncread('HYCOM.nc','water_v');U = nanmean(squeeze(u(:,:,1,:)),3);
V = nanmean(squeeze(v(:,:,1,:)),3);
speed = sqrt(U.^2+V.^2);
Speed=speed(:);Lon=Lon(:);Lat=Lat(:);U=U(:);V=V(:);ind=find(Speed==0);
Speed(ind)=nan;Lon(ind)=nan;Lat(ind)=nan;U(ind)=nan;V(ind)=nan;Speed=ceil(Speed*100);
%保留U,V,Lon,Lat,Speed与(Speed中的非nan值相应位置)的数值
U=U(~isnan(Speed));V=V(~isnan(Speed));
Lon=Lon(~isnan(Speed));Lat=Lat(~isnan(Speed));
Speed=Speed(~isnan(Speed));
mm=flipud(hot(130));figure(2)
m_proj('Mercator','lon',[119 129],'lat',[23 33]);
%画地形水深图
[CS,CH]=m_etopo2('contourf',-7000:500:3000,'edgecolor','none');
colormap([ m_colmap('blues')]);shading interp;colorbar;
m_gshhs_i('color','k','linewidth',0.2,'linestyle','none');
m_gshhs_i('patch',[.5 .8 0],'edgecolor','none');
m_grid('box','none','xtick',6,'ytick',6,'frontsize',15);
hold on
%画流速矢量图
for j=1:5:length(Speed)if Speed(j)<=130m_quiver(Lon(j),Lat(j),U(j),V(j),0.5,'color',mm(Speed(j),:),...'maxheadsize',1,'linewidth',1)elsem_quiver(Lon(j),Lat(j),U(j),V(j),0.5,'color',mm(130,:),...'maxheadsize',1,'linewidth',1)end
end
title('某年月日流场分布图')
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
