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

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

[复制链接]
" w: S. q: ^" N8 i$ C" q

图片赏析

+ L+ @& l3 f4 N( O
9 Q! N% q$ ~: K1 p% z
- R$ w9 I) B1 x! k

% g) S: L9 w0 s$ w, n( f

前言

* l$ Y$ f/ u# G3 d

/ Q2 m' q/ |4 z8 Y H

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

, }$ d, `0 K! t) ^) G: W! X; C

数据来源:

) ?& f/ f4 r% T8 M: L * W3 X8 K7 g p* `9 e

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

1 v& U, p0 L. P0 q- ?

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

9 Y3 g1 ~7 j% B+ j- o F

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

% U% q0 H/ e3 i* s \( n

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

, [; `/ Q& ~9 G* t3 r& a

空间精度:0.25°

2 J; a! Y' P1 z& U

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

8 H5 g! f2 w8 @) `2 E6 N" A

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

9 G0 E* w3 U- A8 y/ P

源代码

" U$ S. P& H+ r( t' f* N
%南海1998年12月31日某时的海面热通量数据及分布图 $ ~/ F9 N' W6 o' x8 K %% % Z. D% a! ~1 s' C/ y! @! _9 R %第一步:数据的展示 , h. R' {3 p& d tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 $ b" w& v6 S, q5 [. B; j filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 , P+ P" ]3 o- h% A! T6 M abs_path=fullfile(Path,filename);%合并,绝对路径文件7 b3 G7 J; `' U( Y2 R clearvars -except abs_path;%清除除了abs_path以外所有变量. I4 ?" p" h! Y ncdisp(abs_path);%读取所选文件 % N9 V* c; n* G: g" m# Z5 e' A whos;toc; ( l' V2 O. d9 g+ e4 ? %% 2 y" u4 ~ n6 q! X7 X# ]. { %第二步:数据读取 ) {" J2 t, j4 G2 w) M8 ] tic;Lat_ini=ncread(abs_path,lat); , D5 y/ }: c& p, Z% M6 F5 b% N+ O Lon_ini=ncread(abs_path,lon);/ b2 X" z& z m1 e3 I3 m Time_ini=ncread(abs_path,time); 4 L/ j c2 q# \) p2 z: r* b) l Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); 8 T6 L5 Y9 O1 H7 z& O Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); : ~+ |# M M& J+ e% Z$ ~5 k0 ~ toc;clear abs_path; . O# w5 i h3 \3 S, h %%& _, N* P- x' \% J5 X %第三步:确定边界/截取数据 : y1 d2 @7 n+ K' j- m* H2 @4 W8 a %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° . j1 r/ u, W4 @! c tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序" S! v. P4 N/ o, R$ `0 e5 ?: {; r. i Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度' Z5 C+ C7 l1 H$ \$ q$ e0 { Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)1 _! r* g: D) I. a* Z" s2 D: Q Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) 9 T/ ?7 ?2 O0 j5 d% r0 ?, @ Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)/ b$ ]( {/ q! V* N/ ~" b. o8 c Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)/ K1 [4 y: A9 M8 T# l& G" F5 j Lon=Lon_ini(Lon_start_No:Lon_end_No);! |6 Z' R } @1 A Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 0 `' T5 K6 ?7 u+ u: w% U& k! y clear Lat_ini;clear Lon_ini;%回收内存( ^1 q$ v# \# | Lat=double(Lat);Lon=double(Lon);%双精度化 9 z: z* ?2 g' T3 F1 B% E latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; / q) W: B! A; Q+ k6 n" s% H Time=9%输入时间,注意三小时的倍数 d; s5 M! y7 x Time_No=Time/3+1;; B' Z$ c, z3 c" B %截取数据并降维度- f& W |& K8 o, v7 D& C Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的' Y5 p5 }- w' G% J4 |9 H Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 9 ]) S) D& \, y' N1 p) x clear Sp_Re;toc;%清除不再使用的变量3 _' Z# \$ l/ |, V$ ^/ j %%6 { P h. N( n! O7 @1 [. q9 m %第四步:绘图 ' i+ P+ W4 @% Y tic;figure; ( o% r) A8 r k6 H/ }' A$ f m_proj(mercator,lat,latlim,lon,lonlim); ; I, b! M8 S/ q7 Y4 z [longrid,latgrid]=meshgrid(Lon,Lat); + `7 p4 |! W" @) I J. z- S m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf + n( i( K7 |7 ] O) w$ \ tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f " p: G: T6 M* w5 z' H3 D8 A/ E m_grid(box,fancy,tickdir,in);%网格化 . S( k3 N: j R4 U6 ]; }9 a6 Y %brighten(.5);%亮化 % M% D2 |1 p# ~, P% S) K colormap(hsv); 3 Q X# R+ a$ w! d# _. G# H: T; F7 _ h = colorbar(h);%色标2 r6 G3 n' o1 ?- | X2 K h.Label.String = W·m^{-2} ! X7 B" Y* a2 ~2 I3 y h.Location = eastoutside;%色标位置 + S( ^. ^! O) P( w N# E. l1 e$ k! ~ title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...; E: R5 t- g3 X, B& \, Z+ V FontName,黑体,fontsize,12,FontWeight,"bold") %标题, h6 o$ v% }! j* }+ u" o7 C7 E xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);1 ?5 F* Z8 F0 C/ N! E* t# m toc;) b+ r. D$ I% G- T4 C0 i
4 O& [7 D! E2 |

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

4 y$ E' k# n, m; S
6 x- g% s) R$ a7 _! o% g, I. T
1 T8 ]# W6 u" ? # g- ~$ P3 b# J' b 4 W. Z* S9 y7 [' K. M6 d$ a% Q2 G6 l& q( r ! @* S. F* N: [
回复

举报 使用道具

相关帖子

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