, 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 |