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

Matlab海洋绘图:海面热通量分布——以南海为例 - 海洋地质热流测量

[复制链接]
/ x. ~7 m5 V" V' B# U! H$ m, O7 U

图片赏析

' U1 ^# J* T0 P. ]0 d4 c
4 U6 w, T+ k+ H; a, H
. _; O. j* a# o3 O' x0 J

" W9 t: i; x/ h1 {; o/ H, B

前言

( H U: |5 Q5 U$ d$ C2 l

6 m5 X. o. r' A

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

- E8 g# v9 m# R* H% O

数据来源:

2 B! `/ a) T. A% ]/ C2 h, C! A0 O - K Z) }+ |5 g. C% ]2 `% X& _, {! \

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

: c9 S0 m/ E/ g2 ~# G( p

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

7 S/ z. u/ E; U# ^

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

% L) r0 [4 ~1 I) N% _" b0 {

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

9 p4 l @; C# D* @

空间精度:0.25°

2 v/ H( f% u, Q, a$ u& B/ ~+ v3 i2 k

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

+ M+ { i& L& `! c$ k

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

0 W9 h9 e" B+ C$ J

源代码

/ t8 ]+ C4 z+ t: J
%南海1998年12月31日某时的海面热通量数据及分布图9 Z, o8 u4 q% L1 @* }1 ^ %% # \3 R. ]4 y7 i1 {7 k4 W0 P %第一步:数据的展示. d' `4 G7 A |$ [) V tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址: w5 a( R' _3 Z) @* J* _# d filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名9 a( |3 }; K0 b I6 b2 S abs_path=fullfile(Path,filename);%合并,绝对路径文件7 j& u5 {$ l: ` clearvars -except abs_path;%清除除了abs_path以外所有变量 ' H$ N. V D/ e6 w' J1 b- m ncdisp(abs_path);%读取所选文件4 i' X: z3 w$ @ whos;toc;* C) J+ T. l8 d: ^% _9 h% ^3 ? %% . u( p. H) \8 U4 a5 c! {: ~$ \) @ %第二步:数据读取# Q( w1 g6 x! f tic;Lat_ini=ncread(abs_path,lat); ]" O* v! @) p1 H/ K Lon_ini=ncread(abs_path,lon);! V0 b9 k1 M2 W5 ^7 ~% G3 i! B Time_ini=ncread(abs_path,time);2 N, i% R% a2 T) e U Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); 9 L' R* c& B% M/ p# Q1 R2 R Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);# l- k' ~/ K, [( e1 i/ x' ]$ T! r toc;clear abs_path;8 s# B; x4 x( p7 |2 i %% * w0 m2 g0 h# G %第三步:确定边界/截取数据; N( v7 E: T( m2 \8 _1 O# w %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° & ]6 H" I6 j0 z+ V; d6 S tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 3 Z; o- U) G# j% G Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 ( w& w, d0 M4 m Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) : [, s4 U- @8 @* n* ? Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) ; `+ r+ @# B2 l; j1 [ Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) ( W7 J3 Q: y3 n0 p Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) : T" b; }* R* d8 t) c% Q3 Q Lon=Lon_ini(Lon_start_No:Lon_end_No); ! h* P* }# c2 e# u% N/ R Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 . y3 n1 g) N/ {& ?4 r clear Lat_ini;clear Lon_ini;%回收内存/ B, l- R+ r3 y9 a! G: ] V Lat=double(Lat);Lon=double(Lon);%双精度化7 G0 [* F5 o+ e: e latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];6 h$ `3 M2 p6 Z Time=9%输入时间,注意三小时的倍数9 m9 H5 l9 |& ]8 P& t* o* `% ` Time_No=Time/3+1; . S- [! I5 m. N5 c- _- a %截取数据并降维度& f6 a" g$ Q# K( o$ D Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 8 }$ D$ _5 z+ S; d Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 " l) F7 Z* h( a, d0 ]. t) G& r clear Sp_Re;toc;%清除不再使用的变量 * I2 n8 P/ `! L p* v %%0 P! B1 M5 g, }, o% u) f9 i. X %第四步:绘图" x# H) k& m8 _& `. |8 d tic;figure;# l/ _& t6 A9 M4 R m_proj(mercator,lat,latlim,lon,lonlim); $ p d- s5 k! O. ?/ p [longrid,latgrid]=meshgrid(Lon,Lat); t( F" C7 ^5 \5 w$ H6 b1 i& ] m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf 9 t* D( j: I- u9 ` tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f - w- E0 ]/ [' m1 H3 ]; P% _5 p% U m_grid(box,fancy,tickdir,in);%网格化9 E: m8 g# D% t) i %brighten(.5);%亮化 ; i# F$ a( v% W; `. J% Z colormap(hsv);/ w! u. G0 W, c' d h = colorbar(h);%色标 0 R% W( ~, q. g h.Label.String = W·m^{-2}3 N3 h* [ K1 r( L3 T h.Location = eastoutside;%色标位置' }% D& w8 I0 ]6 h9 X title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...: f8 Y8 h( q' Y! v% F4 a FontName,黑体,fontsize,12,FontWeight,"bold") %标题- _- Q' u/ z$ _* W% |5 t9 H/ n xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);9 |1 Q* x. C$ U5 V: |0 c5 a+ I toc;# [. t5 L) U$ v8 U
1 r( z0 T8 s( W5 B

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

6 m1 d( y+ Y3 z0 {. q2 y
# v; J) c$ b( R5 G8 ~
2 z$ a' v! e# B, ~' \# q/ k. g/ q3 _: Q3 g, | * \" a* R' l; o% G& |1 x7 P7 q 7 _2 y/ j& K& Y$ |1 G) d4 q, n $ b2 N" a$ L( P% L: v' ]- b
回复

举报 使用道具

相关帖子

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