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

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

[复制链接]
$ u4 c8 @) e c# y

图片赏析

- H. K6 r( ]- C. }+ w
& d& |( z% g" u C+ [% g, m
: t9 f( ^( R; J& \

" H* V3 d+ a3 M5 j! N

前言

' X- }6 s" }, i/ A0 ~* n- O: I

, S2 ?, [, |# g3 N/ E5 h" ^3 D# g8 a

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

+ `) d; r9 X$ K% K9 N! h

数据来源:

3 N4 ^6 a% p# R1 N( o7 |: { - x7 c6 l! R3 }+ a

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

' V' f: ]. q7 R* I

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

! h0 q+ `! Q- v

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

1 Q i& Z# M/ R$ i( X+ Q

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

' B3 N& b* i4 M7 i

空间精度:0.25°

' }$ h7 J( j8 x1 @' I; J! Z

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

~6 e. s) R- d2 ?! e

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

@, t, ? \3 h8 m0 W0 v; K. G

源代码

, O+ A: V3 x8 Q5 w; D
%南海1998年12月31日某时的海面热通量数据及分布图6 c. p& i2 T/ {* |# ?" j) i8 M %% . ^9 J8 F) G, c! f( X- ^' ^& S %第一步:数据的展示# @4 `; @& q6 K3 J8 T7 Q tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 * u( ?" y2 i; m x filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名" x; u. c5 U. B' S+ s* q8 A: a abs_path=fullfile(Path,filename);%合并,绝对路径文件8 M9 p4 Y3 o b. | clearvars -except abs_path;%清除除了abs_path以外所有变量2 {- m" d5 e+ p: ~. f& R- m ncdisp(abs_path);%读取所选文件 6 R6 Q, U3 p8 u1 B6 e2 E% N whos;toc;! K4 f$ j" I8 Y7 m7 k { %% ( M8 l8 b6 I' V %第二步:数据读取! T; e5 C) t4 B tic;Lat_ini=ncread(abs_path,lat); & G T: \1 L a- s) d Lon_ini=ncread(abs_path,lon); 3 [! j# I. j% I3 k: B& h/ A9 h9 D Time_ini=ncread(abs_path,time);3 U8 _. V) {5 g5 @9 v Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); $ l1 w+ ~6 {* H1 E8 z0 E; P ? t Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); 4 v5 l C6 @( w* G: o toc;clear abs_path; ( x& t) b/ u$ J" v4 C %%: d2 ^. k0 P" O0 N; v+ k5 ~( D- R$ H %第三步:确定边界/截取数据2 X3 h- L3 B1 y' I %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 5 L( f7 I | A tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序# }6 F2 Y0 L4 j Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 6 Z, Y# i# H5 ~ l$ G- K5 j Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) * T: _) t; ?& a( w+ o Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)6 D- n( N' b3 d0 V6 t Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) 4 j2 O( ?4 ]5 Y3 Y0 E Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) K2 X5 A* w ?% A6 F1 G Lon=Lon_ini(Lon_start_No:Lon_end_No); . {6 Z' s2 [ b1 @% F Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的% A7 O) z; v' v) s2 J clear Lat_ini;clear Lon_ini;%回收内存 B- b$ |1 q( D1 m. | Lat=double(Lat);Lon=double(Lon);%双精度化3 u' R5 F: ~/ o4 R% ?+ d latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; # Y& ?% |& D1 B Time=9%输入时间,注意三小时的倍数 & o/ h9 u& k2 w- u3 @: o Time_No=Time/3+1;+ u' H5 {! v. K% Q. q %截取数据并降维度 3 a. n2 s0 X8 s- F5 K3 V6 M Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的* H1 X& `7 U* k. _0 C Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 0 l) [, d# ^' v clear Sp_Re;toc;%清除不再使用的变量' Q; Y, V1 K$ r: z6 O8 g %% . b/ `- c+ w; ?6 n7 n& e4 _ %第四步:绘图* p1 l3 L, n3 _* ]; |7 F tic;figure; + R' T& p% t7 u& g2 |8 o m_proj(mercator,lat,latlim,lon,lonlim); ' E0 E/ }4 y0 P% n8 ] [longrid,latgrid]=meshgrid(Lon,Lat);& Q8 s! I/ ~/ G \. G m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf: d. n/ v3 r2 m7 L tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f0 e! j0 V* H& ]. \$ U( F m_grid(box,fancy,tickdir,in);%网格化 6 ~7 ]! o% z8 W %brighten(.5);%亮化 + G( K0 B9 L/ X4 U Z R colormap(hsv); 2 V& {$ e; \; r: P2 @ h = colorbar(h);%色标 3 @8 J8 X* F8 m5 D9 @4 ` h.Label.String = W·m^{-2}" P" ~4 t7 s! n9 [! _ h.Location = eastoutside;%色标位置7 }) W" S; Q+ l* I' p# [ title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... ) C! |! H0 U* o$ @+ h: ]+ `# j3 Z- ?5 R FontName,黑体,fontsize,12,FontWeight,"bold") %标题 2 G; W! C& u& B4 O2 Z m; d xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); 5 H! j; P/ T' Y. g5 _ toc;& A0 T4 j, k. ~& o( M* w
& d5 |0 p& i# M7 [ _; }/ p

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

9 D* A3 A* |6 P: ]1 E
/ p* d) t: V1 ~3 [3 `
' i0 ?6 m" g# H0 X" L& |0 L+ e( }4 B ) x* x+ M. I% m" D# S" N& Q- E L0 g( }: ?5 O " {; P& X0 ?9 U0 [1 B 3 i! l( R0 r' e; c1 e) I
回复

举报 使用道具

相关帖子

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