9 u6 L/ N2 E5 j, s6 C+ Y
图片赏析
6 t6 D: O* h! V4 ?. d; i# b * Z0 m9 @8 p) X/ [6 J
9 }9 M" C5 S. H/ u, h7 E1 _ 3 l/ U) B9 `3 T
前言
' y5 E W+ T- O3 @9 y, F9 ^0 }; l # q, _1 a" z) |% c8 C+ N0 V6 u g
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
. ?/ t6 o. {7 r7 t: h+ I# K 数据来源:
! d7 ]- t+ T U$ C
& c# f% t; k3 P: H9 ?, H' O9 y 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 + _5 |. U2 @: k: |: O3 s
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心
) Z' p; b# }& w7 ]! M5 n( n 产品名称:Ocean Heat Fluxes海洋热通量
4 D" t0 L7 T; W 时间精度:每日3-hourly记录 8 M t% @" d5 W4 p* |. O
空间精度:0.25° 0 x* r3 U+ }+ v: f% @
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; 0 r2 ]3 j. H% x/ C) ]* K
亦需调用gshhs高精度海岸线数据。
: F0 R# X+ c+ o% C4 w: P 源代码
. i* `0 U$ Z/ E$ [* o- [ %南海1998年12月31日某时的海面热通量数据及分布图- v: ^% \5 y/ [) H' ?0 P# o
%%
: Q }" |: S0 m# ?# m0 w %第一步:数据的展示
/ S6 I/ _( k. q+ ] tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
/ q% j. ]+ m8 t* E" F8 e; [ filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名( m \9 M8 ^ {0 ?2 T: w5 ~
abs_path=fullfile(Path,filename);%合并,绝对路径文件7 C, F7 @( w2 m
clearvars -except abs_path;%清除除了abs_path以外所有变量
0 k& Z `% h; R {" P5 e ncdisp(abs_path);%读取所选文件! ?3 V( G' L6 {, `$ w
whos;toc;3 @& a1 \8 m/ c
%% . a- t% Q( k ]% L( v3 W3 u' h
%第二步:数据读取' s8 h- `- {8 ?1 s, H4 `! a$ C
tic;Lat_ini=ncread(abs_path,lat);9 j7 I5 h' N2 \
Lon_ini=ncread(abs_path,lon);0 p" ?# U, M5 y7 o9 u
Time_ini=ncread(abs_path,time);
3 ]+ g4 O6 {/ F) I' b& H5 ? Y- b Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);; { D5 K5 x; e- m) K X; l# P, F
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);/ _4 L; S, ]2 j! N4 e. F% K( R/ f8 {
toc;clear abs_path;9 B0 ~: B* J( s
%%
- u2 \( q( `. y- I %第三步:确定边界/截取数据1 ~7 y% ]" F4 ]- Y
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
' e7 k. K1 C( P4 u0 k( `; e* _5 Y! _ tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
, y- c; }% }2 x G: S" y& F Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度& H% M1 F; G1 X* a% c" \" i
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
) O/ z1 z* U' i Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
! M5 [; B, R/ a. v Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
$ X! e" s+ F$ x8 B# L# J Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)
! s/ {; H* g. _# }& d( E* q Lon=Lon_ini(Lon_start_No:Lon_end_No);
2 @. h- }) {. n Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的, t) W& I. T* G a
clear Lat_ini;clear Lon_ini;%回收内存% l- |% c, u, {1 b0 }
Lat=double(Lat);Lon=double(Lon);%双精度化$ D! B5 m6 C3 t
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];* B1 X) j9 \% N1 n$ B
Time=9%输入时间,注意三小时的倍数
& n! G2 Y$ l" \$ P9 M Time_No=Time/3+1;) r6 V3 _ F g: v9 O. D
%截取数据并降维度
( _% a4 F% g* w4 p+ |( D Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
. g4 d4 c; o. _" T$ c# Q Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
# i8 S2 i+ {$ T0 Y) E% v clear Sp_Re;toc;%清除不再使用的变量, m% t W1 g0 p1 N! r7 e
%%- C2 A8 ^8 \7 s5 O* C# S
%第四步:绘图& u2 P- t3 n. B) S E2 J6 h7 F
tic;figure;
! d- @- r! C& X4 b m_proj(mercator,lat,latlim,lon,lonlim);: e4 s9 R( z* A* D" d) U& W
[longrid,latgrid]=meshgrid(Lon,Lat);
" T3 f+ e' V* n' c K& X: ?5 I: U m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf( ^" z% Y+ _& w
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f$ }( q0 u2 t2 R5 ]9 }5 Q7 Q* r5 V
m_grid(box,fancy,tickdir,in);%网格化
" U# Z; ?! n5 g %brighten(.5);%亮化" Z f0 W+ {5 e: S& M& p
colormap(hsv);* A/ o6 C1 C2 l# g9 }2 \) U6 W: }3 P
h = colorbar(h);%色标
, _( x8 D( V$ R* q. { h.Label.String = W·m^{-2}
3 D, I/ X/ I9 d8 { h.Location = eastoutside;%色标位置2 i$ h4 i% f! l1 _- U/ l9 N" n
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
" u/ e2 l0 L' h+ V1 M FontName,黑体,fontsize,12,FontWeight,"bold") %标题% b( ~' ]2 H$ X' P% {( O1 V9 Z) G
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);; f& ?0 M7 e; B( q; s4 n
toc;$ ~, z* ^" Y& x1 \$ R9 a
2 ^1 e0 }' P/ m/ ]) K' y, H2 s
附上另外俩残次品绘图结果,数据来源:IOCADS
4 \. |$ G4 c3 o$ p; L' w& C& d % u/ w. ~$ M7 t) m' n
9 b' d1 ?' \1 z
& L8 g4 z/ q1 z; B5 L2 S' u7 {" z" M8 b
( Y4 ~" ]9 G4 Z' X }. J8 i
0 y7 l/ p3 g2 J |