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

[复制链接]
R- a: i. G% a5 S, I

图片赏析

) n6 p7 ]% ]( [3 y2 L$ a
5 ?0 ?+ t* W+ e' G1 D
! d) L1 U( n7 l, X7 t$ p! |' H

3 |! O5 h1 \. u2 N! J/ L6 K0 c& ?! e0 f

前言

( r& `4 F, G W( P/ z

- X6 z& G: ^, ?3 r3 N( `

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

! s8 {- c7 i* W: ]

数据来源:

k; E/ c8 ^9 \" g4 m, d 1 ~# l/ \0 k# x" M' {, y

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

1 t9 H3 H! l; N) ^) d' o6 c7 _

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

1 E: x+ {2 `- c9 D5 d3 v

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

& [+ P( _) m+ J! n0 Q: a# [

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

' ~: T- c6 _5 A" n# C% A

空间精度:0.25°

" y/ x4 m' O3 s; |0 P- B& K# V3 M4 P

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

7 v7 D" K9 s+ _0 y

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

) E) W3 F" Z4 e! M

源代码

: _0 t0 p1 m0 T3 W5 W2 z! m
%南海1998年12月31日某时的海面热通量数据及分布图& z8 @$ w8 @7 E" v %%0 ~2 G: K6 _0 L; D9 a7 Y %第一步:数据的展示( o$ Y0 @' K% ]$ Y3 O2 Y+ c( s tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 7 r! T0 C3 O* n1 w/ u4 _* S6 u# h filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名0 F6 W% D3 c, T3 B% A# v abs_path=fullfile(Path,filename);%合并,绝对路径文件; Y3 ]5 B% m, C: `/ j# a clearvars -except abs_path;%清除除了abs_path以外所有变量 : }$ X3 ], @2 v4 a; V" {/ T ncdisp(abs_path);%读取所选文件& ]' g/ @+ I5 P D whos;toc; . J3 N! a; @$ q& @0 y8 H( p* } %% / U8 F2 S( S l5 i1 I) ~1 ^ %第二步:数据读取 * f& B& x+ ^2 @- t tic;Lat_ini=ncread(abs_path,lat);8 R" |8 p% y& } n! q: r Lon_ini=ncread(abs_path,lon); , J* c6 V' r, J6 t3 h" m, M' t Time_ini=ncread(abs_path,time); 3 b, A' l7 {8 \ Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);( ~, L/ b! Y- ~; ^$ Y Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);3 r! _1 Z. k k/ M6 h: A7 F! ?# U toc;clear abs_path;+ b1 n* G, [5 ?8 J %%$ b: z% n. h6 e %第三步:确定边界/截取数据4 z' x; m. Q) I: s u5 \8 N1 m) j% Q %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 8 f f; r) t7 B# ^" X tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序4 ?5 Y$ w' G, @ Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度% J8 p9 r, U9 T: ]* N Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)( c( i2 [6 o& J1 J F4 L3 E Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)/ |) ^" t2 ~: V2 w9 C7 A- V Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) # c Z* f+ `/ s- i, l Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) 0 r& l7 w* E& I7 D. u Lon=Lon_ini(Lon_start_No:Lon_end_No); ; p, B# H) X& T. }' Z) q" _5 | Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 8 n4 e {( m Y) [2 U$ Q% e clear Lat_ini;clear Lon_ini;%回收内存 ; j* L) T! N( n; q+ k* T8 _+ X Lat=double(Lat);Lon=double(Lon);%双精度化 % T; H+ D, H/ K) I: M2 K. ` latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; % v* B9 I" ]) d+ q2 ^ Time=9%输入时间,注意三小时的倍数 ! c* T2 i" U+ y/ a9 ~+ b Time_No=Time/3+1;# E& X; P1 c; ?/ y$ A! \9 n %截取数据并降维度 1 @3 J, Y' Z3 W5 Z, O! O: a ?% Y Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的9 e$ o1 v, P# u0 z Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 6 J, A& p, v+ S' e5 L# p+ J3 _( e clear Sp_Re;toc;%清除不再使用的变量# f2 W' J, P# N4 a6 Z5 e ?# y3 h% J %%* p4 f3 n+ G5 j c: } %第四步:绘图 R. [9 o, z; R0 M7 B5 Z tic;figure;2 E7 w! l8 {" k: E+ }7 C2 o m_proj(mercator,lat,latlim,lon,lonlim);, l, t$ K1 K; g; M) V) x; c# L [longrid,latgrid]=meshgrid(Lon,Lat); 7 Y2 ?2 V7 ]9 R m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf - c5 x" q J- D tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f 5 i: c0 d. S- ^5 Q m_grid(box,fancy,tickdir,in);%网格化8 O8 P: R$ o* O1 [1 k %brighten(.5);%亮化% e5 M, V$ V" k, `/ G" S colormap(hsv);" L* Q! k \0 d5 `. [ h = colorbar(h);%色标* B# s/ O, l2 w8 U7 }7 G h.Label.String = W·m^{-2}1 o5 o2 X: @% F h.Location = eastoutside;%色标位置8 [& Y. f; s2 e* ?" p/ q! D title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... $ Z1 ?& V$ I4 {; g% \# o. q/ R FontName,黑体,fontsize,12,FontWeight,"bold") %标题 5 g5 c8 J3 ]) V* k xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); 3 V1 W* ~( T8 o/ x b4 _ toc;" c0 @/ w6 ~* L1 c S3 l- b
4 i, a I7 P# [

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

) I& W, J' l% P+ w$ G8 @. \
+ x7 P' X7 p" L8 W; P, q9 Q& c
5 Z0 o3 h7 k9 b* }! l0 p ! S5 d6 H2 F% c / z$ @/ _( t: \- a% u U6 V + x# h1 D0 c* N * g# \# W3 [; [6 A: N7 q$ {
回复

举报 使用道具

相关帖子

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