) E/ {' D* l3 k% M: B2 N$ z 图片赏析
7 {) X& M) g& k* F 7 s) Q" P! C6 v* Z% ]" ^
: l( }* B* }, p+ u7 B
0 u" q7 O5 X/ ]6 j' y
前言
. y6 |( ?" Z, e8 v8 u & n) z+ @/ Y$ o/ d- R* w+ J
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
" {4 B. ^. U+ ~# w8 W 数据来源:
) h* ?& F. N& X0 q+ h6 r4 ?6 h0 i 8 T) h8 p& D7 e
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 " _/ b" q2 u3 U) {- H9 ]& a
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 " z! g. Y% ?; R! x/ [8 P
产品名称:Ocean Heat Fluxes海洋热通量 : }, Q: `: x: a( k) n
时间精度:每日3-hourly记录 * g! c3 \' s& w
空间精度:0.25°
7 d0 [: D, v/ G" {. a9 V, ~ 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
3 b6 Z# U( d+ Q) g3 i 亦需调用gshhs高精度海岸线数据。 ' {+ {- T5 c4 E3 X* G
源代码
4 p; j; T4 W* L2 D, W4 ] %南海1998年12月31日某时的海面热通量数据及分布图2 h* K" P1 |- K8 l/ i0 L/ i* t0 N5 h
%%4 M3 O6 Y1 z( Z3 u) A" t
%第一步:数据的展示
$ i3 }$ L3 h/ U; U2 i# y tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址3 Z* V0 V) b5 A* x9 W! _
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
) S; V0 b" I5 w2 s l# C abs_path=fullfile(Path,filename);%合并,绝对路径文件# V! J" G% E; f' q( j+ n7 l3 O
clearvars -except abs_path;%清除除了abs_path以外所有变量# m. _6 _9 _4 F* y9 U0 r5 S
ncdisp(abs_path);%读取所选文件$ k7 v# ?8 O1 b5 t9 }
whos;toc;0 F8 I. B8 J; m; @- M- l
%% & [/ _1 _5 |3 @/ g
%第二步:数据读取+ Y! [/ D A0 d2 d" T& P
tic;Lat_ini=ncread(abs_path,lat);9 F6 n+ y, f- n& r2 i$ n% f
Lon_ini=ncread(abs_path,lon);1 t, o) _5 y$ Z0 D8 o5 g/ c9 E
Time_ini=ncread(abs_path,time);
& Y& e% h6 f G* \5 Y: V) C Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
, J+ t4 y$ T# K# R2 |) _ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
( J( b0 J, Z) Y, Z toc;clear abs_path;1 Q; I3 S: D3 i1 \9 z
%%
5 w( O: G# ]/ v+ L5 Y %第三步:确定边界/截取数据- Q. O/ k r8 Z! C' Q$ d
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
4 o9 i0 y7 ~* K z% t: u9 e- |2 K: n tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序, M3 `7 Y' g: W3 n2 s! _
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度$ R/ i+ M' D- q6 L. n0 m# h+ W% z
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号); u, }3 q' _: @. @2 j8 M0 Q
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号). U) s# j d% j" e' @' |
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
7 x) b1 r. m# e! `. o3 P Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)8 J5 W( @, J! M6 R* x
Lon=Lon_ini(Lon_start_No:Lon_end_No);
R5 w1 [: i0 r3 f Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的- {# e7 P o: [$ d
clear Lat_ini;clear Lon_ini;%回收内存
- v7 G3 b/ O% E" |- R Lat=double(Lat);Lon=double(Lon);%双精度化2 c2 A4 n# q j7 t7 ?
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
$ c w' m4 `% e Time=9%输入时间,注意三小时的倍数6 c# m6 O$ G0 k+ Z. b9 z! v$ q
Time_No=Time/3+1;( p7 L1 G8 o$ ~! }$ M: a( A5 U
%截取数据并降维度
. Q/ @2 ?" T( |; R Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的* ~6 \& i" W0 w5 P
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
: y1 x& R8 a8 E, M( Y0 G' q clear Sp_Re;toc;%清除不再使用的变量/ t; v, R! Y; ?+ v6 }) i9 W
%%
% ~4 Q7 D3 y! i' g' Z) Z3 U7 T %第四步:绘图
4 x. D9 N# q r6 {' w tic;figure;
" x6 h$ ^9 R5 d$ l% U- L m_proj(mercator,lat,latlim,lon,lonlim);9 ~) _& t( S: o# W. b
[longrid,latgrid]=meshgrid(Lon,Lat);5 O$ g8 \- n5 x! O
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf* s2 e) N# Y; c& x0 X) u
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f( |( l( V. X$ q$ s
m_grid(box,fancy,tickdir,in);%网格化 y* v0 J% V0 r3 m* _( d3 l8 K& o
%brighten(.5);%亮化
' ]+ N9 Q' M! e' K0 L colormap(hsv);$ w) \: O& O T7 n
h = colorbar(h);%色标3 c3 P1 U8 ~7 ?- l+ d2 W
h.Label.String = W·m^{-2}3 E: g7 p4 ~/ M; e6 K. X
h.Location = eastoutside;%色标位置
2 c3 p8 H7 P+ o0 T- G title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
# X/ c( l3 V+ A$ l FontName,黑体,fontsize,12,FontWeight,"bold") %标题
" f2 B( U& @0 k: q, O5 | xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
. B- B) h; Y: u( C; `9 b toc;3 ^' [& L6 ?/ K1 l
4 h8 a- _0 w. |9 R% j: r# S1 w2 s# K7 e 附上另外俩残次品绘图结果,数据来源:IOCADS
# g& ?2 B" q+ \8 C2 ?0 o - n& ?' Q, d) V
; `& @ O3 B! v% l3 z- N
( t( }$ F6 w& L/ S. P) _/ ^; A7 @ c1 F
; Q0 W! p% S( E+ \! b
U& u v h; W8 g |