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

[复制链接]
) Q' M8 k+ n9 [9 e B8 D

图片赏析

* Z( O9 f' z. I/ y+ }5 t
$ {1 d B' U7 O G* G8 F, t
5 v" C& Q3 Z/ G5 c' b+ l

( B' d6 g7 S5 z- t1 t" E! h8 [

前言

, z6 C7 S; q/ J

' U# S2 I+ o: Q- h$ W4 S

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

+ T1 ?/ [" E$ A) I$ V

数据来源:

J2 n) ?. o6 ?# M4 @: d+ i % F) K5 \- z* P9 N4 z

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

7 J$ X. ~; W0 H$ U: w5 Y

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

: Y5 V1 i9 V9 K4 T1 z0 H

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

: y& e: R6 l# g2 l0 m9 o0 Y

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

2 q3 j8 C, T- C& o; i. b5 B

空间精度:0.25°

( V6 I7 @& t5 K; T" E

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

. h8 {9 c0 @9 T2 t3 L2 y* n% s

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

) U9 J! I9 T( x" n* |' H) T. m' V- e

源代码

5 ]& t, |; s- B/ m
%南海1998年12月31日某时的海面热通量数据及分布图 ' X! C& l. l" ^; v, E %%0 a6 U( O% N: t4 Y# y %第一步:数据的展示+ C( C% b2 N2 X6 l: N0 d& y' c6 F( t tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 ! K4 u3 ]/ G! w! d# V filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 # n- h* A3 z7 E( h1 s+ v5 z0 W abs_path=fullfile(Path,filename);%合并,绝对路径文件 9 w h. e7 c/ N# ?7 k- x clearvars -except abs_path;%清除除了abs_path以外所有变量) d3 V6 z- x/ W% Y1 |# z ncdisp(abs_path);%读取所选文件 4 J8 N2 n- x' O5 X. y whos;toc;) u5 o8 d8 H1 X5 ]' ?+ i6 H& M %% ! _* W, R1 k7 Y7 u %第二步:数据读取 * ]) N& N; [* k: X' O tic;Lat_ini=ncread(abs_path,lat); 9 _8 e3 Q+ X9 y# u9 X Lon_ini=ncread(abs_path,lon);8 {- Q2 o- Q* K. ^ Time_ini=ncread(abs_path,time); ! m, j& ^1 S5 `: q* ^ Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); 8 m5 |5 D- g& A+ n Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); 6 k# l) U+ S& U3 _ toc;clear abs_path;& f9 y6 J9 H2 U4 c/ l %% - ^& q. P- n, Q) T %第三步:确定边界/截取数据 4 P9 v1 ?% `2 n' u2 k: C %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°+ G& d6 E' ?7 n) O tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 - e+ Q, c; z6 g Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度( N' N! b; B5 P( u1 G8 p Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) 5 Y, Y! P0 w0 Y- S3 Z0 o8 Y5 W! b9 R Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) 7 w8 Z! H G- w5 C7 S2 ^, T- H Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) . I4 Z+ q& e' h: c1 A+ `+ W$ \$ @( @ Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) 0 [ z) p3 r# j! \ Lon=Lon_ini(Lon_start_No:Lon_end_No); e7 v$ h" q+ R, U+ i/ A' n Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 - p. C: T$ p+ c5 N clear Lat_ini;clear Lon_ini;%回收内存 ! w7 K" p8 |- ? D" n3 V3 N Lat=double(Lat);Lon=double(Lon);%双精度化 , g0 F, f/ p, c, C; y6 x6 | latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; , |5 j* f# C( E. I0 ?3 q% D Time=9%输入时间,注意三小时的倍数 6 k3 E# d& n: `9 }7 r Time_No=Time/3+1; 0 e( ^. Z! h# w3 ?/ ~. ]. W1 B- ? %截取数据并降维度0 U4 X$ q3 X5 n! A Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 9 S6 m( h9 Q; {; o Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的9 A9 L# ?( a0 n6 ], q8 f8 _ clear Sp_Re;toc;%清除不再使用的变量 - \6 I: j: M) n | %% ; X" k9 R) {+ S I8 O1 P %第四步:绘图5 @) v7 ^6 g+ {$ @3 r/ x tic;figure;" C; J5 x$ O8 v7 s* d+ h) s m_proj(mercator,lat,latlim,lon,lonlim);, H+ U6 U4 }2 Y) c- s; G X [longrid,latgrid]=meshgrid(Lon,Lat);6 p+ p: Q$ y$ W3 y m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf 4 z! R8 T2 H/ w& f) s" u \# l: M! Y5 N tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f) l8 C3 J9 |& I' l3 M1 [ m_grid(box,fancy,tickdir,in);%网格化' e$ h1 o) F7 p2 L9 |, _ K% } %brighten(.5);%亮化1 E% w) U P) q4 W+ k colormap(hsv);8 \% D- W0 n+ w h = colorbar(h);%色标 $ [1 F9 F+ Q1 X' k. N h.Label.String = W·m^{-2} 4 g" o, b4 p: u3 `# e h.Location = eastoutside;%色标位置 & U3 u) p" O+ a9 C1 o( D title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... % O+ B) B5 L5 m6 a. _. [/ t2 I FontName,黑体,fontsize,12,FontWeight,"bold") %标题 9 ?/ M; |" |9 a7 S! v _0 t! k xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); 1 G' Z6 s" |; C. M K% A toc; ]# @' E7 m4 c" h) I
: [2 z2 w$ T$ l4 [+ k s

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

9 j t% ~; t/ C9 N" M6 B
1 V( R& T7 i8 D T. e
" P6 S5 }9 P( J t; s1 I$ U* A0 y# P* t9 @, S ' s( ]5 z+ ~3 g* D0 v {( J- L" ~- x+ F$ Z) j $ N; e) h+ K$ h5 k. N k; A1 o
回复

举报 使用道具

相关帖子

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