" w: S. q: ^" N8 i$ C" q
图片赏析+ L+ @& l3 f4 N( O
9 Q! N% q$ ~: K1 p% z
- R$ w9 I) B1 x! k % g) S: L9 w0 s$ w, n( f
前言 * l$ Y$ f/ u# G3 d
/ Q2 m' q/ |4 z8 Y H 南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° , }$ d, `0 K! t) ^) G: W! X; C
数据来源:
) ?& f/ f4 r% T8 M: L * W3 X8 K7 g p* `9 e
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 1 v& U, p0 L. P0 q- ?
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 9 Y3 g1 ~7 j% B+ j- o F
产品名称:Ocean Heat Fluxes海洋热通量 % U% q0 H/ e3 i* s \( n
时间精度:每日3-hourly记录
, [; `/ Q& ~9 G* t3 r& a 空间精度:0.25°
2 J; a! Y' P1 z& U 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; 8 H5 g! f2 w8 @) `2 E6 N" A
亦需调用gshhs高精度海岸线数据。 9 G0 E* w3 U- A8 y/ P
源代码" U$ S. P& H+ r( t' f* N
%南海1998年12月31日某时的海面热通量数据及分布图
$ ~/ F9 N' W6 o' x8 K %%
% Z. D% a! ~1 s' C/ y! @! _9 R %第一步:数据的展示
, h. R' {3 p& d tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
$ b" w& v6 S, q5 [. B; j filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
, P+ P" ]3 o- h% A! T6 M abs_path=fullfile(Path,filename);%合并,绝对路径文件7 b3 G7 J; `' U( Y2 R
clearvars -except abs_path;%清除除了abs_path以外所有变量. I4 ?" p" h! Y
ncdisp(abs_path);%读取所选文件
% N9 V* c; n* G: g" m# Z5 e' A whos;toc;
( l' V2 O. d9 g+ e4 ? %% 2 y" u4 ~ n6 q! X7 X# ]. {
%第二步:数据读取
) {" J2 t, j4 G2 w) M8 ] tic;Lat_ini=ncread(abs_path,lat);
, D5 y/ }: c& p, Z% M6 F5 b% N+ O Lon_ini=ncread(abs_path,lon);/ b2 X" z& z m1 e3 I3 m
Time_ini=ncread(abs_path,time);
4 L/ j c2 q# \) p2 z: r* b) l Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
8 T6 L5 Y9 O1 H7 z& O Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
: ~+ |# M M& J+ e% Z$ ~5 k0 ~ toc;clear abs_path;
. O# w5 i h3 \3 S, h %%& _, N* P- x' \% J5 X
%第三步:确定边界/截取数据
: y1 d2 @7 n+ K' j- m* H2 @4 W8 a %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
. j1 r/ u, W4 @! c tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序" S! v. P4 N/ o, R$ `0 e5 ?: {; r. i
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度' Z5 C+ C7 l1 H$ \$ q$ e0 {
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)1 _! r* g: D) I. a* Z" s2 D: Q
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
9 T/ ?7 ?2 O0 j5 d% r0 ?, @ Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)/ b$ ]( {/ q! V* N/ ~" b. o8 c
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)/ K1 [4 y: A9 M8 T# l& G" F5 j
Lon=Lon_ini(Lon_start_No:Lon_end_No);! |6 Z' R } @1 A
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
0 `' T5 K6 ?7 u+ u: w% U& k! y clear Lat_ini;clear Lon_ini;%回收内存( ^1 q$ v# \# |
Lat=double(Lat);Lon=double(Lon);%双精度化
9 z: z* ?2 g' T3 F1 B% E latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
/ q) W: B! A; Q+ k6 n" s% H Time=9%输入时间,注意三小时的倍数 d; s5 M! y7 x
Time_No=Time/3+1;; B' Z$ c, z3 c" B
%截取数据并降维度- f& W |& K8 o, v7 D& C
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的' Y5 p5 }- w' G% J4 |9 H
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
9 ]) S) D& \, y' N1 p) x clear Sp_Re;toc;%清除不再使用的变量3 _' Z# \$ l/ |, V$ ^/ j
%%6 { P h. N( n! O7 @1 [. q9 m
%第四步:绘图
' i+ P+ W4 @% Y tic;figure;
( o% r) A8 r k6 H/ }' A$ f m_proj(mercator,lat,latlim,lon,lonlim);
; I, b! M8 S/ q7 Y4 z [longrid,latgrid]=meshgrid(Lon,Lat);
+ `7 p4 |! W" @) I J. z- S m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
+ n( i( K7 |7 ] O) w$ \ tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
" p: G: T6 M* w5 z' H3 D8 A/ E m_grid(box,fancy,tickdir,in);%网格化
. S( k3 N: j R4 U6 ]; }9 a6 Y %brighten(.5);%亮化
% M% D2 |1 p# ~, P% S) K colormap(hsv);
3 Q X# R+ a$ w! d# _. G# H: T; F7 _ h = colorbar(h);%色标2 r6 G3 n' o1 ?- | X2 K
h.Label.String = W·m^{-2}
! X7 B" Y* a2 ~2 I3 y h.Location = eastoutside;%色标位置
+ S( ^. ^! O) P( w N# E. l1 e$ k! ~ title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...; E: R5 t- g3 X, B& \, Z+ V
FontName,黑体,fontsize,12,FontWeight,"bold") %标题, h6 o$ v% }! j* }+ u" o7 C7 E
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);1 ?5 F* Z8 F0 C/ N! E* t# m
toc;) b+ r. D$ I% G- T4 C0 i
4 O& [7 D! E2 | 附上另外俩残次品绘图结果,数据来源:IOCADS 4 y$ E' k# n, m; S
6 x- g% s) R$ a7 _! o% g, I. T
1 T8 ]# W6 u" ?
# g- ~$ P3 b# J' b
4 W. Z* S9 y7 [' K. M6 d$ a% Q2 G6 l& q( r
! @* S. F* N: [
|