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

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

[复制链接]
5 F( H# N4 g. M+ }+ k3 h( o

图片赏析

3 w" s$ [4 x! h+ c2 g& x" G
' O" E% V6 t5 u$ U( X2 u1 U
, t" u5 p( {4 M, L8 y" e( j$ O

+ d$ U! r3 o/ m- O( W! U

前言

+ Y+ O) ?; W( k) k" C

. A y" G6 e7 C( b9 p0 r' q

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

0 D' r$ _/ N6 \+ h/ p/ M. R

数据来源:

+ k( `# t6 c3 d% a. Q* M6 g ?5 P ; s( Z6 Q0 B+ R* F, ^$ a

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

9 G$ R/ h# z" }

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

- y& R. v& A* I' d& ]

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

; ]3 `: M; T" ], x

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

% W. c( j B1 p) H8 z6 t

空间精度:0.25°

. Z( Q6 w, m8 _9 [5 l9 k; ?

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

0 M/ e J: k, B% w* [+ b( e# O8 J

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

0 z0 `& d1 }/ S: ]

源代码

1 P% o; g0 U5 P
%南海1998年12月31日某时的海面热通量数据及分布图 + g" B( c/ p/ \& g( s3 w4 C* T %% 6 f- T9 f1 i* d f8 R- b; G) Q %第一步:数据的展示 ' D2 B, H& O, j8 K tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址4 d) }* I2 J9 H+ E) t4 I filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名! }! k; W5 B* A8 O; {. _) l0 T abs_path=fullfile(Path,filename);%合并,绝对路径文件 % L5 S5 `; L8 g7 U+ U2 x8 ], O clearvars -except abs_path;%清除除了abs_path以外所有变量 * g, b( z6 A0 k- O; S8 c ncdisp(abs_path);%读取所选文件8 N: Q, ?% o. H D7 C* H4 |6 |8 N whos;toc; L' ]0 i! s9 u# N %% 0 K; Y9 Y- s& H* a: k# m9 d v %第二步:数据读取' a& J' o/ Z3 o6 P6 @& I( Q tic;Lat_ini=ncread(abs_path,lat); , C& M8 Y5 S! h( b) s9 P, u Lon_ini=ncread(abs_path,lon);0 O9 [; W" z9 t( B( ~ Time_ini=ncread(abs_path,time);2 E: A/ X5 r" F1 [* l& s Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);8 n9 Z( i/ o2 Y: s ]$ K Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);0 z- ^3 O5 k9 y# a! H toc;clear abs_path;: D' N% U0 V" c4 t %%# L- W% _ Q; b9 l4 U" k %第三步:确定边界/截取数据, ]; q' C- K1 H" B" e9 ~% y7 A %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 2 A W! m/ q$ r7 K* s1 Z2 |5 d tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序+ H; O$ E1 i2 X d6 w Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 2 C" Z/ ?" B" w& ~/ A5 h# A5 Y Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) z0 |7 ~7 w( K9 A/ F Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)" a$ v( g( {2 W8 H/ G Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号): o4 D9 Z9 ~% W O9 k; v" M& V6 z1 O Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)' c/ A4 A: m7 q/ a2 t2 J5 m3 y Lon=Lon_ini(Lon_start_No:Lon_end_No); 6 ^6 }( K8 d5 J5 Y) q Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 , p; Y; T% \ k% Y clear Lat_ini;clear Lon_ini;%回收内存 7 v }) B' f6 m2 w3 }) G0 T Lat=double(Lat);Lon=double(Lon);%双精度化2 E7 g4 R! n1 l8 D1 `, K- j latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];! |+ Z' s( W( T" I/ q Time=9%输入时间,注意三小时的倍数 ) T5 j' H. f7 L, B+ X8 x Time_No=Time/3+1; [ X9 Y2 p' l) K %截取数据并降维度 0 ~6 ` {6 v }8 u( w- ` Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的* ^, Q6 ?+ @8 D1 d% E' Z; Q Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的( Y1 u2 d' u4 G clear Sp_Re;toc;%清除不再使用的变量+ {# L" |- G @( a1 S( P- u %%3 E1 m% u' b+ W8 W; g. [ %第四步:绘图 * }7 S s: b& a0 A tic;figure;* r4 w* {% L7 ^' E& v m_proj(mercator,lat,latlim,lon,lonlim);: _5 m4 \: X! z& f, ~8 E5 {3 x( G [longrid,latgrid]=meshgrid(Lon,Lat); 2 e+ a6 S( P6 G/ T# t; @ m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf/ {9 i2 s& F. d0 m tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f# O, E" U& _$ ^# B: x: J0 L: ~ m_grid(box,fancy,tickdir,in);%网格化 9 R* \. D5 Y- ~: h! u/ {5 b %brighten(.5);%亮化2 M6 @# Q" p8 v7 D colormap(hsv); ( ?- W# I% O }6 Z* |2 o& D h = colorbar(h);%色标/ |# c' i9 ~' z6 a* k' N ^0 w h.Label.String = W·m^{-2}( |- W3 d3 ~$ K# G h.Location = eastoutside;%色标位置 . i: A, X/ f8 ?8 j& J0 Y8 A title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... 8 y3 q2 w; p0 v4 h. d" g FontName,黑体,fontsize,12,FontWeight,"bold") %标题8 l k3 v) e$ j' { xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);' v0 @3 M E4 L0 j9 l toc; . m( Y$ E3 f" R
5 k" z/ ^# x, I _8 ?2 {5 L' f

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

+ q! j% f( @8 K) I% C5 t
6 t0 `2 {9 ~2 T, U. V7 O
: K: P. V' g3 Y0 E3 X , X+ B, T1 b7 a7 A) {6 ]7 p0 f, S- I3 g) C! a , j. S3 \2 h) F1 n9 ~ ' z. w+ ?% E5 z( w0 E
回复

举报 使用道具

相关帖子

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