( s: \9 e, Z# g, n6 p: o 图片赏析
$ o4 P2 d% G" O: r0 h ; K& ^; t- x$ O& _
" S; X6 f$ X" g, R3 u0 W4 ~ " l/ @; Z" k$ A
前言 / `; W% T6 G) V& z. @7 A, \
0 g* T9 w, z, G' B+ ]) Q
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
0 w4 E5 |+ O: x6 g 数据来源: ) _7 Q! ~' R5 E3 {. F L8 Y, ^! {
( ^2 x' z `* g7 ` 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 ! O1 a: |; {$ h o& M
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 ' y* M( n0 D8 R2 O& T8 l. w+ Z
产品名称:Ocean Heat Fluxes海洋热通量
' p6 p9 p; I* {& ^8 ~3 R6 ?* @1 v7 S 时间精度:每日3-hourly记录 ; Q* ?! W% E0 k' _) r' b
空间精度:0.25°
/ n; W2 _$ S' R) G 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
1 r& H3 D% x/ g) q 亦需调用gshhs高精度海岸线数据。 ) o. m) c, b5 Q
源代码
- w8 o) J0 t/ w. S2 q6 ^- F* Z %南海1998年12月31日某时的海面热通量数据及分布图
" y3 y5 f' C/ r* U1 i( I( @ %%2 r1 y. e) `% w$ ?1 r, \* y
%第一步:数据的展示% A, Q- g& ?& l+ z$ i ` D
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
, W3 p# P. s x filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名$ A- T8 v' x5 d! ]: ?/ K
abs_path=fullfile(Path,filename);%合并,绝对路径文件" q* e/ E' i9 p/ x8 x
clearvars -except abs_path;%清除除了abs_path以外所有变量
) c+ ^& Z% ^7 t3 E ncdisp(abs_path);%读取所选文件4 f1 q2 Z" v" n* s1 c
whos;toc;& ], i+ M5 }! D9 H- L4 a
%% ) p, v$ I7 w; z/ \9 ~3 A
%第二步:数据读取2 a4 M4 d+ J. l* a
tic;Lat_ini=ncread(abs_path,lat);
' r, Y0 j% N1 P: S3 {+ c7 M% ^. D Lon_ini=ncread(abs_path,lon);
% N3 [0 y. `# K' \* ^/ E, `: ? Time_ini=ncread(abs_path,time);4 t! ?' d6 ~7 _6 Q- ~! S( L3 d0 W3 ]
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);) c/ o1 T) M2 a7 m+ Y
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
# X2 Z$ {2 X$ V. a9 s6 I6 Q, q toc;clear abs_path;
3 @ J9 a* u; \6 i$ C %%
) e' h4 K+ f( J8 k8 n" A %第三步:确定边界/截取数据
" l5 e: k& m7 |1 X! Y+ H %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°$ X4 N8 g v: U7 u
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序( b. s" R! o: C6 X3 Y3 ?
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
! X4 x1 \- G) b" [9 B; N1 O Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
; `: G& G) {, x( O Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
* S8 A6 c/ {* i/ A1 G/ y/ Z Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)+ B( e& l% n) j* Y& c7 V/ Y
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)/ Y* t) y$ ~1 M2 {: [( Z$ ~
Lon=Lon_ini(Lon_start_No:Lon_end_No);
3 E1 P8 b$ t' @7 f% P c7 S Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
5 j7 a& S/ O: u% x" f8 G/ X clear Lat_ini;clear Lon_ini;%回收内存/ @% F* ]1 p6 k
Lat=double(Lat);Lon=double(Lon);%双精度化; g) a' z/ q' D0 H# C! w7 C9 J4 j: n
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];# m1 p5 ]: V6 j8 A9 R3 E) B8 y
Time=9%输入时间,注意三小时的倍数
9 B6 m/ |' k6 Z J9 D Time_No=Time/3+1;' E4 k5 ?) t- }
%截取数据并降维度
/ q7 |3 r2 y7 s8 T" ` ? Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
/ g3 \: g. D) g" c- N2 c& Z# m Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的$ D/ C4 a) N" m0 {, v
clear Sp_Re;toc;%清除不再使用的变量) E5 ], x, N& _4 F8 h5 U3 G# f) m
%%
! A* ?9 q/ W7 b/ |- S0 ` %第四步:绘图 Z7 v" D+ S2 ~
tic;figure;
7 i% \$ _, w* K' v$ x4 c) R m_proj(mercator,lat,latlim,lon,lonlim);
* f Z. U5 H+ n [longrid,latgrid]=meshgrid(Lon,Lat);
# f0 V% _6 F' R3 p& `, K$ N m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
5 v( p6 e6 @+ f8 F/ ] tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f; {" D! d; C( V4 T1 `# e6 ^
m_grid(box,fancy,tickdir,in);%网格化
. b6 F- K" a4 q4 E8 z# N: x- j %brighten(.5);%亮化
) |: m1 x+ j' q; x1 F8 C) { colormap(hsv);
: }5 ?) C, C, V, R1 Y h = colorbar(h);%色标
. ^( I# M) \5 a5 ?, \+ C7 s h.Label.String = W·m^{-2}) g+ n* r' [8 Y1 u
h.Location = eastoutside;%色标位置
' f4 L0 }6 W# q5 _8 d: P; A& g& i M, a title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
* U1 z9 l+ f0 g: k FontName,黑体,fontsize,12,FontWeight,"bold") %标题6 i, I+ y. Y, \4 n
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
' H6 I [( s: Q: |9 R5 T0 Q toc;
) v0 Q% q) k& D& n9 Y . F- @2 [* R' U8 ~+ e. |
附上另外俩残次品绘图结果,数据来源:IOCADS 8 A% g+ C0 F# x+ y5 Y
+ k% C' P2 t: R$ w+ R
) F% [: u( a4 Q! D8 B& K
& L+ q- D B4 |) w. O7 ? u L/ z5 L
# ^# _; U! r6 Z, C: J/ R/ X/ w9 J" L
7 e- ]: H& A' W |