下载的网址
http://www.hycom.org/dataserver/gofs-3pt1/analysis
%% 画盐度分布图
clear,clc
%读取经纬度
lat = ncread('文件名.nc','lat');
lon = ncread('文件名.nc','lon');
[Lat,Lon]=meshgrid(lat,lon);
%读取盐度
s1=ncread('文件名.nc','salinity');
s2=ncread('文件名.nc','salinity');
salinity=cat(4,s1,s2);
%去除深度,按时间维度对非nan数做平均
S = nanmean(squeeze(salinity(:,:,1,:)),3);
%画盐度分布图
figure(1)
m_proj('Mercator','lon',[119 129],'lat',[23 33]);
m_contourf(Lon,Lat,S,[25:0.25:32.6]);%画盐度等值线
colormap(jet);colorbar('fontsize',10);
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);
m_text(127,24,'salinity','color','w','fontsize',15);
title('6月份东海盐度分布图')
%% 画流场图
lat = ncread('文件名.nc','lat');
lon = ncread('文件名.nc','lon');
[Lat,Lon]=meshgrid(lat,lon);
%读取u,v数据
u = ncread('文件名.nc','water_u');
v = ncread('文件名.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)<=130
m_quiver(Lon(j),Lat(j),U(j),V(j),0.5,'color',mm(Speed(j),:),...
'maxheadsize',1,'linewidth',1)
else
m_quiver(Lon(j),Lat(j),U(j),V(j),0.5,'color',mm(130,:),...
'maxheadsize',1,'linewidth',1)
end
end
title('6月份东海流场分布图')