6 J% ?0 q: j: r% g% e8 {
图片赏析! ]1 Y! s* }# S) k- l
5 K8 q$ a" K" h4 j 1 X' s) |0 z4 u6 x c
) S( D4 _9 P0 |5 [) R, _7 b: f 前言
& u2 Y+ l1 C. K3 e 0 r5 Y6 |& x- C0 C. R* i8 b: h- q: v
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° + E) G: t9 N) _8 ~7 {+ T
数据来源:
$ s! B) z5 N. M0 S' f
+ m' c! y, K3 k% V; H# U 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 9 d1 Y2 |" ~: x0 {2 o, x3 b6 M' Y3 x
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 2 W" K6 O: X2 x# p1 }2 \
产品名称:Ocean Heat Fluxes海洋热通量 ; U' I' \9 y' b$ i. U# W# V" G$ e
时间精度:每日3-hourly记录
& t- p2 w/ }4 v: L9 I+ K, L- p" T 空间精度:0.25° 0 ]! M1 l% e4 F- w
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; ; s2 D* q* `: D' X
亦需调用gshhs高精度海岸线数据。 / f* j* k* m$ _# ^- a" {& D9 z, w" L
源代码! A8 H( F7 K& V5 L; J: v
%南海1998年12月31日某时的海面热通量数据及分布图& E1 E. n- G* N F4 |
%%5 ^: v$ g- Z0 A& Y
%第一步:数据的展示# p8 {4 ?+ p( e( T" w! S3 W" X
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址& _- P4 v: d3 m( w' f
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名; m) W D4 E, L$ |1 q& S4 Q
abs_path=fullfile(Path,filename);%合并,绝对路径文件
, [8 f7 t" d$ V! _9 u( L clearvars -except abs_path;%清除除了abs_path以外所有变量5 r/ i2 b* i5 _5 G! n
ncdisp(abs_path);%读取所选文件/ O$ Q' H( ]9 d* z
whos;toc;
' ^( L0 w1 d4 k9 Z %% " j, i0 h0 O7 V+ y) F$ m, c
%第二步:数据读取4 W2 ]( s7 U( y- O+ B" d6 l
tic;Lat_ini=ncread(abs_path,lat);
5 `; e1 k, Y2 W# j5 O' ]! ` Lon_ini=ncread(abs_path,lon);1 N( r, L+ d- c* `
Time_ini=ncread(abs_path,time);6 Y# E$ E, ~* X+ {
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
7 q. V( T$ ]) ]- i3 j& H9 ^ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
* t) Y, H5 m I1 f8 m9 X toc;clear abs_path;& U& `2 p) |4 x
%%
1 f$ _9 }/ `" A6 q" D/ i- \# N6 u %第三步:确定边界/截取数据
0 z% Z# e6 x6 q7 r ] %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
1 P4 J4 ^/ H# u: ]- D tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序0 l- H: t. Q7 F) M
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
6 O8 T" V, I* ]1 y) E* D Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)* Z+ Q) ~" \5 X) y' ^
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
4 C7 w: N( o3 Q! f C Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
# B1 _+ P4 K7 d2 e# F. l7 h Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)
' p/ S( w* Y4 U' X7 ~" R2 R" A1 e Lon=Lon_ini(Lon_start_No:Lon_end_No);$ b" Y0 q! a Y4 B7 d: |* G
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
% T: ?# _. [9 W( X! k7 e clear Lat_ini;clear Lon_ini;%回收内存. ^5 o, ^2 ~6 g* f% B
Lat=double(Lat);Lon=double(Lon);%双精度化" d# o2 Y4 B" ?& w$ H, r) M
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];7 M' ~# U8 M( e+ P2 K) n% ~5 H
Time=9%输入时间,注意三小时的倍数$ G# }) M$ \. A
Time_No=Time/3+1;
# s h* W0 R9 H8 b* y9 F %截取数据并降维度
% C6 Z0 L- E! l0 [: h) n5 ?0 K Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的# m4 b& W7 d# u( d' H+ L
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的! l' Q) r5 y" [$ R. T
clear Sp_Re;toc;%清除不再使用的变量
" W9 G6 v: O' X( d8 v, `& k3 {3 p %%
% X) |( f% W" \1 K" z %第四步:绘图
9 v4 M9 o) W: l' { tic;figure;
$ w6 Q% |% g$ |% r0 \1 w! R: A m_proj(mercator,lat,latlim,lon,lonlim);
3 j+ Q9 n6 |) X- U% p7 V' p" h A0 { [longrid,latgrid]=meshgrid(Lon,Lat);! C, h. X. o j6 [
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf7 F7 W7 H3 r( G8 ^) A7 i. @
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f& m1 T( Q- o* x5 ^* R3 N# ^7 Y1 _
m_grid(box,fancy,tickdir,in);%网格化; G( j( P" k( ~! R5 e
%brighten(.5);%亮化- E2 K1 O& V F) P0 L5 G; z
colormap(hsv);
9 v6 d: {5 H( ?( T/ m8 ]9 {2 } h = colorbar(h);%色标: ~! \& D: c& d( {: s
h.Label.String = W·m^{-2}
) ` Z* M) B8 |! M2 Z$ u h.Location = eastoutside;%色标位置
o; M) S# [. c5 c# ]* I title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...) j; F" [2 X' K9 E8 v: f5 B7 K+ n# l. |9 M
FontName,黑体,fontsize,12,FontWeight,"bold") %标题
5 O* F5 I! k% w5 p1 d! X3 [ xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
6 A, o& c G; n5 k, @. D toc;
) k6 g/ U3 x, t
' y0 x6 K5 @/ m/ d& i& H 附上另外俩残次品绘图结果,数据来源:IOCADS
- s) C: W, N5 L/ h0 X9 z7 }* _5 H# H
/ H4 X3 A' x6 S
C4 |0 d4 _+ V g4 ]
! q7 |9 k. r5 y& u& ^+ D; D9 g- X2 t. N/ v6 ?+ z! |+ V: o6 p
( C5 V# e, T3 n6 |. P5 K
( M3 W& w8 r* R# t1 [) M- P8 @3 ] |