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

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

[复制链接]
' q# u7 i9 r% G: s, F5 {

图片赏析

. u7 a. P+ Q# @3 e: u, Z, Y" g
8 p$ E1 R2 |( y( w. l; ?
1 f V- M! x' l M* F

. G( f' U8 E9 h0 s1 ]2 k

前言

& L2 y4 A/ w/ l, c0 j5 u. ^$ |

0 D! R6 s* k( K8 I8 f& l* k

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

. z/ q+ R( E' e5 F6 b

数据来源:

1 k8 ^) A7 m; P) G; H, S, Y n/ t9 f+ A# n8 A& P" O

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

7 r" {0 p( y/ j6 V0 ~9 t

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

. s8 x' E* ]+ J _

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

. R; s; f0 i0 J+ E* I1 L

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

3 k$ @3 N: W% C2 H

空间精度:0.25°

; e+ I. o( Y, j) S4 E) ]

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

9 ~, p+ D) G0 x) E% ~ O

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

2 @. y1 Z2 R# C$ ^! H) y5 _9 f

源代码

7 n6 m) j* Q4 t& H% p6 ]4 t- H. f1 {7 h
%南海1998年12月31日某时的海面热通量数据及分布图/ [% e! g' D& [$ F) ~ %%+ g; a" I5 D8 E+ x% g7 c %第一步:数据的展示' b; `) U% w0 s0 y tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 ! Z# _4 _7 B' y5 z( z5 m filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名/ F8 f- p, {/ s- Q3 \1 W' u; \2 e abs_path=fullfile(Path,filename);%合并,绝对路径文件! z7 Y1 W7 V. F4 Q clearvars -except abs_path;%清除除了abs_path以外所有变量 ' m$ j( F6 S8 t& o1 s" Z ncdisp(abs_path);%读取所选文件 5 { h* [2 D3 n; D: R whos;toc;& r( f; [, G6 R; x6 H %% * W: H; Z& I# N8 D: C5 y %第二步:数据读取2 @* V% s- e2 O* l5 Y# p! i, Q tic;Lat_ini=ncread(abs_path,lat); {& P2 O; t2 E# ] Lon_ini=ncread(abs_path,lon);& Y+ Q$ M% B( _ Time_ini=ncread(abs_path,time); 7 y7 d' c# q" X: G% a, c: B8 N Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); ) }0 [! }' F$ Y1 O0 ^- [ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);$ ^" R' u8 m6 F6 g toc;clear abs_path;5 |6 p+ @/ T2 H5 l- [3 h0 B7 B2 H4 J %% 0 v( P6 m9 P5 L% v9 \, G; [ %第三步:确定边界/截取数据% H2 J |- E! ?, s( @& ~: [ %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 3 m' p3 m+ o7 N9 T4 s, ^& J tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序- E( u7 R3 X+ { v Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 ! g0 `0 f- K% o4 ?7 q" U8 z Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)8 x* q# l( E$ | p: ^5 f* Z/ Q Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)4 x/ X. f$ c: n0 z/ m5 [ x' c Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) / R; E. g# q$ [* R7 L1 i6 U B Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号): ~, s. y* y, T; S8 K Lon=Lon_ini(Lon_start_No:Lon_end_No);0 u: \7 N& n; l( [9 G* C Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 , L( p0 G3 O) a- I! k, K- p clear Lat_ini;clear Lon_ini;%回收内存 . k" U7 y( d) {+ {7 U: S' Q n6 y Lat=double(Lat);Lon=double(Lon);%双精度化$ p" w% x( p4 Y* i% r+ }& c/ i latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];9 _( Y; |5 M7 V; G5 K2 V Time=9%输入时间,注意三小时的倍数 " C, F; }" y% x Time_No=Time/3+1;3 A% @% ]1 z+ t6 m! o %截取数据并降维度 $ a- t: e9 K c0 e/ ~9 G' V Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 & R* V a3 j7 d( r' G$ ^# _ Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 7 S- g; h5 L n; g3 _0 R3 S7 g clear Sp_Re;toc;%清除不再使用的变量( v9 o C0 Q1 H. O g R; k %%5 \# R& ]0 f4 p8 P* u( O %第四步:绘图 ; K; n, ~& S d5 P tic;figure;5 i2 _7 M" N# R% o, g6 u m_proj(mercator,lat,latlim,lon,lonlim); & _% O! e, N- ?- M! G' f( f [longrid,latgrid]=meshgrid(Lon,Lat); n- ~. B3 v Y5 x1 A m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf; g6 r9 w$ t# Y. n- x" S3 J c tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f ' C. G0 s9 M; y, a' [! |: e m_grid(box,fancy,tickdir,in);%网格化 0 o7 V7 h; [( p0 K. p% j %brighten(.5);%亮化0 U8 E# z+ J6 x- N colormap(hsv); / S# ^6 D$ t7 U/ L h = colorbar(h);%色标 7 V; C4 y1 z: O4 Z1 y: Z h.Label.String = W·m^{-2}/ |+ n, x/ D, ^ h.Location = eastoutside;%色标位置1 U- X: J" {+ z# A" U6 E title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... , U) f5 o! P2 a; ?7 v" [ FontName,黑体,fontsize,12,FontWeight,"bold") %标题 6 c3 d" @, J/ G) ]4 W% B+ r( _! T xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);* @7 y# G% p" ]7 L) I toc; + M7 Q" t" r. j- K
: q$ m7 Y+ w. ^+ k+ p% \, }

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

2 X. A: i x; s5 z
H k* i+ c X/ ]
% Q' y' o# X- Q W" D 8 m4 Z& i' _3 G) z/ G6 o2 N4 t8 ~, |/ N& J ; X, N* B, K' \7 A* |; h 1 h" _- R" R" R7 {3 a5 V
回复

举报 使用道具

相关帖子

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