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

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

[复制链接]
* h: K: z7 G' x* @ o

图片赏析

& ~) ^9 x7 H2 A4 m9 }3 K
; s6 M1 {3 z, |! ]0 e X" x" s
+ d, }1 Y) h9 C

# U4 K5 b+ [ F- v

前言

% B3 b/ ] M5 B5 i2 l5 x% q

5 v! s" E/ d7 g* U$ p4 m4 @

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

, Q! I% _: J6 } N4 [

数据来源:

# W1 ?! T+ @# T+ @% p @ 3 A5 G4 A" b6 i6 ?6 o& h

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

( @/ o" ~+ E# F: z

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

; {5 e8 O; M1 V

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

( Y" Q8 I* ~( k8 x4 a2 `

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

" U( u, c s7 b; x! F

空间精度:0.25°

+ l2 \; O3 A" R" n% C. X

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

* [' x- `. Z8 B, C

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

# q" [# d; w4 b$ d! \7 ^& E

源代码

. F0 [+ d. z" U: d3 `* q0 i
%南海1998年12月31日某时的海面热通量数据及分布图7 c, |% D! E1 A4 @ %% * A8 }& U" I4 e' C. Z- T8 W %第一步:数据的展示9 G7 a4 ^+ G' ?' J. P5 k. u2 E tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 % k9 o$ e) y& ]( ^6 o$ U filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 7 }) Q/ ?4 A. o( B0 G abs_path=fullfile(Path,filename);%合并,绝对路径文件 $ W ?1 e7 h# B* P2 \8 t9 c' A clearvars -except abs_path;%清除除了abs_path以外所有变量 & n8 o4 |# A$ D/ n6 g6 L8 i2 L" t6 E ncdisp(abs_path);%读取所选文件 0 H) h& ~ G- y/ M whos;toc;* ~; p1 K5 b( @3 i, |5 K %% 8 d! A2 @ Y/ W %第二步:数据读取 3 p5 J# L7 t/ C( m3 b& l2 _( L% a tic;Lat_ini=ncread(abs_path,lat); * Y" u) o& ~5 {% I Lon_ini=ncread(abs_path,lon); # Y/ n# `- A4 a, F) ]- I Time_ini=ncread(abs_path,time); 6 j7 ~! M3 z' }, M7 X Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);7 Q/ ~9 b% y; g/ d; G. v) X+ f2 ], V; t Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);! w. N1 ~8 \- I* V& e0 [! H toc;clear abs_path;# n4 }" W" i$ Q7 [6 y. {- A. f %% - q* q; f# i: r- j. ^- a! J0 Q %第三步:确定边界/截取数据 9 g4 v: y, {0 \& C" q$ J7 P$ _ %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° / s9 f" [& T. D tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序, U5 u! }+ P2 n& K Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 . o: b l: f' n8 y$ g Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) 2 K: V& Q8 `8 y) H4 i+ ^7 t. x Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)) Y! I0 H* \3 g, Y Z S9 b Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) & _" a! _* N/ b( N Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)0 I$ G% Z" r2 t3 B Lon=Lon_ini(Lon_start_No:Lon_end_No);2 x+ U' Q3 a o4 u5 w Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 / I% m$ q3 c3 O0 w6 K* W9 h6 k s clear Lat_ini;clear Lon_ini;%回收内存 & x/ I& M) O. K Lat=double(Lat);Lon=double(Lon);%双精度化 " }. f' c' b; [) ^! `8 x8 ~" P" S7 c latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];& G' D+ f2 \. Q5 |1 [ l; o Time=9%输入时间,注意三小时的倍数2 _, D3 U5 g# g; G Time_No=Time/3+1; - \1 i, N$ [$ G# ~, q" o% J %截取数据并降维度, T( U6 A2 v2 @* J Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的5 K5 J: Q) k- k( m Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 Q2 s- e; ?: T7 n2 f/ B# H clear Sp_Re;toc;%清除不再使用的变量: j. b! {* ~: H1 i# _$ K %% % K$ g0 n2 | o( ?7 \ %第四步:绘图8 A# \4 R1 c; K% l+ m2 {4 i tic;figure; , M% n. } H4 w$ D4 D; L y5 k# h' h m_proj(mercator,lat,latlim,lon,lonlim);$ w) l/ k! y! B7 T9 G' `$ n, S [longrid,latgrid]=meshgrid(Lon,Lat); 0 { T5 S9 s! V6 |) l/ _* H* ]9 O m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf) Z, H% }. ^5 @( `& ]& r tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f* Y6 x- Y+ e# M3 J! i m_grid(box,fancy,tickdir,in);%网格化1 j5 q t9 n# H1 m- V& P %brighten(.5);%亮化 7 Y0 r ^3 S6 g! }2 ` colormap(hsv);& j& o1 g/ k$ e2 L h = colorbar(h);%色标0 V3 J+ {* u5 U8 A0 H- r h.Label.String = W·m^{-2} 6 C1 ~3 V+ ]1 [ h.Location = eastoutside;%色标位置2 R3 m Z* c$ c% H; J title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... / X% h6 \- j# O, n6 t" k FontName,黑体,fontsize,12,FontWeight,"bold") %标题: [, p+ y. m0 g( u3 q xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);( {) Q2 c( x7 a# Y" N/ a toc; ! E! W" \$ [7 Q M- K
- a' t- A( n8 K$ J

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

' `2 d$ E4 |, n( w
& t* s& C/ Y3 s& {7 U( N# t
7 X/ O* E# ~; L8 E, j* a; f$ r& @7 Z/ I p# a( G) ]) d, x( A: P 4 d. u2 N. u* U- b! f 7 C% ?6 D# I4 X- G5 t& T
回复

举报 使用道具

相关帖子

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