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

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

[复制链接]
, i0 z. h3 S% M% e

图片赏析

* F" O) R, U6 {2 ]
- I' i( ` t7 V) u8 W. q: R
2 R+ p. e% U' B

0 s4 ?2 P* _8 f

前言

9 C. X8 L& x% W( o( W$ x

/ x2 h% m. t* O0 o( v# h

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

% D+ K( \6 u9 E3 G# [% [2 Y

数据来源:

9 V. W4 m* n* R# g& ]/ \2 { + @# R# \# g2 m3 P+ O

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

3 E8 {# o1 ~# w& B9 @6 t

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

! s: M/ {/ w" Y2 r( s6 s6 t

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

# Q% ]+ v! H$ @! n. _7 q3 G1 F# J

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

1 \% T& S$ O$ c5 b% D

空间精度:0.25°

5 e2 M# n; i& e+ U/ X

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

' f& f* f3 U: N3 A7 Q' A! Y

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

1 u0 h% D2 [& J3 I D7 @. {/ W

源代码

- m$ [" A) J+ h% h2 D7 Q
%南海1998年12月31日某时的海面热通量数据及分布图8 F, a5 _. w+ |" A% Z %% : R" Z8 b$ W) ~5 o+ R %第一步:数据的展示 . U8 T8 Z% G8 q0 }, E tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址9 a4 u5 O/ n( D6 P0 ?5 c' w filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名! h& N7 K8 F1 ?( o abs_path=fullfile(Path,filename);%合并,绝对路径文件* i7 F `. e, [9 n clearvars -except abs_path;%清除除了abs_path以外所有变量 7 W6 _* B: `' R, V2 | ncdisp(abs_path);%读取所选文件3 y; ]9 e S0 M2 B7 s, c whos;toc;& \9 p; s( I3 R1 Z! w" W- g %% q1 z+ S8 b7 J: \7 m %第二步:数据读取2 a" G3 e5 s i- K tic;Lat_ini=ncread(abs_path,lat);. i* O( t2 z& ` K Lon_ini=ncread(abs_path,lon);( W, p8 ^/ ^' T) R' C* @ Time_ini=ncread(abs_path,time); # F& \# V' z% x Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); B$ N/ z% @: R* c1 q& f, J. L Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); {3 r3 ? _; h' m6 C$ c3 B toc;clear abs_path;' i$ X( w. e4 a; Y, ^ %%" w( x1 W) y1 t* D. X %第三步:确定边界/截取数据1 C: A# {( v5 X; O' z. L* | %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 9 U ]( J. A! U3 T3 |' }2 O- O% m tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 + ~8 Z$ X$ e: j1 E0 h* P* M6 r Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度' H+ i; R, u6 ~) J. L) W! i Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) 6 i8 w' |8 _; A: P" Y Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) & @8 G) [5 o6 X) Z% p0 Q Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) ! W, P& [0 q8 k( s Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)/ Y" y: ^! I+ g1 v8 z* o; A Lon=Lon_ini(Lon_start_No:Lon_end_No); ! B& z- H, O9 c: S: `9 a7 p* | Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 + U2 U" f, j9 `$ l, d& X3 A clear Lat_ini;clear Lon_ini;%回收内存 # K- \* J% i% x$ j6 u; s+ n5 u+ z' A Lat=double(Lat);Lon=double(Lon);%双精度化5 X7 r" U2 E. V: R5 w1 H latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];6 S& e) C' R. x) c, ]7 L# o Time=9%输入时间,注意三小时的倍数1 I& W r5 c: w4 N! ] Time_No=Time/3+1; - I @/ l n+ c- x2 J3 F %截取数据并降维度" ?# w; K$ o' [. m& H8 p% k- f Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的7 d. Z i1 Y& |$ H6 `( n4 j Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 - }+ m& w/ E- ^. P, |3 v! o clear Sp_Re;toc;%清除不再使用的变量; X2 P$ _' h' r- y0 p$ ]3 p3 v %%- Y4 q, F/ t* L9 b %第四步:绘图$ @5 w3 c: w* V* a x* J/ s0 I tic;figure;! p* Z8 ~1 m- O! o m_proj(mercator,lat,latlim,lon,lonlim); 9 N7 x6 o+ a$ A. O+ I [longrid,latgrid]=meshgrid(Lon,Lat); X# _/ Q% G$ Q$ o( U m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf 8 K6 X# O5 Y) [( }4 U; v tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f " C1 Y0 }' U& h+ b6 i m_grid(box,fancy,tickdir,in);%网格化2 W# b1 d e8 A1 C3 Y %brighten(.5);%亮化( F. h0 G7 `/ ~- W8 a x' j colormap(hsv);6 ]: M" w% B" t1 r& r" P h = colorbar(h);%色标% \" G( \' n! ~$ T h.Label.String = W·m^{-2}( R+ |4 z. F+ D7 A* g5 f9 ?) t h.Location = eastoutside;%色标位置! d8 ]* u% A$ W. U/ O! Y title([1998年12月31日,num2str(Time),:00,南海海面感热通量],.... T, B0 {/ R* j3 ` FontName,黑体,fontsize,12,FontWeight,"bold") %标题 + ?( | s3 _% b, T: \4 C+ P xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);4 d( B/ }( w0 N& e8 c& F& x4 A' ~ toc;6 U+ a0 d9 S; U; A0 D ~' m0 u, }
0 p4 ]2 h6 U5 J6 Y6 {) c+ o

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

: [& ~: ~' q3 \$ U3 N' k. Y4 O: k
& U: z: S0 g5 h: X* p, p; o
6 j: ]/ O2 c. P: L ' K, i& s0 R: E3 D 0 Q- W; J& g1 k3 q) @0 n% { ' t, y- Y# u1 v4 j: x$ L" {/ ^& |4 o3 h
回复

举报 使用道具

相关帖子

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