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

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

[复制链接]
; C) @: w$ m# @ l2 m

图片赏析

+ l" X9 q& Q+ p' d A
# q1 I( x, u. N, b/ R6 y, V6 ?
1 P6 J. O& Y. l9 m

5 V$ |# G9 _' K4 e# ~' \

前言

l) N9 g& y/ c, B" n: T/ U$ S

: E( @9 ^- E# S

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

7 n. z# C6 [- Q, L& M% V2 ?( ]

数据来源:

7 N, U; M. n8 @- Q+ A' q + |6 G9 \( V5 { Z" o8 [

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

& ?, v! f/ O# T. A( x; n) t; |, V

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

+ R/ B6 [4 S4 H( W

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

) x! F0 ~( v# |; Q6 s/ j) {0 [

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

, N1 I3 P: Q3 ?: y; Q6 z# S/ D5 |& U- U

空间精度:0.25°

; z" w: b$ c1 ?( H. ~% G+ w! d4 y

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

; s2 u; \: p$ A& e' z: }6 S

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

, \4 r6 G8 D K: b# b0 S: j

源代码

1 c, y4 ] L, m& Z6 h; e, L6 K. [
%南海1998年12月31日某时的海面热通量数据及分布图" f( ?$ Q* Q2 u" W& \$ L7 D %% * D4 |9 N, r" E/ a2 [ %第一步:数据的展示8 S+ l& J! d" f tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 7 N, C: [3 z% ?# X. A! u |8 j filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 / H \ f8 p. }4 {0 l abs_path=fullfile(Path,filename);%合并,绝对路径文件. K4 H% _7 E0 p. {: i1 Q: ~1 T clearvars -except abs_path;%清除除了abs_path以外所有变量% n5 L6 s3 o. L8 s' Y ncdisp(abs_path);%读取所选文件3 O: F9 }4 _: \ y6 L2 ? whos;toc; 4 t/ C* C; P1 t' l H %% . R% n' ^0 q4 f8 l$ K %第二步:数据读取 - l' q- k4 q1 C- H tic;Lat_ini=ncread(abs_path,lat);& d/ k8 E# ]6 m, B6 I9 G9 R Lon_ini=ncread(abs_path,lon);2 ~6 i* }; h+ X g. F+ E- N' _ Time_ini=ncread(abs_path,time);3 b, d* E6 S! x$ z: J; I Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);7 @/ D" B9 F# A z) m Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); 0 \4 l6 v; ^6 |! d- o$ V% O toc;clear abs_path; : j' a: a/ k+ P0 h %% ' n# O1 w, |+ T. x% U& H) r& V %第三步:确定边界/截取数据 5 J! d' |9 o6 G8 c5 B' _0 U( ?+ `7 s %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° * U' R, O" m+ x0 s; h tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 U* G9 b+ b4 u( B Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度$ e5 Z; l( y [. D* E Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)4 j# I1 M( k s5 D Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) 8 R- @; Z. f5 f! D# s Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)3 {2 N! ~0 r$ z8 q6 f# ^3 ?2 y Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) ; ~$ ~( j( r& l7 `/ L6 R Lon=Lon_ini(Lon_start_No:Lon_end_No); ! _/ H' j; y3 Z, p Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的& d7 X8 F$ N6 { w; R clear Lat_ini;clear Lon_ini;%回收内存6 T9 v- N* w: W& c! Y- P Lat=double(Lat);Lon=double(Lon);%双精度化4 o# h$ y- u3 a. Y! A1 R9 C latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];7 ]5 K) W. i+ a. ^6 D6 T6 A Time=9%输入时间,注意三小时的倍数 / ~& S) G- P/ T* k8 q Time_No=Time/3+1; / M9 P r" V( n: _3 Z. A d* z %截取数据并降维度 0 @6 }- \# ^6 ^7 l. U" a Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的' `% E G: i0 z* J Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的3 F1 [; }" t9 h r clear Sp_Re;toc;%清除不再使用的变量 7 I9 X8 L0 w* s1 n8 @9 F %%3 \+ P6 V, V. e ]% G- R! D %第四步:绘图4 M* M) B) P- T# B# r7 o% U tic;figure;" t2 }+ b. I. U6 x) h } m_proj(mercator,lat,latlim,lon,lonlim);3 @6 x* Z. k: ^. ]6 _# T7 z) r [longrid,latgrid]=meshgrid(Lon,Lat);$ }( \& y& i1 n" _ m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf# C& v" z! I2 W9 @5 ]' B tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f& g+ c, l8 L1 H) } m_grid(box,fancy,tickdir,in);%网格化 # k; h4 @2 y7 j7 }$ _- H3 q %brighten(.5);%亮化 ; Z. k' M4 e4 n( P( c2 Z% M colormap(hsv);3 U8 T: Q# @, \5 j" ]% b1 Z Z h = colorbar(h);%色标 U: }6 f! W" y* }3 M0 H y: z h.Label.String = W·m^{-2}' W! w0 }1 Z8 w$ | h.Location = eastoutside;%色标位置 0 o) W+ c! l: [6 M6 ~. d# \2 B! {+ J& g$ i title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...2 D1 `4 R. P8 g1 O0 A FontName,黑体,fontsize,12,FontWeight,"bold") %标题7 ^1 ~& c. n6 l8 m( i xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); & \6 p5 p1 H! K( R( Q toc; ' o4 t; E7 c& n( ~+ H$ P8 C
" Q8 Q5 x' c- y4 o

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

) Q& C8 y7 m7 A$ D
0 r( F" r* F# G2 k
, b- r" F' l4 @8 W$ a6 ~8 l1 z X- M( d 4 I7 h4 `! o, q- m+ z2 n! h/ a% h& w8 H: w* v 0 D+ f+ @( p! L ; [! b* N# p" x& u0 e
回复

举报 使用道具

相关帖子

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