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

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

[复制链接]
6 J% ?0 q: j: r% g% e8 {

图片赏析

! ]1 Y! s* }# S) k- l
5 K8 q$ a" K" h4 j
1 X' s) |0 z4 u6 x c

) S( D4 _9 P0 |5 [) R, _7 b: f

前言

& u2 Y+ l1 C. K3 e

0 r5 Y6 |& x- C0 C. R* i8 b: h- q: v

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

+ E) G: t9 N) _8 ~7 {+ T

数据来源:

$ s! B) z5 N. M0 S' f + m' c! y, K3 k% V; H# U

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

9 d1 Y2 |" ~: x0 {2 o, x3 b6 M' Y3 x

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

2 W" K6 O: X2 x# p1 }2 \

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

; U' I' \9 y' b$ i. U# W# V" G$ e

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

& t- p2 w/ }4 v: L9 I+ K, L- p" T

空间精度:0.25°

0 ]! M1 l% e4 F- w

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

; s2 D* q* `: D' X

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

/ f* j* k* m$ _# ^- a" {& D9 z, w" L

源代码

! A8 H( F7 K& V5 L; J: v
%南海1998年12月31日某时的海面热通量数据及分布图& E1 E. n- G* N F4 | %%5 ^: v$ g- Z0 A& Y %第一步:数据的展示# p8 {4 ?+ p( e( T" w! S3 W" X tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址& _- P4 v: d3 m( w' f filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名; m) W D4 E, L$ |1 q& S4 Q abs_path=fullfile(Path,filename);%合并,绝对路径文件 , [8 f7 t" d$ V! _9 u( L clearvars -except abs_path;%清除除了abs_path以外所有变量5 r/ i2 b* i5 _5 G! n ncdisp(abs_path);%读取所选文件/ O$ Q' H( ]9 d* z whos;toc; ' ^( L0 w1 d4 k9 Z %% " j, i0 h0 O7 V+ y) F$ m, c %第二步:数据读取4 W2 ]( s7 U( y- O+ B" d6 l tic;Lat_ini=ncread(abs_path,lat); 5 `; e1 k, Y2 W# j5 O' ]! ` Lon_ini=ncread(abs_path,lon);1 N( r, L+ d- c* ` Time_ini=ncread(abs_path,time);6 Y# E$ E, ~* X+ { Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); 7 q. V( T$ ]) ]- i3 j& H9 ^ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); * t) Y, H5 m I1 f8 m9 X toc;clear abs_path;& U& `2 p) |4 x %% 1 f$ _9 }/ `" A6 q" D/ i- \# N6 u %第三步:确定边界/截取数据 0 z% Z# e6 x6 q7 r ] %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 1 P4 J4 ^/ H# u: ]- D tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序0 l- H: t. Q7 F) M Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 6 O8 T" V, I* ]1 y) E* D Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)* Z+ Q) ~" \5 X) y' ^ Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) 4 C7 w: N( o3 Q! f C Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) # B1 _+ P4 K7 d2 e# F. l7 h Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) ' p/ S( w* Y4 U' X7 ~" R2 R" A1 e Lon=Lon_ini(Lon_start_No:Lon_end_No);$ b" Y0 q! a Y4 B7 d: |* G Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 % T: ?# _. [9 W( X! k7 e clear Lat_ini;clear Lon_ini;%回收内存. ^5 o, ^2 ~6 g* f% B Lat=double(Lat);Lon=double(Lon);%双精度化" d# o2 Y4 B" ?& w$ H, r) M latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];7 M' ~# U8 M( e+ P2 K) n% ~5 H Time=9%输入时间,注意三小时的倍数$ G# }) M$ \. A Time_No=Time/3+1; # s h* W0 R9 H8 b* y9 F %截取数据并降维度 % C6 Z0 L- E! l0 [: h) n5 ?0 K Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的# m4 b& W7 d# u( d' H+ L Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的! l' Q) r5 y" [$ R. T clear Sp_Re;toc;%清除不再使用的变量 " W9 G6 v: O' X( d8 v, `& k3 {3 p %% % X) |( f% W" \1 K" z %第四步:绘图 9 v4 M9 o) W: l' { tic;figure; $ w6 Q% |% g$ |% r0 \1 w! R: A m_proj(mercator,lat,latlim,lon,lonlim); 3 j+ Q9 n6 |) X- U% p7 V' p" h A0 { [longrid,latgrid]=meshgrid(Lon,Lat);! C, h. X. o j6 [ m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf7 F7 W7 H3 r( G8 ^) A7 i. @ tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f& m1 T( Q- o* x5 ^* R3 N# ^7 Y1 _ m_grid(box,fancy,tickdir,in);%网格化; G( j( P" k( ~! R5 e %brighten(.5);%亮化- E2 K1 O& V F) P0 L5 G; z colormap(hsv); 9 v6 d: {5 H( ?( T/ m8 ]9 {2 } h = colorbar(h);%色标: ~! \& D: c& d( {: s h.Label.String = W·m^{-2} ) ` Z* M) B8 |! M2 Z$ u h.Location = eastoutside;%色标位置 o; M) S# [. c5 c# ]* I title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...) j; F" [2 X' K9 E8 v: f5 B7 K+ n# l. |9 M FontName,黑体,fontsize,12,FontWeight,"bold") %标题 5 O* F5 I! k% w5 p1 d! X3 [ xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); 6 A, o& c G; n5 k, @. D toc; ) k6 g/ U3 x, t
' y0 x6 K5 @/ m/ d& i& H

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

- s) C: W, N5 L/ h0 X9 z7 }* _5 H# H
/ H4 X3 A' x6 S
C4 |0 d4 _+ V g4 ] ! q7 |9 k. r5 y& u& ^+ D; D9 g- X2 t. N/ v6 ?+ z! |+ V: o6 p ( C5 V# e, T3 n6 |. P5 K ( M3 W& w8 r* R# t1 [) M- P8 @3 ]
回复

举报 使用道具

相关帖子

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