# z! A% ?1 y8 m0 u* B 图片赏析
. k" E4 n/ B, C( P7 k 7 d0 `7 Y" y& @% K
5 M7 s b, j$ X# a( Q j9 \4 e' q+ x6 J& s9 K
前言
2 |8 H1 t) s0 Y/ Q$ f! X 5 F( o+ W i" _& k
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° . G8 ^+ J- a& j& u% }* C+ }
数据来源:
1 d1 F! n0 @" H" X2 A5 n- r* n$ A ' B2 \ g7 p# b4 {
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
* i5 S; d6 F4 n x* z 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 * F' S6 T/ `; A: {4 y: f S' {+ n
产品名称:Ocean Heat Fluxes海洋热通量
: E. l3 q: }( @8 o s" O 时间精度:每日3-hourly记录 - E) z& I1 l) x! V' R
空间精度:0.25° 0 F' j$ G% f4 d, Z/ W0 J
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
2 z4 M8 A/ Y3 I7 X1 h- n; `: I 亦需调用gshhs高精度海岸线数据。 " c: P ?+ O5 r1 K: t
源代码
0 B2 ^7 I9 |7 } %南海1998年12月31日某时的海面热通量数据及分布图
$ f- p: e H; Z. ^0 ]" X& y %%6 L0 I" O' Y5 ?9 L1 a6 t
%第一步:数据的展示
+ e8 d, R( U& G tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
( V- i# [% e" h, x filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名6 M3 H" H% }" K* h
abs_path=fullfile(Path,filename);%合并,绝对路径文件
- H7 u: _% k* N Q5 S! ?2 U! W clearvars -except abs_path;%清除除了abs_path以外所有变量
& z9 e5 W! Y1 t( ^6 u- A" Z ncdisp(abs_path);%读取所选文件
" y7 z' Y# m4 j& I M whos;toc;+ N9 E& L& [9 K* u0 [
%% 0 w2 X2 v) ?+ |& ]6 s
%第二步:数据读取
- K% o: ]1 ]8 ^* |' t tic;Lat_ini=ncread(abs_path,lat);/ H3 [9 f/ {* H/ D
Lon_ini=ncread(abs_path,lon);" s, e9 D* X" X: [+ J
Time_ini=ncread(abs_path,time);
% ^' e8 O5 p) ~- w Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
+ B% a _- ?7 {" a6 B: _ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
% e5 z" e8 n! D" e9 h9 O toc;clear abs_path;; i" [- V- H/ |5 ^7 b/ Y; z" t8 K; h
%%
" Z5 D; k' ^1 q% G' }& ? %第三步:确定边界/截取数据2 j! R8 M C/ ^( w& e- \, [
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
" _0 _) V* I7 Y6 \ k tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
4 K B; U& D% V0 O- \- P8 o Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度) X' Q8 `4 F! y- u
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
" p7 e" C+ c( I& G8 L* [& T Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
; J' |. H; j6 k Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
% ~* a) B: x! R; C! I Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)6 w/ S* n& y) D% {9 i9 g+ H
Lon=Lon_ini(Lon_start_No:Lon_end_No);8 w, |7 |$ q; U; j7 b! F
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
5 E6 N0 V% I5 X& y clear Lat_ini;clear Lon_ini;%回收内存, J2 R) E- t2 ~: @" y* t
Lat=double(Lat);Lon=double(Lon);%双精度化" j; N. j. g0 O6 ]" s: ]4 U- ~: n6 l
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
( Q* A3 s3 P1 R% t2 j: K Time=9%输入时间,注意三小时的倍数
& r b/ @5 @, S Time_No=Time/3+1;: g# J9 ?; ?0 ?* F, Z
%截取数据并降维度5 D" V* U, }$ @5 B+ e! i
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的( S% g& J' O7 V; g$ ~" |
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的0 y6 Y1 Z5 ~# ]$ N0 e" `% J) u
clear Sp_Re;toc;%清除不再使用的变量1 w8 M l2 G2 D1 {
%% U& R$ i- O5 k% ~& b9 C
%第四步:绘图
2 ^4 n- `$ x+ r7 _! ^. ?; } tic;figure;
" n3 Q: _0 R D) ?8 c' L m_proj(mercator,lat,latlim,lon,lonlim);% B5 C9 D; `/ U3 b, ]. i
[longrid,latgrid]=meshgrid(Lon,Lat);
4 w5 }! B8 n% l6 I% J9 B' ?7 L m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
/ l" j2 q" \4 O# b2 n tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
% X) t6 _- P! F; } m_grid(box,fancy,tickdir,in);%网格化
) m! Z0 _/ h5 Q1 d: o %brighten(.5);%亮化
+ |) c: _- @6 H% _' x/ h& } colormap(hsv);
. [6 Q w$ O; E( r$ c7 r, n5 ^$ j" P h = colorbar(h);%色标# b! _" Z; f5 ` B& \8 ]
h.Label.String = W·m^{-2}
) H" P) g& b5 y* _4 w2 o, R | h.Location = eastoutside;%色标位置" F" J0 b7 S8 C1 s( n% z
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
# u; {. y$ K) V9 C; h FontName,黑体,fontsize,12,FontWeight,"bold") %标题
/ m/ M$ y4 p; r* L( ~& }" ]1 d6 } xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);3 A2 k4 _* ]0 }" b+ h2 x6 C9 N: T+ W
toc;
5 X8 g4 ~- ~+ ^/ H
$ J5 S% S) b+ S! F" K 附上另外俩残次品绘图结果,数据来源:IOCADS ^ A. y- Q) z5 T: c" M6 z6 p
: B( D: Y& T& ?0 s/ H; [
0 L5 Z+ ~" u/ i5 v/ q8 R0 |2 M, ^- P0 L2 Z) t
* m) B$ j8 v' O. v. j& V& }6 s8 }( U: w J8 a4 p
3 x& x' D* `9 s% N" q j |