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

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

[复制链接]
, C$ D1 C1 U, `6 k+ ?- J6 S6 M

图片赏析

# h3 T' ]; @3 ]
1 ^7 @+ M: v: ]# u) A, B4 B
8 @/ T! ?& _4 W4 H) N

{* ]8 L# F( O! i) f* y- i d

前言

$ F5 c/ V4 |( C6 B ~9 p

3 e) S! P1 X. g/ R

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

) v: ?% {% N, Q. h

数据来源:

0 r% k2 W( k" Z # I3 ~% ^2 I. |, l* B

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

) v: Q( a O4 V3 f: M' M

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

. {/ C" J) e9 [) { `6 V# ]3 \) ~$ N

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

) \' X- m3 d k& l7 g# i9 z- W. p

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

, D2 W' [& i7 p% O4 }" w5 l+ t! Y

空间精度:0.25°

- m' R% b' c. F( ~7 {5 Q5 z+ T

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

- A) `4 l. X7 t& r0 y# {' f8 W4 G

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

! d8 J; Z5 [8 B1 f6 ?1 G; E

源代码

( N& p' G/ ]) |6 W: O' h& r
%南海1998年12月31日某时的海面热通量数据及分布图5 J j5 B) u6 N %% 7 Y5 Q6 z5 Q2 O+ b* Z6 @ %第一步:数据的展示 + [" U+ J; z1 c1 i6 O8 e$ c0 ^1 ] tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址2 ]/ n1 f; ^. a: K: Q filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名8 \, P& V5 @3 ~) t" ^ abs_path=fullfile(Path,filename);%合并,绝对路径文件 e5 \8 {9 i) }' I; C n* T clearvars -except abs_path;%清除除了abs_path以外所有变量! ~* ^& S' d+ w0 p; G% F, S3 ^& V9 n ncdisp(abs_path);%读取所选文件% a1 ~1 i: o! g" F whos;toc;9 z& f1 k( c, ? %% ' P, H1 a1 T1 m9 z1 l5 V %第二步:数据读取 1 I5 G" e" z) W5 n" ^- [ tic;Lat_ini=ncread(abs_path,lat); 0 D: n8 s/ \3 ~, [ Lon_ini=ncread(abs_path,lon);) w8 h$ N+ L0 i8 u( F' P0 n Time_ini=ncread(abs_path,time); 8 ~5 r/ k$ y8 H5 x Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); ' o: J# q5 t8 U2 q% | Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); 9 W4 j* M: n; | toc;clear abs_path; $ y3 T ~3 ~" M3 i* _1 \( S %% % u! {% ]% m6 z1 P %第三步:确定边界/截取数据: B1 J# N7 R/ c5 f2 v* p %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° ; x! u8 ^) z( Y) a d tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序3 Z% A0 l J }: \ Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 7 b. r, [# |& A' d; } Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)# O8 `7 j) S$ Z. H( t& X# h Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) & P! ?/ j, ?* N# F Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)+ c- K% [5 X8 \4 Z( X Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)9 x" j( D& N6 c. I Lon=Lon_ini(Lon_start_No:Lon_end_No); ( B( X2 \" K( N. l, L: F8 |6 t Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 3 t4 u* c' ^' Q G$ u4 q- K( m clear Lat_ini;clear Lon_ini;%回收内存2 F: ` a9 C1 g8 [: [5 S Lat=double(Lat);Lon=double(Lon);%双精度化 5 F$ y, E: q2 M6 H- `! c latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; ( p+ m6 ^- ?- ^) G- s Time=9%输入时间,注意三小时的倍数- e: J" a/ w9 Z' J( Z Time_No=Time/3+1;2 @! R: H! _" s6 T3 F/ M9 P( G %截取数据并降维度 B& p# u. e' a' L2 A Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 5 t, N5 z+ ?+ }1 l3 a0 g, _) [ Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的% H. U8 n% H E3 h1 R6 w clear Sp_Re;toc;%清除不再使用的变量) ^" C9 c- y; P; y6 r2 m) P3 O+ s %%. b; w* g, w, {* u4 F %第四步:绘图! T+ x Q2 P4 p tic;figure; 9 Z4 G, Q! n+ a$ } m_proj(mercator,lat,latlim,lon,lonlim); - n& x6 S, y' f3 d; v7 u. u [longrid,latgrid]=meshgrid(Lon,Lat); D N, q' I# P# l m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf : p! ?$ Q0 w; G: d+ F, A% ` tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f3 r3 A) E- y5 x0 V! F% } m_grid(box,fancy,tickdir,in);%网格化! s# g ^* L1 V5 U. j %brighten(.5);%亮化 6 @( ]3 @: E! n. L) x) y6 N5 n colormap(hsv); 8 ^0 I. w: }0 N1 @0 T, { h = colorbar(h);%色标 c* V; W. a5 @' n9 G h.Label.String = W·m^{-2} % X' K% A) }2 I" p% x, L h.Location = eastoutside;%色标位置 & `$ O1 }! E# j* z title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... 3 @: G- w2 P, ]4 H FontName,黑体,fontsize,12,FontWeight,"bold") %标题5 c5 N6 A+ r( l1 b& i# ~ xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);4 ?& E/ f8 X f4 J' b4 ~ toc;% e7 c! h7 @- A) V. T4 Y
1 Q! H2 {5 h# u" w) y1 u6 X. V" W

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

+ U! Z5 F: ?7 @$ P; ?, B
2 j0 y" D* r0 q3 Q: Q# I
' I( M# p$ `% G" u* O) v) S3 {, n( f* `+ D ( s# b0 X- d1 o+ C" i7 [- B7 Z $ ?7 M! t$ p3 J/ F , }6 f. v8 ^; Q* m4 @5 e* ?3 p
回复

举报 使用道具

相关帖子

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