) G. j% v6 p: }. |- R 图片赏析
) G8 [( J, ]7 M6 [2 ?$ F
# W+ G0 d- \5 w. ?" W
7 p2 O, _- B! ^- v' E* m $ O% B+ }& q& p
前言
0 G0 I4 D# U+ R1 `9 Y4 I* e! V : @0 E Z7 Z S) ]8 Q3 r2 w
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
; }7 \* |! ^3 x% S- r. h1 A 数据来源: % _$ |% f# P3 r4 S, Y5 \' d
7 j$ L) _! u: v8 k& g6 O' m
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
* R8 x; X5 \0 E 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 5 p( p0 z4 s7 J% u
产品名称:Ocean Heat Fluxes海洋热通量 - F! e3 l. F4 B
时间精度:每日3-hourly记录
3 g* t5 U) w: `) x( A9 D4 P3 V# f 空间精度:0.25° U7 p& B' `. \$ ]' }) M
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
3 z( @9 c( a' f$ `, H5 [0 k 亦需调用gshhs高精度海岸线数据。 . X0 a' C7 r4 R2 u [
源代码0 [" T) y1 i$ q. B u2 N' Q
%南海1998年12月31日某时的海面热通量数据及分布图 ~6 a; ~" P* L# W5 ^4 W
%%
$ i9 M y/ n* M6 r8 d: e: C %第一步:数据的展示
+ u2 C4 c2 J! I1 D tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
& h! J- K3 |5 @ b filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名0 d- p8 o2 B0 E3 S9 Y% j; j
abs_path=fullfile(Path,filename);%合并,绝对路径文件
9 K" ]) n" n' s- Y clearvars -except abs_path;%清除除了abs_path以外所有变量
( t& l- V, j" [' W ncdisp(abs_path);%读取所选文件6 w; O, O. o0 K: ~
whos;toc;$ A2 j1 _5 X* o( F2 L. E# w
%% 7 b5 Y( A. g& k3 J3 K0 R
%第二步:数据读取/ f6 j' ]% V7 A( ~' W9 n" z2 u5 i
tic;Lat_ini=ncread(abs_path,lat);: O& B6 X. [, s4 z$ n
Lon_ini=ncread(abs_path,lon);4 ^+ K% k, w; K. }6 \ f
Time_ini=ncread(abs_path,time);; S4 _( U z5 E: m1 R
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
" k6 l; j+ ~: ^( i4 O) N% M Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
. H# h! H6 n1 C toc;clear abs_path;7 i% b$ _, P- `3 S6 |- M! c
%%
& P$ @4 q# w6 O/ X %第三步:确定边界/截取数据8 w4 `9 q0 f, ]( l
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
: ^: I: D; H2 W9 W N, o% Q$ @" R, @ tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
& t1 ?2 D5 }& @: ] Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
. L& i+ k+ T8 F4 h Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
% X, V9 \ y6 i. \1 j& B6 e% V# q( m Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)1 v0 l! T* m( e+ v# p7 S: o# u
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号), d! s N) w" m
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)
) s! L S) j9 K4 d; f Lon=Lon_ini(Lon_start_No:Lon_end_No);" {: L9 G3 {+ D/ J$ f3 Q
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的+ l p7 k& m2 v6 c. P; a" e! y
clear Lat_ini;clear Lon_ini;%回收内存+ Q2 H( ^# c J$ F
Lat=double(Lat);Lon=double(Lon);%双精度化
7 n3 N. i; D* f+ n4 K latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
2 L% J' d: y3 W5 [ Time=9%输入时间,注意三小时的倍数
/ i; C4 F1 U' [& B) z' k Time_No=Time/3+1;
0 R2 D5 S! j8 E$ o! u %截取数据并降维度2 l' k# h: X0 }+ K3 ] A
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的$ a7 b8 M! x1 V1 j
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的3 _' Z6 e0 ~" d9 d2 J" ]9 m! ~3 R# h
clear Sp_Re;toc;%清除不再使用的变量5 D |" u" Z! P! j- }, o
%%
1 f- N) X N8 e i. n %第四步:绘图+ M# x1 e/ d* e* _: I
tic;figure;+ o! j _ H9 i& X7 Z
m_proj(mercator,lat,latlim,lon,lonlim);
) x( L2 Q% a/ P/ U5 f [longrid,latgrid]=meshgrid(Lon,Lat); c# ]) X4 R% g) A( x1 @ ?3 F
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf! }. N9 E' e0 Q/ L6 ]9 P# C: ^
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
4 j8 F! ?3 A" t- f; g+ N$ A8 Y1 r m_grid(box,fancy,tickdir,in);%网格化
- M/ ^' W* h3 a4 x' f %brighten(.5);%亮化
7 R9 b' A- }% @; k) `0 u) b colormap(hsv);
h+ ?! ]( F, V' F6 x. n h = colorbar(h);%色标
) A3 e8 y" i- [8 a! N5 k h.Label.String = W·m^{-2}7 k1 i) A% x% ?0 }
h.Location = eastoutside;%色标位置) {+ l& ?6 Y* s+ \8 H$ I- }& g
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... f. a6 k! N1 f! @2 V! I9 {
FontName,黑体,fontsize,12,FontWeight,"bold") %标题
3 J q3 j1 \& u8 v4 B. W xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
! D7 y5 l, D! J$ X3 w1 q toc;
* \+ Z& Q7 e: `- I' o( K
* @, M0 H: m$ E/ }# k( N8 g. @ 附上另外俩残次品绘图结果,数据来源:IOCADS
: P6 _. j9 V l2 E9 T: C+ r * g% g; D/ K" A! p4 U7 T5 ]3 U
$ x+ M7 F( Q6 V) p
1 b( ]3 K, a% z7 p$ {
+ H+ c. h$ g# L4 a. L5 C& ?. M; I4 r1 C7 q4 T% Q+ e
- b" p7 J7 r2 i9 Y. h5 H
|