7 i& J' J4 `+ \" e* l* W9 M5 D 图片赏析
4 q8 I4 b/ s. x a( t
% C) S( C ?7 P* {+ U" [$ d8 c: l2 ]# \
- x# r4 a% m4 A: c- u7 e5 E
" v8 s9 ]1 r L3 P) @1 \$ H 前言 + d7 W$ l) z5 ]
3 ~) [& z9 x5 P" Y
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
8 A2 a3 q" b5 ~9 Y/ l! C1 @0 m 数据来源:
2 f* V! e& i2 a5 x Z" Q |! a5 Z- J7 u6 V- I7 c
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 5 x( C5 E* ~# f) q- R
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 ! q6 D) i) u0 h8 S2 S+ v
产品名称:Ocean Heat Fluxes海洋热通量 " D1 v; l5 {5 |0 l$ h+ t* e
时间精度:每日3-hourly记录
5 s! v: h d% Y8 [* z6 D 空间精度:0.25°
: Z1 ?8 _6 [8 g 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
1 \' u# P. ^7 z c7 L 亦需调用gshhs高精度海岸线数据。
$ R) a r7 x4 Z K! t 源代码
2 Z- T- x# V1 m5 v8 R %南海1998年12月31日某时的海面热通量数据及分布图7 r" g' v% u, X1 ^ F- k) R
%%& b: p4 ^/ Q$ {
%第一步:数据的展示
: O7 T$ P; a1 ^9 P/ t* n0 Q tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址1 X' I: x% ?9 j) d* }
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
4 i% o0 r# e( i( ~' P( T- ` abs_path=fullfile(Path,filename);%合并,绝对路径文件! ~+ t, R! p# K4 L6 `
clearvars -except abs_path;%清除除了abs_path以外所有变量
; s) B- Y! m; u ncdisp(abs_path);%读取所选文件
. y4 r5 Z/ j1 O8 X, U' N6 F whos;toc;8 Q4 @4 J4 Q3 g; `0 M; |
%% 7 i5 o( z! v2 M6 Q2 T ]7 F5 t
%第二步:数据读取
- [6 i9 q8 P% y# [ tic;Lat_ini=ncread(abs_path,lat);$ y9 h# D: [& k
Lon_ini=ncread(abs_path,lon);
5 v5 U2 H: g2 ^6 q2 o Time_ini=ncread(abs_path,time); n2 `' M2 ~9 N% M0 Z o
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);5 j$ x) Y: n& E f
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);; I- v6 l( o, Q- j( U- \
toc;clear abs_path;
% O, ^5 ^9 n. G4 @ %%% K5 ~5 a: P6 g8 y+ g% }$ q! L9 l
%第三步:确定边界/截取数据2 A0 j( e2 ~- A k
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
3 s. z) y9 B! [5 c) S9 g) g tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
7 j3 `, L0 F4 U% { Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度; g- Z7 R1 b) C! T+ I
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
; a" d! B+ Y1 {8 ^' D3 b Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)9 R5 \, L ]# n7 m+ g
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
" J/ v: C( r( ^# j0 Q I2 V- ?, B Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)9 y' S* y6 b7 S* I S
Lon=Lon_ini(Lon_start_No:Lon_end_No);
. T+ j9 {; g- a u7 L Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
4 J' S/ l( j! e% M; j clear Lat_ini;clear Lon_ini;%回收内存
# A$ `7 J6 F* u0 m Lat=double(Lat);Lon=double(Lon);%双精度化
* [$ s V# W) Z. V+ i latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
; p' C4 c& s4 ?( s9 D Time=9%输入时间,注意三小时的倍数
& r5 w0 N3 D5 @7 z' X- K; I* ] Time_No=Time/3+1;
5 ]# X& ~" b5 J+ ~3 a, [ %截取数据并降维度
1 f8 f: K- t0 K8 O% M6 @; Z Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
3 N6 x% `: {) Y# ]+ B Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
, F& |9 Y) ~$ d, }# a7 E clear Sp_Re;toc;%清除不再使用的变量
, c( G. X# f5 ` %%
- A$ a0 O/ ~* y" @! q6 K5 l1 ] %第四步:绘图$ |4 d# P% E. R/ M" w
tic;figure;
/ [' K1 O% ?' V9 q9 P1 X m_proj(mercator,lat,latlim,lon,lonlim);: [3 i) B H) c; H3 O( ~7 }, b+ x7 u
[longrid,latgrid]=meshgrid(Lon,Lat);
9 X3 |' q# d! ]+ _$ ] m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
1 N; o) B2 W' \# O- W6 ]" p tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
6 e7 I9 f3 u2 q. c1 r! C9 ^( T5 b m_grid(box,fancy,tickdir,in);%网格化
' N! y& Q4 }! ?' j %brighten(.5);%亮化
: }( K7 T+ t" u- }2 _& b& G3 i# x colormap(hsv);3 W) v' p7 k% y3 ]! G* u% b
h = colorbar(h);%色标2 l6 W# |, ^8 h+ Q/ `- C) U2 N6 U
h.Label.String = W·m^{-2}
4 J/ p( T% b' G+ G, B+ E h.Location = eastoutside;%色标位置
4 r+ _) G+ n. ^ title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...7 u3 z0 }) }' F8 _6 X/ I
FontName,黑体,fontsize,12,FontWeight,"bold") %标题
3 A! ]( O' B- N xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
+ H5 o9 R2 r6 b2 O$ c3 g toc;7 `7 U `* @( P" o$ {5 ~: k# _5 G
' W. B/ e% B h8 t+ j f4 \ 附上另外俩残次品绘图结果,数据来源:IOCADS
, [5 i: O, o) R1 q0 v* Q$ j
% w3 c8 i( Y, f" c$ c ; f7 w( g$ ]& ?1 z$ _0 }2 k
3 v" d" x& w/ X/ a" W
$ Z* |% u* _7 G
# m! o [4 h: P: C2 k$ o9 z
* }5 M6 r5 o5 k( t# K |