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

[复制链接]
# z! A% ?1 y8 m0 u* B

图片赏析

. k" E4 n/ B, C( P7 k
7 d0 `7 Y" y& @% K
5 M7 s b, j$ X# a( Q

j9 \4 e' q+ x6 J& s9 K

前言

2 |8 H1 t) s0 Y/ Q$ f! X

5 F( o+ W i" _& k

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

. G8 ^+ J- a& j& u% }* C+ }

数据来源:

1 d1 F! n0 @" H" X2 A5 n- r* n$ A ' B2 \ g7 p# b4 {

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

* i5 S; d6 F4 n x* z

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

* F' S6 T/ `; A: {4 y: f S' {+ n

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

: E. l3 q: }( @8 o s" O

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

- E) z& I1 l) x! V' R

空间精度:0.25°

0 F' j$ G% f4 d, Z/ W0 J

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

2 z4 M8 A/ Y3 I7 X1 h- n; `: I

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

" c: P ?+ O5 r1 K: t

源代码

0 B2 ^7 I9 |7 }
%南海1998年12月31日某时的海面热通量数据及分布图 $ f- p: e H; Z. ^0 ]" X& y %%6 L0 I" O' Y5 ?9 L1 a6 t %第一步:数据的展示 + e8 d, R( U& G tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 ( V- i# [% e" h, x filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名6 M3 H" H% }" K* h abs_path=fullfile(Path,filename);%合并,绝对路径文件 - H7 u: _% k* N Q5 S! ?2 U! W clearvars -except abs_path;%清除除了abs_path以外所有变量 & z9 e5 W! Y1 t( ^6 u- A" Z ncdisp(abs_path);%读取所选文件 " y7 z' Y# m4 j& I M whos;toc;+ N9 E& L& [9 K* u0 [ %% 0 w2 X2 v) ?+ |& ]6 s %第二步:数据读取 - K% o: ]1 ]8 ^* |' t tic;Lat_ini=ncread(abs_path,lat);/ H3 [9 f/ {* H/ D Lon_ini=ncread(abs_path,lon);" s, e9 D* X" X: [+ J Time_ini=ncread(abs_path,time); % ^' e8 O5 p) ~- w Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); + B% a _- ?7 {" a6 B: _ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); % e5 z" e8 n! D" e9 h9 O toc;clear abs_path;; i" [- V- H/ |5 ^7 b/ Y; z" t8 K; h %% " Z5 D; k' ^1 q% G' }& ? %第三步:确定边界/截取数据2 j! R8 M C/ ^( w& e- \, [ %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° " _0 _) V* I7 Y6 \ k tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 4 K B; U& D% V0 O- \- P8 o Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度) X' Q8 `4 F! y- u Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) " p7 e" C+ c( I& G8 L* [& T Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) ; J' |. H; j6 k Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) % ~* a) B: x! R; C! I Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)6 w/ S* n& y) D% {9 i9 g+ H Lon=Lon_ini(Lon_start_No:Lon_end_No);8 w, |7 |$ q; U; j7 b! F Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 5 E6 N0 V% I5 X& y clear Lat_ini;clear Lon_ini;%回收内存, J2 R) E- t2 ~: @" y* t Lat=double(Lat);Lon=double(Lon);%双精度化" j; N. j. g0 O6 ]" s: ]4 U- ~: n6 l latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; ( Q* A3 s3 P1 R% t2 j: K Time=9%输入时间,注意三小时的倍数 & r b/ @5 @, S Time_No=Time/3+1;: g# J9 ?; ?0 ?* F, Z %截取数据并降维度5 D" V* U, }$ @5 B+ e! i Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的( S% g& J' O7 V; g$ ~" | Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的0 y6 Y1 Z5 ~# ]$ N0 e" `% J) u clear Sp_Re;toc;%清除不再使用的变量1 w8 M l2 G2 D1 { %% U& R$ i- O5 k% ~& b9 C %第四步:绘图 2 ^4 n- `$ x+ r7 _! ^. ?; } tic;figure; " n3 Q: _0 R D) ?8 c' L m_proj(mercator,lat,latlim,lon,lonlim);% B5 C9 D; `/ U3 b, ]. i [longrid,latgrid]=meshgrid(Lon,Lat); 4 w5 }! B8 n% l6 I% J9 B' ?7 L m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf / l" j2 q" \4 O# b2 n tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f % X) t6 _- P! F; } m_grid(box,fancy,tickdir,in);%网格化 ) m! Z0 _/ h5 Q1 d: o %brighten(.5);%亮化 + |) c: _- @6 H% _' x/ h& } colormap(hsv); . [6 Q w$ O; E( r$ c7 r, n5 ^$ j" P h = colorbar(h);%色标# b! _" Z; f5 ` B& \8 ] h.Label.String = W·m^{-2} ) H" P) g& b5 y* _4 w2 o, R | h.Location = eastoutside;%色标位置" F" J0 b7 S8 C1 s( n% z title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... # u; {. y$ K) V9 C; h FontName,黑体,fontsize,12,FontWeight,"bold") %标题 / m/ M$ y4 p; r* L( ~& }" ]1 d6 } xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);3 A2 k4 _* ]0 }" b+ h2 x6 C9 N: T+ W toc; 5 X8 g4 ~- ~+ ^/ H
$ J5 S% S) b+ S! F" K

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

^ A. y- Q) z5 T: c" M6 z6 p
: B( D: Y& T& ?0 s/ H; [
0 L5 Z+ ~" u/ i5 v/ q8 R0 |2 M, ^- P0 L2 Z) t * m) B$ j8 v' O. v. j& V& }6 s8 }( U: w J8 a4 p 3 x& x' D* `9 s% N" q j
回复

举报 使用道具

相关帖子

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