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

Matlab海洋绘图:海面热通量分布——以南海为例 - 海洋地质热流测量

[复制链接]
) E/ {' D* l3 k% M: B2 N$ z

图片赏析

7 {) X& M) g& k* F
7 s) Q" P! C6 v* Z% ]" ^
: l( }* B* }, p+ u7 B

0 u" q7 O5 X/ ]6 j' y

前言

. y6 |( ?" Z, e8 v8 u

& n) z+ @/ Y$ o/ d- R* w+ J

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

" {4 B. ^. U+ ~# w8 W

数据来源:

) h* ?& F. N& X0 q+ h6 r4 ?6 h0 i 8 T) h8 p& D7 e

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

" _/ b" q2 u3 U) {- H9 ]& a

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

" z! g. Y% ?; R! x/ [8 P

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

: }, Q: `: x: a( k) n

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

* g! c3 \' s& w

空间精度:0.25°

7 d0 [: D, v/ G" {. a9 V, ~

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

3 b6 Z# U( d+ Q) g3 i

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

' {+ {- T5 c4 E3 X* G

源代码

4 p; j; T4 W* L2 D, W4 ]
%南海1998年12月31日某时的海面热通量数据及分布图2 h* K" P1 |- K8 l/ i0 L/ i* t0 N5 h %%4 M3 O6 Y1 z( Z3 u) A" t %第一步:数据的展示 $ i3 }$ L3 h/ U; U2 i# y tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址3 Z* V0 V) b5 A* x9 W! _ filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 ) S; V0 b" I5 w2 s l# C abs_path=fullfile(Path,filename);%合并,绝对路径文件# V! J" G% E; f' q( j+ n7 l3 O clearvars -except abs_path;%清除除了abs_path以外所有变量# m. _6 _9 _4 F* y9 U0 r5 S ncdisp(abs_path);%读取所选文件$ k7 v# ?8 O1 b5 t9 } whos;toc;0 F8 I. B8 J; m; @- M- l %% & [/ _1 _5 |3 @/ g %第二步:数据读取+ Y! [/ D A0 d2 d" T& P tic;Lat_ini=ncread(abs_path,lat);9 F6 n+ y, f- n& r2 i$ n% f Lon_ini=ncread(abs_path,lon);1 t, o) _5 y$ Z0 D8 o5 g/ c9 E Time_ini=ncread(abs_path,time); & Y& e% h6 f G* \5 Y: V) C Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); , J+ t4 y$ T# K# R2 |) _ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); ( J( b0 J, Z) Y, Z toc;clear abs_path;1 Q; I3 S: D3 i1 \9 z %% 5 w( O: G# ]/ v+ L5 Y %第三步:确定边界/截取数据- Q. O/ k r8 Z! C' Q$ d %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 4 o9 i0 y7 ~* K z% t: u9 e- |2 K: n tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序, M3 `7 Y' g: W3 n2 s! _ Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度$ R/ i+ M' D- q6 L. n0 m# h+ W% z Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号); u, }3 q' _: @. @2 j8 M0 Q Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号). U) s# j d% j" e' @' | Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) 7 x) b1 r. m# e! `. o3 P Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)8 J5 W( @, J! M6 R* x Lon=Lon_ini(Lon_start_No:Lon_end_No); R5 w1 [: i0 r3 f Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的- {# e7 P o: [$ d clear Lat_ini;clear Lon_ini;%回收内存 - v7 G3 b/ O% E" |- R Lat=double(Lat);Lon=double(Lon);%双精度化2 c2 A4 n# q j7 t7 ? latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; $ c w' m4 `% e Time=9%输入时间,注意三小时的倍数6 c# m6 O$ G0 k+ Z. b9 z! v$ q Time_No=Time/3+1;( p7 L1 G8 o$ ~! }$ M: a( A5 U %截取数据并降维度 . Q/ @2 ?" T( |; R Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的* ~6 \& i" W0 w5 P Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 : y1 x& R8 a8 E, M( Y0 G' q clear Sp_Re;toc;%清除不再使用的变量/ t; v, R! Y; ?+ v6 }) i9 W %% % ~4 Q7 D3 y! i' g' Z) Z3 U7 T %第四步:绘图 4 x. D9 N# q r6 {' w tic;figure; " x6 h$ ^9 R5 d$ l% U- L m_proj(mercator,lat,latlim,lon,lonlim);9 ~) _& t( S: o# W. b [longrid,latgrid]=meshgrid(Lon,Lat);5 O$ g8 \- n5 x! O m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf* s2 e) N# Y; c& x0 X) u tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f( |( l( V. X$ q$ s m_grid(box,fancy,tickdir,in);%网格化 y* v0 J% V0 r3 m* _( d3 l8 K& o %brighten(.5);%亮化 ' ]+ N9 Q' M! e' K0 L colormap(hsv);$ w) \: O& O T7 n h = colorbar(h);%色标3 c3 P1 U8 ~7 ?- l+ d2 W h.Label.String = W·m^{-2}3 E: g7 p4 ~/ M; e6 K. X h.Location = eastoutside;%色标位置 2 c3 p8 H7 P+ o0 T- G title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... # X/ c( l3 V+ A$ l FontName,黑体,fontsize,12,FontWeight,"bold") %标题 " f2 B( U& @0 k: q, O5 | xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); . B- B) h; Y: u( C; `9 b toc;3 ^' [& L6 ?/ K1 l
4 h8 a- _0 w. |9 R% j: r# S1 w2 s# K7 e

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

# g& ?2 B" q+ \8 C2 ?0 o
- n& ?' Q, d) V
; `& @ O3 B! v% l3 z- N ( t( }$ F6 w& L/ S. P) _/ ^; A7 @ c1 F ; Q0 W! p% S( E+ \! b U& u v h; W8 g
回复

举报 使用道具

相关帖子

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