1 `; F3 n9 T$ I! r0 Y. A9 D
图片赏析
. d3 c. F' U7 K6 m* l$ a( V* A # _) H! y" Z) s `* b
. I0 f1 {! P+ a w ! r2 t1 P& q: a$ }$ | \2 |% z
前言
$ f( C/ G0 g6 R0 a z$ W; o* C! j" t0 { Z2 \. n, \7 [- s1 C" T* Y3 y7 ^
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
+ Q: g5 N# S4 m9 l, F' [ 数据来源: ; y2 ]3 a" V/ m/ ]5 i- b4 C) ] i
$ e# N6 i ^9 ~0 P$ R% d
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
1 h; L0 \& C. p! X- s3 Y 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 $ h0 o# e1 C- e! I* y
产品名称:Ocean Heat Fluxes海洋热通量
( c1 Y; q" @6 Y; x6 z* j& G. j. d9 G 时间精度:每日3-hourly记录
5 T0 C& G6 p6 d3 ], N 空间精度:0.25° , r( R# l; {. C5 O; o: s: k
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
J9 E r- D' T( L8 ^3 a 亦需调用gshhs高精度海岸线数据。
% o& @9 X# r, T 源代码4 j: f7 S& }4 J5 B7 V( t: Y7 t, s/ d
%南海1998年12月31日某时的海面热通量数据及分布图 D: x: K& W$ I" u' V& y
%%
4 a' Q+ Q. E9 U1 K; z! Y, G %第一步:数据的展示1 u+ P2 @3 Y8 e8 F7 f8 P a
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
9 O$ W9 I2 i9 U$ @5 V filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
( @' P% [) s# T4 a7 W& D abs_path=fullfile(Path,filename);%合并,绝对路径文件2 W3 t6 F1 l. X8 ?
clearvars -except abs_path;%清除除了abs_path以外所有变量 p# W |( i1 J) U
ncdisp(abs_path);%读取所选文件
6 c/ Q' J8 m) n5 c% D0 z whos;toc;
7 \, T9 l1 f* ?: m. R0 ` } %%
' T: r0 q+ r. g3 r %第二步:数据读取; ?- M; F! i8 \3 F$ K# y
tic;Lat_ini=ncread(abs_path,lat);
* U# ?* \; C3 K- l8 n! j2 ]9 x G3 f- M Lon_ini=ncread(abs_path,lon);3 m1 X0 [1 r" T1 V& B
Time_ini=ncread(abs_path,time);
4 a* S% c, j0 W- n6 X, m( I Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);0 B" I7 J: q4 t7 G' M; f3 E( ^/ g' }
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);6 _8 j% a7 D P1 H3 K' e* S" x) E
toc;clear abs_path;
* n$ O( T% t; l8 ?2 l, L2 h; Q %%
/ F4 x5 U0 y7 j %第三步:确定边界/截取数据 v& K& T8 e5 z% T: |: u- J" I
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
, R5 T8 }, T4 F6 U; }2 r tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
; y9 \4 K) p* z) Q Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
. d( T& J* w, z1 ]6 D Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)6 y) T2 V5 p( S/ ^" d' k" l
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
* E* S, @2 y( C i5 E! N Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号), G' u3 j# z3 F
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)
$ n! t5 O' g+ z: K k Lon=Lon_ini(Lon_start_No:Lon_end_No);6 I, x! W# X3 m4 o4 G
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的( f/ w& Q- K5 f
clear Lat_ini;clear Lon_ini;%回收内存3 ]0 }- _9 m4 M. C
Lat=double(Lat);Lon=double(Lon);%双精度化# z' U0 {7 h+ z8 o% a8 u5 c4 B
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
' [7 v5 q# R( |, y* M2 f Time=9%输入时间,注意三小时的倍数* s: v0 a! I, T, |; l; N
Time_No=Time/3+1;7 H# H i" K' ~- }
%截取数据并降维度* C/ B1 ^. S; D' r
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的. }( p! E( `0 k: w* a9 _& k
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的0 U3 W" l2 O1 S" M& B2 J
clear Sp_Re;toc;%清除不再使用的变量
7 C! V9 l+ x0 x/ ]- X: Z) y %%
: \2 z, c) Y( G) m: k1 K %第四步:绘图* X0 U( a/ d$ U
tic;figure;2 o0 w# q L% Y' M' X' A
m_proj(mercator,lat,latlim,lon,lonlim);5 b. g, N' z( ~- l9 I+ h
[longrid,latgrid]=meshgrid(Lon,Lat);9 W: R# G* j4 e4 z+ M" t# [6 W! ]
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf7 k0 m" R( ?; }% B P/ [
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
9 v4 \3 K9 z3 b7 R4 S, a$ m5 Z" g/ Q m_grid(box,fancy,tickdir,in);%网格化
, B8 X t) J6 N9 y- g: m6 u- P %brighten(.5);%亮化
5 y/ P0 E1 O4 T7 I, u" ^' B( B' K colormap(hsv);7 F- w0 y% v# Z; }7 z$ v3 f
h = colorbar(h);%色标, z" ]% \. T r, M5 _0 W
h.Label.String = W·m^{-2}
; r) L+ L) Y6 G" {# N h.Location = eastoutside;%色标位置4 }; J! q( ~8 I- r& }3 ]$ |. G7 ^- X# z
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...- U5 V; p& P. L$ c1 W& v* c
FontName,黑体,fontsize,12,FontWeight,"bold") %标题
; z |" P7 n$ U, z3 _ xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
[9 c" _% e' Y9 y; ] toc;
2 h, y5 R3 ]* r2 X
: p3 E2 E K. `) K% i0 M9 } 附上另外俩残次品绘图结果,数据来源:IOCADS 9 j/ B, {7 F, D. u1 j) D
( F% B0 i5 o q6 U. U/ d9 L* A
+ R" L, ~ E- e2 P# S0 f) v8 A# C1 n/ K# O
. q* w% y% H6 F. u! L) d) [. k6 W! w5 f& c) I& \
6 B" j( H M& a4 T, p |