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

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

[复制链接]
9 u6 L/ N2 E5 j, s6 C+ Y

图片赏析

6 t6 D: O* h! V4 ?. d; i# b
* Z0 m9 @8 p) X/ [6 J
9 }9 M" C5 S. H/ u, h7 E1 _

3 l/ U) B9 `3 T

前言

' y5 E W+ T- O3 @9 y, F9 ^0 }; l

# q, _1 a" z) |% c8 C+ N0 V6 u g

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

. ?/ t6 o. {7 r7 t: h+ I# K

数据来源:

! d7 ]- t+ T U$ C & c# f% t; k3 P: H9 ?, H' O9 y

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

+ _5 |. U2 @: k: |: O3 s

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

) Z' p; b# }& w7 ]! M5 n( n

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

4 D" t0 L7 T; W

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

8 M t% @" d5 W4 p* |. O

空间精度:0.25°

0 x* r3 U+ }+ v: f% @

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

0 r2 ]3 j. H% x/ C) ]* K

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

: F0 R# X+ c+ o% C4 w: P

源代码

. i* `0 U$ Z/ E$ [* o- [
%南海1998年12月31日某时的海面热通量数据及分布图- v: ^% \5 y/ [) H' ?0 P# o %% : Q }" |: S0 m# ?# m0 w %第一步:数据的展示 / S6 I/ _( k. q+ ] tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 / q% j. ]+ m8 t* E" F8 e; [ filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名( m \9 M8 ^ {0 ?2 T: w5 ~ abs_path=fullfile(Path,filename);%合并,绝对路径文件7 C, F7 @( w2 m clearvars -except abs_path;%清除除了abs_path以外所有变量 0 k& Z `% h; R {" P5 e ncdisp(abs_path);%读取所选文件! ?3 V( G' L6 {, `$ w whos;toc;3 @& a1 \8 m/ c %% . a- t% Q( k ]% L( v3 W3 u' h %第二步:数据读取' s8 h- `- {8 ?1 s, H4 `! a$ C tic;Lat_ini=ncread(abs_path,lat);9 j7 I5 h' N2 \ Lon_ini=ncread(abs_path,lon);0 p" ?# U, M5 y7 o9 u Time_ini=ncread(abs_path,time); 3 ]+ g4 O6 {/ F) I' b& H5 ? Y- b Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);; { D5 K5 x; e- m) K X; l# P, F Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);/ _4 L; S, ]2 j! N4 e. F% K( R/ f8 { toc;clear abs_path;9 B0 ~: B* J( s %% - u2 \( q( `. y- I %第三步:确定边界/截取数据1 ~7 y% ]" F4 ]- Y %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° ' e7 k. K1 C( P4 u0 k( `; e* _5 Y! _ tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 , y- c; }% }2 x G: S" y& F Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度& H% M1 F; G1 X* a% c" \" i Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) ) O/ z1 z* U' i Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) ! M5 [; B, R/ a. v Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) $ X! e" s+ F$ x8 B# L# J Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) ! s/ {; H* g. _# }& d( E* q Lon=Lon_ini(Lon_start_No:Lon_end_No); 2 @. h- }) {. n Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的, t) W& I. T* G a clear Lat_ini;clear Lon_ini;%回收内存% l- |% c, u, {1 b0 } Lat=double(Lat);Lon=double(Lon);%双精度化$ D! B5 m6 C3 t latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];* B1 X) j9 \% N1 n$ B Time=9%输入时间,注意三小时的倍数 & n! G2 Y$ l" \$ P9 M Time_No=Time/3+1;) r6 V3 _ F g: v9 O. D %截取数据并降维度 ( _% a4 F% g* w4 p+ |( D Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 . g4 d4 c; o. _" T$ c# Q Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 # i8 S2 i+ {$ T0 Y) E% v clear Sp_Re;toc;%清除不再使用的变量, m% t W1 g0 p1 N! r7 e %%- C2 A8 ^8 \7 s5 O* C# S %第四步:绘图& u2 P- t3 n. B) S E2 J6 h7 F tic;figure; ! d- @- r! C& X4 b m_proj(mercator,lat,latlim,lon,lonlim);: e4 s9 R( z* A* D" d) U& W [longrid,latgrid]=meshgrid(Lon,Lat); " T3 f+ e' V* n' c K& X: ?5 I: U m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf( ^" z% Y+ _& w tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f$ }( q0 u2 t2 R5 ]9 }5 Q7 Q* r5 V m_grid(box,fancy,tickdir,in);%网格化 " U# Z; ?! n5 g %brighten(.5);%亮化" Z f0 W+ {5 e: S& M& p colormap(hsv);* A/ o6 C1 C2 l# g9 }2 \) U6 W: }3 P h = colorbar(h);%色标 , _( x8 D( V$ R* q. { h.Label.String = W·m^{-2} 3 D, I/ X/ I9 d8 { h.Location = eastoutside;%色标位置2 i$ h4 i% f! l1 _- U/ l9 N" n title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... " u/ e2 l0 L' h+ V1 M FontName,黑体,fontsize,12,FontWeight,"bold") %标题% b( ~' ]2 H$ X' P% {( O1 V9 Z) G xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);; f& ?0 M7 e; B( q; s4 n toc;$ ~, z* ^" Y& x1 \$ R9 a
2 ^1 e0 }' P/ m/ ]) K' y, H2 s

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

4 \. |$ G4 c3 o$ p; L' w& C& d
% u/ w. ~$ M7 t) m' n
9 b' d1 ?' \1 z & L8 g4 z/ q1 z; B5 L2 S' u7 {" z" M8 b ( Y4 ~" ]9 G4 Z' X }. J8 i 0 y7 l/ p3 g2 J
回复

举报 使用道具

相关帖子

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