" |; f4 ~3 \8 w( w- t( R2 m 图片赏析( G6 M+ y' q+ a; @2 y% @
& ^" C7 X6 i6 M( N9 V' Y/ a
1 `% A5 S5 @/ ~3 o9 y. e/ Z
, f- n7 T& U+ v! r% i 前言
, Q* y8 U# J3 ?$ _
; m3 g7 B+ R" U$ Z! N) N4 o! N 南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° 1 F6 ]: e! m8 p( d- t4 X9 D
数据来源: ' r1 n7 E) L1 n7 u3 u/ u
- J/ X) w0 z8 d! X 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
: `' s C6 l7 }, W- M9 o. F 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 0 c A$ V7 d0 e- ?
产品名称:Ocean Heat Fluxes海洋热通量 ) F+ n& \( R% H1 l0 W- g# u
时间精度:每日3-hourly记录
0 k' k& Q2 o+ ~' q' ` 空间精度:0.25° ' S: S; _+ |% K* j
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; 6 {/ D1 j4 v3 C% n5 ^
亦需调用gshhs高精度海岸线数据。
$ |& d6 L q+ Q G" G5 D0 Q# ? 源代码
' O: P* P1 i% |$ I9 \' q# W %南海1998年12月31日某时的海面热通量数据及分布图' a* o+ g- }; `, ~
%%
2 h' |7 u' z: V& `( W( g, v# A6 m %第一步:数据的展示- b* T6 i3 C# ~; K! u4 } `/ v
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址* A# I: E2 ?. _* A; h" }
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名2 B3 R1 ^- `) q' Y
abs_path=fullfile(Path,filename);%合并,绝对路径文件
4 k8 N9 O, p$ ^/ Q$ N: O clearvars -except abs_path;%清除除了abs_path以外所有变量8 f6 m* }6 R. U: y! h
ncdisp(abs_path);%读取所选文件7 F9 \6 t& x& }- R; \
whos;toc;
; s, U9 K; B+ a) m3 x %%
x/ @1 i5 `: k8 ^5 Q) y% G% L5 f %第二步:数据读取
) l7 `9 z) b: Q; A8 J. L/ s tic;Lat_ini=ncread(abs_path,lat);+ Y5 d2 ^7 }' b' {) f6 T9 C
Lon_ini=ncread(abs_path,lon);
2 Q8 b& e+ q% r& e0 s Time_ini=ncread(abs_path,time);" Y! w7 I \. c: C
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);) O9 S* c* J3 R/ T
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);) Y% j* f0 T- R+ ]% F( t% v
toc;clear abs_path;
|7 p, s0 H7 C( D %%
. y3 O/ _+ N# P$ t# K( l %第三步:确定边界/截取数据9 K/ ]1 L4 m: |# Q/ c" r& C5 p" _
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°8 R- [5 m9 g, ]' r5 M
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
. ?3 g9 S9 V# z9 o- x# e Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度7 k+ o6 p7 g( [5 Q
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)4 r- F, W# b# X4 L, }5 E: a; f
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
/ |4 b5 |* B5 b# U Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)8 O) j; O: i2 a' X& }3 E l
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)! b) I0 e1 |3 l! ]5 l3 }% g5 {# L
Lon=Lon_ini(Lon_start_No:Lon_end_No);% w# J3 A5 }" D' G7 a4 d6 q
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的- ]" O5 Z) P+ n5 h* S
clear Lat_ini;clear Lon_ini;%回收内存
' I# L, |1 |. M Lat=double(Lat);Lon=double(Lon);%双精度化* ?+ S1 D& }% J, r/ y; k0 K
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];5 E! l, c6 k& b: m# d/ X' l* Y
Time=9%输入时间,注意三小时的倍数
4 }8 ~8 i! G" _0 I. }& A _ Time_No=Time/3+1;9 l; o" A( A* Z
%截取数据并降维度
1 s2 |1 F z g% Y! D Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
f! ?5 C9 X/ Z6 _. {: j6 m Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
n8 X+ o8 q; k4 l) U3 B( v$ X clear Sp_Re;toc;%清除不再使用的变量
/ @* O- w4 P% j) i8 A %%
/ T5 _) S9 l" z. M %第四步:绘图' V3 Y [, |0 h% [
tic;figure;
/ O6 e3 m4 F* Y( d9 u m_proj(mercator,lat,latlim,lon,lonlim); Y& `& d5 Z4 T, y, {2 f) f
[longrid,latgrid]=meshgrid(Lon,Lat);
; v9 U' }" a: g8 [# o+ H. e4 i m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf0 A5 l4 J2 }7 X+ F1 y
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
7 V/ ?& O. ~2 D- ^' S0 u2 w m_grid(box,fancy,tickdir,in);%网格化( r; D6 n; J8 d+ M
%brighten(.5);%亮化/ \# t; D* o' @. g1 ^! z7 ?
colormap(hsv);
" \# d. z2 c4 R0 P9 Y h = colorbar(h);%色标2 l8 O6 a5 @1 C' J8 U. Q
h.Label.String = W·m^{-2}5 n2 E/ S8 ^5 _' U3 d5 C7 G& R
h.Location = eastoutside;%色标位置
5 ^$ N' ^( q- W3 W6 P$ y& R title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
4 R+ D. B. q7 O3 l0 q4 } FontName,黑体,fontsize,12,FontWeight,"bold") %标题6 i- H9 {4 p' Y# A
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
, p1 w. W, i9 R* c( | toc;
( l, f! Z$ ?6 o9 Z9 @. H
: }1 |: m6 c: A# p( K0 T- D 附上另外俩残次品绘图结果,数据来源:IOCADS
2 l. n1 p H' A! {8 Z' t& }
" Z$ |! M3 R+ ~- }) J/ [+ T $ ]$ N. e& C6 `3 @
- U0 C' |7 n% a% G, w9 Q( e! ~
, L. H6 o- q0 W0 Q1 [- }
$ Z" k/ @% k6 W2 ~7 ~, a' V: {* p& q* E1 {. ~! N+ s
|