收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

Matlab海洋绘图:海面热通量分布——以南海为例

[复制链接]
* E1 D! [: ]$ j+ o; H" s

图片赏析

# @3 y) O( H9 W9 ~1 {
+ i" B, e& V# K! F0 C& K
/ S- K' W( E" J; T" z& z' H, t

- S% f9 t0 K1 m* @2 |' Y

前言

7 `* d" }* D0 V3 I

+ M+ i0 E3 g- K9 i$ L

南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°

% N, w. ~$ ]5 {( ~9 g

数据来源:

; ^ H( }( S7 Z- c 9 H8 L3 Q ~3 F' R) z* M, A

数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学

) m, _ [ \1 g$ Z) h" H3 H! |

数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心

2 V4 D) s& z. p: t& b: ^' a( A

产品名称:Ocean Heat Fluxes海洋热通量

0 p: h$ s v+ C( |

时间精度:每日3-hourly记录

& D3 X! O" @! O6 n( f

空间精度:0.25°

: c7 w, N6 E% j% V. z% h

注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map

5 ^# Q/ A- W/ K7 Y# t

亦需调用gshhs高精度海岸线数据。

$ X- R$ q3 F7 Q5 p' n8 S1 g# l

源代码

. J# N' D7 F8 x5 F
%南海1998年12月31日某时的海面热通量数据及分布图' |# D9 y( G' Q( P) c %%# O' N/ G2 E# u %第一步:数据的展示 8 P0 }. t( X& E, {0 |) E tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 3 P. `2 \# @$ j" o filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名2 \ b# g0 L0 y; ^2 x# o abs_path=fullfile(Path,filename);%合并,绝对路径文件9 v7 V& b% s6 t* J. ^# j& p clearvars -except abs_path;%清除除了abs_path以外所有变量( Z$ m' u, r7 C; K& [% K2 u ncdisp(abs_path);%读取所选文件0 ?# Q% g4 T8 B# m, F# S. h whos;toc;, I* W2 ^/ f$ |$ u# e %% 3 z" }: A; |# ?7 K) s6 r %第二步:数据读取 # y7 [+ _) b* u tic;Lat_ini=ncread(abs_path,lat); : z7 L% e. |/ G/ f/ W4 @7 p7 l Lon_ini=ncread(abs_path,lon);' w8 {6 i/ q: \ Time_ini=ncread(abs_path,time); - T, A1 W3 A s Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); ' F% h2 m( s2 J/ U* B$ ]9 n Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); 1 J9 y( _) Y1 [ toc;clear abs_path;. I" g k3 E/ |7 [3 H. B %%; k f' o9 q5 m( I$ O* S! j %第三步:确定边界/截取数据 8 |5 q) E ^3 d, V; R5 c3 q %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°! T% E# V7 q' ` tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序3 g, L! l }! V Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度! q1 u$ Y9 `$ v- a; D) ?0 s Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) 9 P, a* c6 `: [ Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)' [/ _; T- }7 ? Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) & }% d3 l& X! p2 X7 w Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) ( m' E; Y0 k h! A2 S* n Lon=Lon_ini(Lon_start_No:Lon_end_No);- `7 J8 @2 X% q9 E& Z. K# a Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的3 m; M$ z, _, g+ X% B( [ clear Lat_ini;clear Lon_ini;%回收内存 0 s5 L4 g7 ^8 w. g, H6 { Lat=double(Lat);Lon=double(Lon);%双精度化+ Y! L: T" c* X4 m6 s latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];' g% D7 r4 m& L) a3 ^+ x Time=9%输入时间,注意三小时的倍数 5 p' a6 {3 J( @$ r1 E Time_No=Time/3+1; 4 ?; C; K8 l& m, l5 z %截取数据并降维度& }: q @9 z! X5 U2 m- _! ^ Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的/ M9 ~, \ R* ?/ E/ T6 m Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 % b3 \( Z \2 J! h clear Sp_Re;toc;%清除不再使用的变量 5 A. [( }" h1 V0 b/ E4 Q! z, M %% " W7 n) r0 q5 ?% s! `/ g0 W" A %第四步:绘图 ( q+ n6 O+ {$ L! x tic;figure;+ {* i+ x3 b' A( g! B1 m; V: e m_proj(mercator,lat,latlim,lon,lonlim); : n* X9 v( `) k# P" X [longrid,latgrid]=meshgrid(Lon,Lat); 2 T! |/ T( T+ S4 ^. O5 n& @ m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf * M# y) G: t9 X I6 Q tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f* q8 k* J5 ?( c m_grid(box,fancy,tickdir,in);%网格化 + u- k& P1 A. i# S! O %brighten(.5);%亮化 0 b# L) n" j; D1 M$ D colormap(hsv);& i4 L3 b4 o% P( I. r h = colorbar(h);%色标: P$ E( m. a7 n5 c% d h.Label.String = W·m^{-2}8 I& ]4 _6 r% ]2 j7 s! u h.Location = eastoutside;%色标位置+ c+ q/ ~# I1 T, k2 R title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...7 ~( ~* }5 h1 {( f" B0 c' X" r6 Q9 P FontName,黑体,fontsize,12,FontWeight,"bold") %标题 $ `* H1 A4 Y' Q xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); # J O" }7 \: m k6 o' I toc;# g, { e/ ?2 d1 X8 i' A" i
2 t+ n# Y! S1 {

附上另外俩残次品绘图结果,数据来源:IOCADS

" s7 W& d' u/ G7 k) N/ Q/ V
0 o ^1 c' a+ l: e
2 T3 |, J3 a& P8 F0 A ' @4 n( F1 v- c& d3 N) \9 t/ a/ f- Q2 b8 m! A & K1 J8 a+ D1 K. |/ m9 ^ # r6 o b" }) ^) L9 r6 {
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
恒厚
活跃在2026-3-28
快速回复 返回顶部 返回列表