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

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

[复制链接]
, o G( E) V( `7 O

图片赏析

$ h0 B( I4 i% k3 O& g0 A7 P. U1 z
# i8 i5 S1 N+ e6 h6 k% d
; \- x1 |* ^% u/ G1 X! ^- U0 i/ B7 L

& ?. T3 Y/ o7 y' x% n

前言

* |5 j1 A7 e% O7 ?

5 S/ P- D/ D* n9 m, G, \

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

5 @1 W( H3 V8 s4 K" G3 j$ N# K

数据来源:

& k0 w6 |, y; L/ d , q2 k) q3 F" L

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

$ Q) q/ \4 b X4 F$ J. V' k

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

9 z/ q1 p" T, {# a6 r* i) J

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

& s: `' Y; z2 o7 |) W

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

" S# c8 x% P- _4 V+ P

空间精度:0.25°

5 a# H8 u; ~& F% P0 }# A

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

* M6 N( ]' Q( ]- \% b

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

0 s @0 I7 ~. @: U- [" W

源代码

/ J# D I+ k4 U! L: f/ D$ B1 ~# \
%南海1998年12月31日某时的海面热通量数据及分布图6 n) \+ q E$ R- W$ z% k) k E/ y %% + H- R6 D a8 v" p %第一步:数据的展示' l, I3 x9 l) z D( K0 d tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 . `$ Y8 ~. r; z& F filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名! O; @* S: r% B" ?+ l6 O& j abs_path=fullfile(Path,filename);%合并,绝对路径文件% q0 Y) P8 d. o) h5 @: x3 k0 V clearvars -except abs_path;%清除除了abs_path以外所有变量% c7 v8 @! a8 u2 \% k ncdisp(abs_path);%读取所选文件. I2 i, M& B/ R0 ]' S# l" B; a whos;toc; 8 v, M/ b2 z; P1 x %% ! b, x! z& s( t- Z( F* X7 Q& X %第二步:数据读取 $ \/ B5 x& N5 G% A& u7 G tic;Lat_ini=ncread(abs_path,lat);9 I6 v2 V0 s5 b" Z' |% j$ W Lon_ini=ncread(abs_path,lon);) i! g+ R/ }( y: L Time_ini=ncread(abs_path,time); $ `& y2 O. h" N1 d Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); ! d/ ]2 L' t7 c/ K i2 V* @3 U Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); 2 p+ i# I; S: f6 } toc;clear abs_path; * f- H+ d( |: m %% # n( z8 A8 {1 E* q& F: r# P %第三步:确定边界/截取数据 7 l/ b/ ?- j( l* R/ L/ J %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 9 e6 i- Q" v) L g' f, o" X tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 . |4 w7 }% V) I# C Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度) s, ]; B& z' o. i Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)& S) F, w$ v- A, X9 H/ f& h6 z8 ~6 p5 Z Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) ( p! U! i" W. L' r: Y* R8 J: ? Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)( h4 r1 c, l8 z8 T Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)7 b, ?3 P6 y) h& X" Y8 d Lon=Lon_ini(Lon_start_No:Lon_end_No); 1 B, L; Z# u( g- W" V0 [ R0 p Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 0 ]. j# M3 b9 b/ O clear Lat_ini;clear Lon_ini;%回收内存 ( C5 d9 }; n9 K; k' ~! v/ K" I Lat=double(Lat);Lon=double(Lon);%双精度化1 v F* z9 V$ ?; z, w latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];+ [; B& t F* C+ V% }9 E Time=9%输入时间,注意三小时的倍数 9 E8 T: W. R8 [9 F6 K: p. C' M Time_No=Time/3+1;0 F D$ {" `9 S9 r: J; H( m %截取数据并降维度 }' Z3 Z5 K9 x Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 9 ]( E. Y; X1 b( B Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 y K3 p/ i$ m clear Sp_Re;toc;%清除不再使用的变量' G9 ?$ r( `4 T- r+ M4 D %% * b4 P$ L. I1 o0 I- |) [5 }8 n %第四步:绘图! C& x N9 s+ f, p tic;figure; 1 \$ _) V+ c# f G/ U# R. h m_proj(mercator,lat,latlim,lon,lonlim);9 `! v9 F8 J& I [longrid,latgrid]=meshgrid(Lon,Lat);9 M. j5 ~7 e1 x2 S& c) H H8 d m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf% _" Q7 ^& Q! A, H' t tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f( t; L0 M: {: ?3 K m_grid(box,fancy,tickdir,in);%网格化 7 G0 S2 E5 [$ ^4 a) _: a) d+ I8 A& q %brighten(.5);%亮化 " @/ j% V8 u5 J4 O, ^! e2 q colormap(hsv);2 o) p7 e- Q1 i" Q h = colorbar(h);%色标 % F/ s- F, b/ _4 ~) a2 \ h.Label.String = W·m^{-2}$ i" A/ J: L% W8 i! m h.Location = eastoutside;%色标位置5 C3 O/ t; C% @3 H4 r8 \ title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...7 X1 X# x4 _! R; B3 d FontName,黑体,fontsize,12,FontWeight,"bold") %标题! w, F3 p5 M( v xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);) z' `8 k9 L) j" A% c9 g3 Q toc; 0 A9 n' L* I# Z
* n7 r* V ~& a/ ]

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

1 V& B& {+ u# D+ K
) Q* V) q2 i3 G& } k0 {
% _2 C6 |3 }' [ 6 m6 S: I1 n2 H: Z! W& v( T 9 Z3 Z$ M2 g6 h& h; p6 A9 E& P+ b* F2 D4 \; [1 P & \ y% g# l. b; k0 f
回复

举报 使用道具

相关帖子

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