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

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

[复制链接]
( s: \9 e, Z# g, n6 p: o

图片赏析

$ o4 P2 d% G" O: r0 h
; K& ^; t- x$ O& _
" S; X6 f$ X" g, R3 u0 W4 ~

" l/ @; Z" k$ A

前言

/ `; W% T6 G) V& z. @7 A, \

0 g* T9 w, z, G' B+ ]) Q

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

0 w4 E5 |+ O: x6 g

数据来源:

) _7 Q! ~' R5 E3 {. F L8 Y, ^! { ( ^2 x' z `* g7 `

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

! O1 a: |; {$ h o& M

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

' y* M( n0 D8 R2 O& T8 l. w+ Z

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

' p6 p9 p; I* {& ^8 ~3 R6 ?* @1 v7 S

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

; Q* ?! W% E0 k' _) r' b

空间精度:0.25°

/ n; W2 _$ S' R) G

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

1 r& H3 D% x/ g) q

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

) o. m) c, b5 Q

源代码

- w8 o) J0 t/ w. S2 q6 ^- F* Z
%南海1998年12月31日某时的海面热通量数据及分布图 " y3 y5 f' C/ r* U1 i( I( @ %%2 r1 y. e) `% w$ ?1 r, \* y %第一步:数据的展示% A, Q- g& ?& l+ z$ i ` D tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 , W3 p# P. s x filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名$ A- T8 v' x5 d! ]: ?/ K abs_path=fullfile(Path,filename);%合并,绝对路径文件" q* e/ E' i9 p/ x8 x clearvars -except abs_path;%清除除了abs_path以外所有变量 ) c+ ^& Z% ^7 t3 E ncdisp(abs_path);%读取所选文件4 f1 q2 Z" v" n* s1 c whos;toc;& ], i+ M5 }! D9 H- L4 a %% ) p, v$ I7 w; z/ \9 ~3 A %第二步:数据读取2 a4 M4 d+ J. l* a tic;Lat_ini=ncread(abs_path,lat); ' r, Y0 j% N1 P: S3 {+ c7 M% ^. D Lon_ini=ncread(abs_path,lon); % N3 [0 y. `# K' \* ^/ E, `: ? Time_ini=ncread(abs_path,time);4 t! ?' d6 ~7 _6 Q- ~! S( L3 d0 W3 ] Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);) c/ o1 T) M2 a7 m+ Y Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); # X2 Z$ {2 X$ V. a9 s6 I6 Q, q toc;clear abs_path; 3 @ J9 a* u; \6 i$ C %% ) e' h4 K+ f( J8 k8 n" A %第三步:确定边界/截取数据 " l5 e: k& m7 |1 X! Y+ H %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°$ X4 N8 g v: U7 u tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序( b. s" R! o: C6 X3 Y3 ? Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 ! X4 x1 \- G) b" [9 B; N1 O Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) ; `: G& G) {, x( O Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) * S8 A6 c/ {* i/ A1 G/ y/ Z Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)+ B( e& l% n) j* Y& c7 V/ Y Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)/ Y* t) y$ ~1 M2 {: [( Z$ ~ Lon=Lon_ini(Lon_start_No:Lon_end_No); 3 E1 P8 b$ t' @7 f% P c7 S Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 5 j7 a& S/ O: u% x" f8 G/ X clear Lat_ini;clear Lon_ini;%回收内存/ @% F* ]1 p6 k Lat=double(Lat);Lon=double(Lon);%双精度化; g) a' z/ q' D0 H# C! w7 C9 J4 j: n latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];# m1 p5 ]: V6 j8 A9 R3 E) B8 y Time=9%输入时间,注意三小时的倍数 9 B6 m/ |' k6 Z J9 D Time_No=Time/3+1;' E4 k5 ?) t- } %截取数据并降维度 / q7 |3 r2 y7 s8 T" ` ? Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 / g3 \: g. D) g" c- N2 c& Z# m Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的$ D/ C4 a) N" m0 {, v clear Sp_Re;toc;%清除不再使用的变量) E5 ], x, N& _4 F8 h5 U3 G# f) m %% ! A* ?9 q/ W7 b/ |- S0 ` %第四步:绘图 Z7 v" D+ S2 ~ tic;figure; 7 i% \$ _, w* K' v$ x4 c) R m_proj(mercator,lat,latlim,lon,lonlim); * f Z. U5 H+ n [longrid,latgrid]=meshgrid(Lon,Lat); # f0 V% _6 F' R3 p& `, K$ N m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf 5 v( p6 e6 @+ f8 F/ ] tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f; {" D! d; C( V4 T1 `# e6 ^ m_grid(box,fancy,tickdir,in);%网格化 . b6 F- K" a4 q4 E8 z# N: x- j %brighten(.5);%亮化 ) |: m1 x+ j' q; x1 F8 C) { colormap(hsv); : }5 ?) C, C, V, R1 Y h = colorbar(h);%色标 . ^( I# M) \5 a5 ?, \+ C7 s h.Label.String = W·m^{-2}) g+ n* r' [8 Y1 u h.Location = eastoutside;%色标位置 ' f4 L0 }6 W# q5 _8 d: P; A& g& i M, a title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... * U1 z9 l+ f0 g: k FontName,黑体,fontsize,12,FontWeight,"bold") %标题6 i, I+ y. Y, \4 n xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); ' H6 I [( s: Q: |9 R5 T0 Q toc; ) v0 Q% q) k& D& n9 Y
. F- @2 [* R' U8 ~+ e. |

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

8 A% g+ C0 F# x+ y5 Y
+ k% C' P2 t: R$ w+ R
) F% [: u( a4 Q! D8 B& K & L+ q- D B4 |) w. O7 ? u L/ z5 L # ^# _; U! r6 Z, C: J/ R/ X/ w9 J" L 7 e- ]: H& A' W
回复

举报 使用道具

相关帖子

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