6 l% U, a- X8 N9 V9 }
图片赏析/ ?) f& {$ I9 p* r4 q
* M" B: J% s) g6 O! Y/ ]
: c- P; U/ ^6 b) e8 R2 \5 I $ U9 Y8 P% D1 s" T, Z s
前言
8 @( s3 {6 A4 u- e9 e( Q3 m* G ' \5 M6 P' S" `
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° 9 a2 w: I) V9 o% C) n, l
数据来源:
) }7 s# t) j3 f" q , L8 A* g3 }. u! O7 }) V& f* v" X( d6 W
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
5 H& h8 W) h2 A. A" u- I$ c6 h 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心
1 | f* ?, r4 M; `' U/ R0 \6 n 产品名称:Ocean Heat Fluxes海洋热通量
8 |; I6 P. ]' ]" W# s 时间精度:每日3-hourly记录
( b# |1 ^: y2 J, v/ t- _ 空间精度:0.25°
/ A) M- l- Q" D( c 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
$ }! t4 T# g5 b. {; W+ _ 亦需调用gshhs高精度海岸线数据。
) j3 N& o& o0 f+ T& `9 | 源代码* `9 Q' i7 \4 m: A- l
%南海1998年12月31日某时的海面热通量数据及分布图
% S- l0 E+ M9 A) B( H+ F %%
o) Z1 \8 {: ^" R! `4 U %第一步:数据的展示
# ]8 d8 E0 @$ K! U3 C8 ~& u( L tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
4 A/ I4 h$ G% x$ `+ \, U# f filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
8 q5 C8 L( r2 |7 Q e abs_path=fullfile(Path,filename);%合并,绝对路径文件
) g) U7 P' x/ g& K clearvars -except abs_path;%清除除了abs_path以外所有变量8 b" _/ w& g" m; f) s1 M3 n! t
ncdisp(abs_path);%读取所选文件
/ r7 ~) z# E& V6 _' I. \0 o2 e whos;toc;+ p/ e6 z3 ?* \9 Z
%%
& Q- ~: _% y" k4 W %第二步:数据读取& D- u8 n2 g, \# S* o7 {9 k, C
tic;Lat_ini=ncread(abs_path,lat);# L- J" u. d4 v. w, q
Lon_ini=ncread(abs_path,lon);" M" a7 C1 R# c/ `" D$ g8 E
Time_ini=ncread(abs_path,time);' S. P% r7 i7 d2 }& I/ ]
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);& K$ p0 e. e3 s* m; F# ~. t
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
7 G. a; J: S0 l1 X1 W toc;clear abs_path;3 I' P1 V3 O: e& j
%%
m* ?2 T+ k/ V1 F$ d8 X' f %第三步:确定边界/截取数据; T6 ]; I- S* E7 ?( V( Z7 t
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°: k. r5 T, R. a4 l+ U9 u$ z6 o/ U
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
$ K- m6 y8 I# ` Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 u4 e) F! k% n+ j
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)* u' P! ~2 Z+ L5 _3 A9 x1 M; t( y
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
( B8 s( a& _2 |7 g Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
8 J; k+ e0 F" S( O+ v+ K8 [( e2 i Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号), y- E( _. I O# c `8 X
Lon=Lon_ini(Lon_start_No:Lon_end_No);9 V! S& j. O* y3 ]# [2 p' u# q
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的0 T) Z0 m' ?5 |1 }9 F
clear Lat_ini;clear Lon_ini;%回收内存
% v# w! T# ^, l) {, g- I% V Lat=double(Lat);Lon=double(Lon);%双精度化
, u) f+ z; V" |- s- Z latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
( N( p" Q y: B: g Time=9%输入时间,注意三小时的倍数
, ~+ Y5 }+ Q ]' x+ [ Time_No=Time/3+1;6 H. l* c7 F$ U. J
%截取数据并降维度0 e. E& a- b, K- C. d
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的' d& J& W1 y+ X. p
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
5 |: A$ \+ ]. e+ J clear Sp_Re;toc;%清除不再使用的变量
! M% m# \3 G' L* g* {% M' V% V/ H- c %%' E) G# a8 g, K: ]) k5 S% w# g
%第四步:绘图
6 O3 b9 f! N) c7 \1 Q tic;figure;- B7 J5 Y f8 n$ R0 b) B. n' a
m_proj(mercator,lat,latlim,lon,lonlim);# K) N6 w. Y. D; G+ S
[longrid,latgrid]=meshgrid(Lon,Lat);
. F2 K% n/ g/ w3 M3 g m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
% f2 P% V! @3 X- W tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f. L0 m, p+ `0 \
m_grid(box,fancy,tickdir,in);%网格化
0 P' J1 F% o& u6 ]; k" g$ Z %brighten(.5);%亮化6 H: F% w- O* L
colormap(hsv);
: g% C' j4 j: a; r h = colorbar(h);%色标, k; S9 F/ b% y
h.Label.String = W·m^{-2}9 J- A+ Y4 f- K: W
h.Location = eastoutside;%色标位置" J- W! G* A3 p1 g( C _" l
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
4 A; S4 A& a% J2 w% s' ^7 ]4 P FontName,黑体,fontsize,12,FontWeight,"bold") %标题0 i4 B1 i7 L1 L" V b
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);# K( X+ ]' {% S+ G
toc;3 _* ^# J, G) @( i5 q: D6 k8 i7 l
: X5 A( U! n( t8 R+ u! ^, K9 i
附上另外俩残次品绘图结果,数据来源:IOCADS
8 S9 h: |# w$ ? Z$ Z" X; w3 | 4 S! R9 R* z3 X/ g; r9 F3 z0 ~2 i
2 x# R) D. K6 V( d6 o6 h
( \+ a) [2 k( T5 l9 w! j1 e7 @- M# I0 z
9 @6 Y' e7 {9 E6 i' B: w4 z6 B
1 q5 C+ q5 J( o& E5 W3 o
|