MATLAB 绘制夏季海表流场
作者:第八星系-向显均
邮箱:13660328708@163.com
close all;
clear;
clc;
% 数据导入并赋NaN值
load("D:\matlab2022\toolbox\uvssh.mat");
ssh(ssh<-99999)=NaN;
% 设置底图 miller 投影, 确定经纬度范围
m_proj('miller', 'lon',[105 140], 'lat',[0 25]);
% 绘制岸线图,RGB进行灰色填充,去除陆地轮廓
m_coast('patch', [0.75 0.75 0.75], 'edgecolor','none');
hold on
%% 数据处理
% 删除u矩阵中第一层所有行、所有列中的长度为 1 的维度
u1 = squeeze(u(:,:,1))';
% 删除v矩阵中第一层所有行、所有列中的长度为 1 的维度
v1 = squeeze(v(:,:,1))';
% 稀疏化处理
llon = lon(1:4:end);
llat = lat(1:4:end);
lu1 = u1(1:4:end, 1:4:end);
lv1 = v1(1:4:end, 1:4:end);
[llon1,llat1] = meshgrid(llon, llat);
%% 绘制海表高度等值图
[c, h] = m_contourf(lon, lat, ssh', 500);
set(h, 'linestyle', 'none');
colormap(m_colmap('divering'));
%% 绘制二维矢量图
q = m_quiver(llon1, llat1, lu1, lv1, 1, 'k');
hold on
axis image
hold on
%% 图像细节处理
% 调整colorbar
cb = colorbar;
cb.Label.String = 'SLA [m]';
set(cb,'Location','southoutside', 'FontName','Times New Roman');
hold on
% 添加文本
str1 = 'Summer';
text(-0.28, 0.42, str1, 'fontsize',8, 'FontName','Times New Roman', 'FontWeight','bold');
% 边框轮廓样式为黑白间隔
m_grid('box','fancy');
%% 图像展示和保存
print('sla_velocity_scs_wp.png','-dpng','-r150');