, i0 z. h3 S% M% e 图片赏析* F" O) R, U6 {2 ]
- I' i( ` t7 V) u8 W. q: R 2 R+ p. e% U' B
0 s4 ?2 P* _8 f 前言
9 C. X8 L& x% W( o( W$ x / x2 h% m. t* O0 o( v# h
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° % D+ K( \6 u9 E3 G# [% [2 Y
数据来源: 9 V. W4 m* n* R# g& ]/ \2 {
+ @# R# \# g2 m3 P+ O 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
3 E8 {# o1 ~# w& B9 @6 t 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心
! s: M/ {/ w" Y2 r( s6 s6 t 产品名称:Ocean Heat Fluxes海洋热通量
# Q% ]+ v! H$ @! n. _7 q3 G1 F# J 时间精度:每日3-hourly记录 1 \% T& S$ O$ c5 b% D
空间精度:0.25°
5 e2 M# n; i& e+ U/ X 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; ' f& f* f3 U: N3 A7 Q' A! Y
亦需调用gshhs高精度海岸线数据。
1 u0 h% D2 [& J3 I D7 @. {/ W 源代码
- m$ [" A) J+ h% h2 D7 Q %南海1998年12月31日某时的海面热通量数据及分布图8 F, a5 _. w+ |" A% Z
%%
: R" Z8 b$ W) ~5 o+ R %第一步:数据的展示
. U8 T8 Z% G8 q0 }, E tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址9 a4 u5 O/ n( D6 P0 ?5 c' w
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名! h& N7 K8 F1 ?( o
abs_path=fullfile(Path,filename);%合并,绝对路径文件* i7 F `. e, [9 n
clearvars -except abs_path;%清除除了abs_path以外所有变量
7 W6 _* B: `' R, V2 | ncdisp(abs_path);%读取所选文件3 y; ]9 e S0 M2 B7 s, c
whos;toc;& \9 p; s( I3 R1 Z! w" W- g
%% q1 z+ S8 b7 J: \7 m
%第二步:数据读取2 a" G3 e5 s i- K
tic;Lat_ini=ncread(abs_path,lat);. i* O( t2 z& ` K
Lon_ini=ncread(abs_path,lon);( W, p8 ^/ ^' T) R' C* @
Time_ini=ncread(abs_path,time);
# F& \# V' z% x Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
B$ N/ z% @: R* c1 q& f, J. L Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
{3 r3 ? _; h' m6 C$ c3 B toc;clear abs_path;' i$ X( w. e4 a; Y, ^
%%" w( x1 W) y1 t* D. X
%第三步:确定边界/截取数据1 C: A# {( v5 X; O' z. L* |
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
9 U ]( J. A! U3 T3 |' }2 O- O% m tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
+ ~8 Z$ X$ e: j1 E0 h* P* M6 r Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度' H+ i; R, u6 ~) J. L) W! i
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
6 i8 w' |8 _; A: P" Y Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
& @8 G) [5 o6 X) Z% p0 Q Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
! W, P& [0 q8 k( s Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)/ Y" y: ^! I+ g1 v8 z* o; A
Lon=Lon_ini(Lon_start_No:Lon_end_No);
! B& z- H, O9 c: S: `9 a7 p* | Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
+ U2 U" f, j9 `$ l, d& X3 A clear Lat_ini;clear Lon_ini;%回收内存
# K- \* J% i% x$ j6 u; s+ n5 u+ z' A Lat=double(Lat);Lon=double(Lon);%双精度化5 X7 r" U2 E. V: R5 w1 H
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];6 S& e) C' R. x) c, ]7 L# o
Time=9%输入时间,注意三小时的倍数1 I& W r5 c: w4 N! ]
Time_No=Time/3+1;
- I @/ l n+ c- x2 J3 F %截取数据并降维度" ?# w; K$ o' [. m& H8 p% k- f
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的7 d. Z i1 Y& |$ H6 `( n4 j
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
- }+ m& w/ E- ^. P, |3 v! o clear Sp_Re;toc;%清除不再使用的变量; X2 P$ _' h' r- y0 p$ ]3 p3 v
%%- Y4 q, F/ t* L9 b
%第四步:绘图$ @5 w3 c: w* V* a x* J/ s0 I
tic;figure;! p* Z8 ~1 m- O! o
m_proj(mercator,lat,latlim,lon,lonlim);
9 N7 x6 o+ a$ A. O+ I [longrid,latgrid]=meshgrid(Lon,Lat);
X# _/ Q% G$ Q$ o( U m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
8 K6 X# O5 Y) [( }4 U; v tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
" C1 Y0 }' U& h+ b6 i m_grid(box,fancy,tickdir,in);%网格化2 W# b1 d e8 A1 C3 Y
%brighten(.5);%亮化( F. h0 G7 `/ ~- W8 a x' j
colormap(hsv);6 ]: M" w% B" t1 r& r" P
h = colorbar(h);%色标% \" G( \' n! ~$ T
h.Label.String = W·m^{-2}( R+ |4 z. F+ D7 A* g5 f9 ?) t
h.Location = eastoutside;%色标位置! d8 ]* u% A$ W. U/ O! Y
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],.... T, B0 {/ R* j3 `
FontName,黑体,fontsize,12,FontWeight,"bold") %标题
+ ?( | s3 _% b, T: \4 C+ P xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);4 d( B/ }( w0 N& e8 c& F& x4 A' ~
toc;6 U+ a0 d9 S; U; A0 D ~' m0 u, }
0 p4 ]2 h6 U5 J6 Y6 {) c+ o
附上另外俩残次品绘图结果,数据来源:IOCADS : [& ~: ~' q3 \$ U3 N' k. Y4 O: k
& U: z: S0 g5 h: X* p, p; o
6 j: ]/ O2 c. P: L
' K, i& s0 R: E3 D
0 Q- W; J& g1 k3 q) @0 n% {
' t, y- Y# u1 v4 j: x$ L" {/ ^& |4 o3 h
|