我心中的那片蔚蓝,用matlab绘制南海海面热通量分布图

图片展示

在这里插入图片描述
在这里插入图片描述

前言

南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
数据来源:
National Climatic Data Center
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心
产品名称:Ocean Heat Fluxes海洋热通量
时间精度:每日3-hourly记录
空间精度:0.25°
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;亦需调用gshhs高精度海岸线数据。

源代码

%南海1998年12月31日某时的海面热通量数据及分布图
%%
%第一步:数据的展示
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
abs_path=fullfile(Path,filename);%合并,绝对路径文件
clearvars -except abs_path;%清除除了abs_path以外所有变量
ncdisp(abs_path);%读取所选文件
whos;toc;
%% 
%第二步:数据读取
tic;Lat_ini=ncread(abs_path,'lat');
Lon_ini=ncread(abs_path,'lon');
Time_ini=ncread(abs_path,'time');
Lflx_ini=ncread(abs_path,'surface_upward_latent_heat_flux');
Sflx_ini=ncread(abs_path,'surface_upward_sensible_heat_flux');
toc;clear abs_path;
%%
%第三步:确定边界/截取数据
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)
Lon=Lon_ini(Lon_start_No:Lon_end_No);
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
clear Lat_ini;clear Lon_ini;%回收内存
Lat=double(Lat);Lon=double(Lon);%双精度化
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
Time=9%输入时间,注意三小时的倍数
Time_No=Time/3+1;
%截取数据并降维度
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
clear Sp_Re;toc;%清除不再使用的变量
%%
%第四步:绘图
tic;figure;
%width=2000;%宽度,像素数
%height=1000;%高度
% left=50;%距屏幕左下角水平距离
% bottem=50;%距屏幕左下角垂直距离
% set(gcf,'position',[left,bottem,width,height]);
m_proj('mercator','lat',latlim,'lon',lonlim);
[longrid,latgrid]=meshgrid(Lon,Lat);
m_pcolor(longrid,latgrid,Sflx'); %pcolor或contourf
tic;m_gshhs_f('patch','k');toc;%添加海岸线:c<l<h<f
m_grid('box','fancy','tickdir','in');%网格化
%brighten(.5);%亮化
colormap(hsv);
h = colorbar('h');%色标
h.Label.String = 'W·m^{-2}'
h.Location = 'eastoutside';%色标位置
title(['1998年12月31日',num2str(Time),':00','南海海面感热通量'],...
    'FontName','黑体','fontsize',12,'FontWeight',"bold") %标题
xlabel('Longitude');ylabel('Latitude') ;set(gca,'fontsize',9);
toc;
  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若为雄才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值