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

[复制链接]
( F, P- W) z+ l+ `9 M9 |

图片赏析

3 z0 `$ G' \/ l3 A
4 t: R) D$ o) L. X/ g0 m
# g& c' y9 n; L v* O

0 h" s' G3 s& G

前言

9 d. {& o% ?" e* S" i- v

7 b: H( I! C6 F$ W$ B: U! E8 P

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

3 \5 Z; O6 {9 h! i# @" E; v. ?5 g

数据来源:

0 x1 u. H8 l* C/ u2 _8 D( q& H @3 a) B$ f+ r% p) X+ T2 j% U# ~

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

) B9 T* g) `; S

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

. z1 ]* _* C) ^2 J- t/ S0 Q

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

" v* O6 Q5 i: w5 l+ R" w

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

O7 e3 H/ O* ~, _ }+ A

空间精度:0.25°

" X0 E0 U- ^0 J/ o# {; W

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

! S) s) ^( z/ I3 ~4 g

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

% z% {: K9 [+ @1 n( S

源代码

6 V; w/ W" i8 t5 m. d- q9 J
%南海1998年12月31日某时的海面热通量数据及分布图 3 T" \, X; R! T- i6 G/ X# Y %% ( b2 g* f" F' U8 a7 p/ i' }' f %第一步:数据的展示: N* B' s E- K( c tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址. m+ }$ @ `, s" E! _2 [' g+ ~ filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名. q q: M3 t8 {, @" D% e% T) V; J abs_path=fullfile(Path,filename);%合并,绝对路径文件 # [% R7 T+ ~7 y5 K! Z) Q S' g$ @ clearvars -except abs_path;%清除除了abs_path以外所有变量# \8 x/ g- M3 k* N! Z ncdisp(abs_path);%读取所选文件: O6 u) N- d# t) p; B whos;toc; K8 U+ V# j1 z% ^! \ %% 7 @2 \2 K) X9 R, n% v %第二步:数据读取 1 W5 z2 f7 X& a' t tic;Lat_ini=ncread(abs_path,lat);( g; O1 o% V, [" e5 L4 E) h' a Lon_ini=ncread(abs_path,lon); 3 r7 e! W/ x# K$ i5 X0 K Time_ini=ncread(abs_path,time); 9 S; ]" |# @: f Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);/ T( D- k& |# g3 r2 `% L) g Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);; c* I# h; O" `4 O$ C0 Y% e toc;clear abs_path; 5 r: o. R% z1 b: p %%' v0 ^- b& J/ f! [, j %第三步:确定边界/截取数据8 D# H1 C- [0 L: j( |( x! I! ? %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°4 q, e2 t$ V3 R+ @& k$ ?" A tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 t6 A, k4 K6 s Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度+ L/ j: Y0 X- C! ^ Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号). h7 Y. ~& a/ V3 \8 J; Q& L Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)7 ~$ m, N% ~; y0 ?# k5 ?8 ~ Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)( o* M$ `. D \# g" x# N5 y8 B Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)% v2 ?+ W7 ~6 V7 V# i Lon=Lon_ini(Lon_start_No:Lon_end_No); w* e' N! a8 J# f" } Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 ( B y8 o, }5 ]! s( y% ^ clear Lat_ini;clear Lon_ini;%回收内存, D1 ]# c, f# a* Z4 ] Lat=double(Lat);Lon=double(Lon);%双精度化 ( l- P8 ?) ]7 u latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];7 i6 s- m+ }5 R2 p7 B Time=9%输入时间,注意三小时的倍数+ j5 |* m% u- c9 ~/ V ] Time_No=Time/3+1; 9 N% ^# ]9 G" I b %截取数据并降维度* ]5 e: r; W9 P- }# f Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 / J- U8 H3 ]: i" C, I/ R Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 * k( d! `! n# |" _+ s clear Sp_Re;toc;%清除不再使用的变量 % L. Y$ ~7 \2 S, J6 u* t. K; @4 w %% . r; ~. f9 I4 Z% M, t, r& G %第四步:绘图4 v# J( l) i5 b# k7 g tic;figure; M! H/ D' B* ~ m_proj(mercator,lat,latlim,lon,lonlim); & r8 D$ a2 g; i$ P" E [longrid,latgrid]=meshgrid(Lon,Lat); 5 r+ k1 D7 `, k m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf % r3 y6 H( V& [* |/ a3 | tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f 8 w; _" |9 X6 p- a1 D m_grid(box,fancy,tickdir,in);%网格化. b% C1 t& {- [8 P2 ]' e9 t9 Z7 c %brighten(.5);%亮化8 w) q8 l6 m" N9 x# t colormap(hsv); . H. p4 f7 C1 L- h8 a h = colorbar(h);%色标 ! N; s* Y) D2 `9 n h.Label.String = W·m^{-2}( r& ?7 n5 e# A @8 O1 m" G9 w4 g h.Location = eastoutside;%色标位置 ( Y' f- e8 D0 X title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...4 v$ Q3 H4 E. K FontName,黑体,fontsize,12,FontWeight,"bold") %标题, Z5 F2 a8 M! J1 ` xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);' i: E9 \( I5 G2 ~/ k, } toc; 7 k9 ]' ~$ u; g
, i" m% u D/ N% r% t$ V& Z) a

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

3 b* a3 r5 e* Z) v# [, S
" n) E9 I, O$ k) S* z5 ]
( i. s4 Q7 [5 ~' i+ O( t' Y" S. q1 N- {/ X. T/ u / Q% x# b2 d; L5 X 6 W& ]& ]: i! O w/ e# s" L9 L, K. l2 \$ u
回复

举报 使用道具

相关帖子

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