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

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

[复制链接]
8 a0 |: P( q! s8 h- z$ J; X3 G

图片赏析

' s' Q* G) }# H+ o4 E
) T, @+ Y( H& P! C3 w$ H6 u
m; X" K$ [; p, S. f1 o! w5 N

; E* d; X4 a5 x% ?2 x2 a- o

前言

- a& s4 [. V; w# F4 a7 b7 `$ f: E

& D9 {( i3 n) \( P2 s

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

+ g3 O2 K. e* Q3 P9 q

数据来源:

6 l- O! ? K+ L& B$ j6 d0 }2 u " G6 @) k1 ]' r/ _4 s6 }& f

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

: ?( Q7 I$ d/ Q; ^5 m; I# j

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

3 |0 U" C8 n7 ~% `: B

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

) V9 {5 G6 x, @( @7 G. P5 P, W0 U% Y- E

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

0 B; p$ }& O, O- r7 D R( z

空间精度:0.25°

?( q4 e" W! k

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

. x) V# Y# t& H4 V

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

) t1 c. @2 }1 M

源代码

4 r7 V$ l, ?- j8 j" G+ O% n6 Z
%南海1998年12月31日某时的海面热通量数据及分布图- Y8 }; C5 @! d: K# n& ~" e/ h4 J %%+ M: Z2 H# X! K: T# Q %第一步:数据的展示 . ]8 [4 D8 E; p: d* s+ d tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 $ b6 ~' `( D1 a0 m filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名2 P4 S: ^! U) Z abs_path=fullfile(Path,filename);%合并,绝对路径文件 6 S* a+ X+ v$ G9 E: u clearvars -except abs_path;%清除除了abs_path以外所有变量 0 K% R! y1 t- I) } ncdisp(abs_path);%读取所选文件% i) H" u3 T: P1 t0 F whos;toc;: [4 S% D4 y, O* k0 j7 } %% ; q! U7 z" B, i& M# E; u1 w( ?# b %第二步:数据读取 1 `$ C3 {% r# R0 @ tic;Lat_ini=ncread(abs_path,lat); 9 m# u$ x4 x) X" F) i( V Lon_ini=ncread(abs_path,lon); % F* M9 Y T7 L Time_ini=ncread(abs_path,time);# y1 a3 g1 u( i Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); & h: B7 p. M) R4 \( F/ y Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);5 m5 Y4 O; g1 F2 M7 i toc;clear abs_path; 5 k9 A. ~' E& P/ _9 { %% 4 T! d* T! Y9 F3 G %第三步:确定边界/截取数据, _3 c; n" D* x( q; b) e %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 4 K: a# ~/ W: g+ D. R8 n tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序7 i+ T! \1 d7 E( R, R Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 ! F j- S' [5 ~; e _5 d Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) , r6 r2 ?4 K* g Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号); f. a. h: ^, E8 C w$ D Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)8 w8 I9 D1 V$ S Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) . l/ r$ ^+ [) R- u$ O Lon=Lon_ini(Lon_start_No:Lon_end_No); ( a6 j( J/ L9 q; z# x Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的5 d. o/ ?, s) d- J/ s3 X clear Lat_ini;clear Lon_ini;%回收内存 V! Z& I: }. D" ? Lat=double(Lat);Lon=double(Lon);%双精度化 9 x; M4 A4 f; f) m# j- [ latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; # ^# l# G. D$ q- o7 ]/ [. M6 f Time=9%输入时间,注意三小时的倍数 0 I& f6 U: R6 i" O; T. T# N' L( J Time_No=Time/3+1;7 Z$ ?# Z/ d x( B \+ v, r %截取数据并降维度; F% A" Q0 U6 f; C1 d& F2 Z& ] Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 7 Z/ V' r; Z" a4 K Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的1 w" J5 o" v( @4 H* `" T" w clear Sp_Re;toc;%清除不再使用的变量 0 t" e9 `3 L9 k0 E %%/ T. {- |* h, Q* m! e, m7 s %第四步:绘图0 D3 _# t+ Q' { tic;figure; 6 G) T' [9 E {- o, U5 H m_proj(mercator,lat,latlim,lon,lonlim); ) E4 j9 {0 G+ T4 S [longrid,latgrid]=meshgrid(Lon,Lat); * B! Y3 z H+ C0 u+ @ m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf 5 x6 I8 K! i, @6 ~3 K tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f8 N, R/ V' |0 m0 }$ C m_grid(box,fancy,tickdir,in);%网格化8 R% y2 Y! } Y$ v %brighten(.5);%亮化 ( ~; d: L0 I/ q, Z colormap(hsv);5 H U) I& L1 t5 f p' d/ D& e h = colorbar(h);%色标" `! V8 q3 P- s h.Label.String = W·m^{-2}. N t2 a) U& q+ k- Q) g h.Location = eastoutside;%色标位置 ; ~+ J" ^- t9 t4 y/ N2 e" | title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...' G. g& k5 H5 R# Y5 M# L FontName,黑体,fontsize,12,FontWeight,"bold") %标题- i$ w B: Y. Q3 f. [9 U' a xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); & q: g+ d1 t9 d' t# I/ R5 \ toc;9 [* I8 z% y0 p0 A
6 ]" r0 i }2 _/ J. K3 r. a

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

- Q2 l. n( ]4 M
& f3 v* i: j& t) k
7 c, G/ O3 m3 ^, M8 c: s z % B9 v" H+ C0 u! d& {& I$ y 4 i& v3 G5 X/ K. A0 D4 ? ! q( w# a- l+ z; J! W! j. L " _% j- w6 l$ q, p+ ~
回复

举报 使用道具

相关帖子

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