' `; J: w) r @' J3 R4 J' `' M 图片赏析
9 U; T+ H& [% W( W0 _# \0 z
7 b, S1 q5 C/ i0 \/ M 3 g5 w/ K( U9 n3 x8 O
) \- l1 Z$ a7 m
前言 ( K% y1 M* V7 H
! c! v2 _' E6 I( f! B/ }
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° / p! M i4 E! A' c0 h7 f# o7 J( E3 o
数据来源: H3 ]& I+ b: \+ q" R
! N, _6 J# W& w- q5 C' G0 Z& X 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
; U4 E5 V/ s# c( v 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心
9 q9 t/ k0 F2 x) h; z( _ 产品名称:Ocean Heat Fluxes海洋热通量 " \; P/ Z$ B- P, j( p8 z
时间精度:每日3-hourly记录 6 @- s$ N: M) e5 l
空间精度:0.25°
/ G6 p( }; w) w0 ^; f 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; 7 |0 ~& P0 {8 [! I1 o
亦需调用gshhs高精度海岸线数据。
5 L) @3 [4 ~5 v: i, ~) j# C7 {" r% F% }5 z 源代码
K7 B8 I8 |- `2 G( B, G %南海1998年12月31日某时的海面热通量数据及分布图. O2 y# D( k6 j" d. ?, d S( _& R
%%, l4 _- T4 A. T6 N' y
%第一步:数据的展示
8 U9 @% V, m1 B3 X) A tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
% [9 W; k6 C0 q# t) O$ H$ {& g filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
9 v1 i( R% S' u; B6 U0 w- z3 x abs_path=fullfile(Path,filename);%合并,绝对路径文件
& K" H W% ~) z& g clearvars -except abs_path;%清除除了abs_path以外所有变量0 A% O# {4 e( H; a( w2 X; H: ~; R
ncdisp(abs_path);%读取所选文件* W& ?) d) |% b- C! q# j* s B
whos;toc;0 ]2 Z8 o; c6 X5 A9 u f5 c3 D _
%%
) {2 J0 t2 S. j1 x2 ^8 \ %第二步:数据读取
' j( a b; i% ~5 Z9 I6 a tic;Lat_ini=ncread(abs_path,lat);
, A. d% I. e4 i0 }# ~* M- H- M; n6 C Lon_ini=ncread(abs_path,lon);
' q/ t8 c/ s0 V& S Time_ini=ncread(abs_path,time);' W) { y! z0 D/ d7 G
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);6 x5 M7 G% h- m+ x3 v6 n
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);% j Z6 r. b& P3 N: V/ v
toc;clear abs_path;0 ]+ |; ?4 m5 y: \& t
%%5 ?+ K3 \5 }2 P8 y2 T
%第三步:确定边界/截取数据8 {/ z' m$ U* j3 ^( X+ V
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°/ H7 x% T4 m$ K# K" j& }
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
2 o2 i0 z- W# h Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 O* D( G( M8 _+ _
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
' G( L# g x. j* s; h( e$ A: S* q) f Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)3 r2 i9 h# G/ V0 ]
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
3 t/ \+ d$ e- u3 q' F. E' ^( F Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)
0 t1 i m/ L1 V) B% F" p. {# c8 N Lon=Lon_ini(Lon_start_No:Lon_end_No);
3 V8 j4 T, A8 I R; T4 Q. J# D Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
& {6 G3 N" [& O2 X+ L clear Lat_ini;clear Lon_ini;%回收内存% G) z- y# H9 r5 }- i* L
Lat=double(Lat);Lon=double(Lon);%双精度化: {; d# ]# u7 m! P; O' Q% g
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];' t+ s& D. H# n% h$ K
Time=9%输入时间,注意三小时的倍数' h8 h8 G3 u1 [
Time_No=Time/3+1;8 _5 \1 o3 `$ p/ K1 L
%截取数据并降维度
0 K* M- f# A8 P- V+ S( X Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
& B8 Z! S- ?( \& E b% @: H( M Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
1 ?* i9 C& ^" R! n" V7 o) i" R% g, Q2 u clear Sp_Re;toc;%清除不再使用的变量
7 x# X$ ~& E+ C7 _+ r %%$ @( h/ m0 v" i8 c W
%第四步:绘图
- i7 ?( P9 t& P tic;figure;5 U) b+ x" E3 g1 |
m_proj(mercator,lat,latlim,lon,lonlim);
# H5 O: E3 v, d- }! U8 T. r( E% W [longrid,latgrid]=meshgrid(Lon,Lat);
1 n3 e5 X* y' c3 G6 D: c5 d m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf+ Q3 B# {) ^4 k
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
* e/ }$ F1 Y$ h3 a$ d* U, I" ] m_grid(box,fancy,tickdir,in);%网格化) i0 x8 E5 `$ P$ H2 B3 r
%brighten(.5);%亮化
0 N) l$ y% H$ w& X- v+ U+ _5 C colormap(hsv);
( x k+ ?9 ^) Y( G! }! c) {5 } h = colorbar(h);%色标
/ L0 G* d4 X. M3 I h.Label.String = W·m^{-2}
, Z N8 w+ L* h8 d/ R8 [ h.Location = eastoutside;%色标位置! q- t+ E1 ?" }# X1 R0 ~! K
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
* c/ j7 W3 p F$ ]- T. ? FontName,黑体,fontsize,12,FontWeight,"bold") %标题
$ r1 i6 d9 r8 E5 b0 M" O' a xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);) J) ^+ s$ H& O% p2 ^: _4 G! d* O8 \
toc;
8 X. e! d8 ~0 C2 K$ a; C- ~ 4 x' M' I. O+ Y% o, m# V f. A
附上另外俩残次品绘图结果,数据来源:IOCADS
, t6 A/ ]9 Z( v- F( p) g) G
( c t. h$ Q$ `. D! V F+ E
5 a# p: x) o9 [4 r2 O
6 O+ P/ K# i9 Z+ }) ?: X3 Q4 i1 T& \% V7 z! S- N6 [
0 P: k/ L: C0 S" @( }! U3 H
3 S0 o; k8 G r |