' q# u7 i9 r% G: s, F5 {
图片赏析
. u7 a. P+ Q# @3 e: u, Z, Y" g 8 p$ E1 R2 |( y( w. l; ?
1 f V- M! x' l M* F . G( f' U8 E9 h0 s1 ]2 k
前言 & L2 y4 A/ w/ l, c0 j5 u. ^$ |
0 D! R6 s* k( K8 I8 f& l* k 南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° . z/ q+ R( E' e5 F6 b
数据来源:
1 k8 ^) A7 m; P) G; H, S, Y n/ t9 f+ A# n8 A& P" O
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
7 r" {0 p( y/ j6 V0 ~9 t 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 . s8 x' E* ]+ J _
产品名称:Ocean Heat Fluxes海洋热通量
. R; s; f0 i0 J+ E* I1 L 时间精度:每日3-hourly记录 3 k$ @3 N: W% C2 H
空间精度:0.25° ; e+ I. o( Y, j) S4 E) ]
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; 9 ~, p+ D) G0 x) E% ~ O
亦需调用gshhs高精度海岸线数据。
2 @. y1 Z2 R# C$ ^! H) y5 _9 f 源代码
7 n6 m) j* Q4 t& H% p6 ]4 t- H. f1 {7 h %南海1998年12月31日某时的海面热通量数据及分布图/ [% e! g' D& [$ F) ~
%%+ g; a" I5 D8 E+ x% g7 c
%第一步:数据的展示' b; `) U% w0 s0 y
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
! Z# _4 _7 B' y5 z( z5 m filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名/ F8 f- p, {/ s- Q3 \1 W' u; \2 e
abs_path=fullfile(Path,filename);%合并,绝对路径文件! z7 Y1 W7 V. F4 Q
clearvars -except abs_path;%清除除了abs_path以外所有变量
' m$ j( F6 S8 t& o1 s" Z ncdisp(abs_path);%读取所选文件
5 { h* [2 D3 n; D: R whos;toc;& r( f; [, G6 R; x6 H
%%
* W: H; Z& I# N8 D: C5 y %第二步:数据读取2 @* V% s- e2 O* l5 Y# p! i, Q
tic;Lat_ini=ncread(abs_path,lat);
{& P2 O; t2 E# ] Lon_ini=ncread(abs_path,lon);& Y+ Q$ M% B( _
Time_ini=ncread(abs_path,time);
7 y7 d' c# q" X: G% a, c: B8 N Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
) }0 [! }' F$ Y1 O0 ^- [ Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);$ ^" R' u8 m6 F6 g
toc;clear abs_path;5 |6 p+ @/ T2 H5 l- [3 h0 B7 B2 H4 J
%%
0 v( P6 m9 P5 L% v9 \, G; [ %第三步:确定边界/截取数据% H2 J |- E! ?, s( @& ~: [
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
3 m' p3 m+ o7 N9 T4 s, ^& J tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序- E( u7 R3 X+ { v
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
! g0 `0 f- K% o4 ?7 q" U8 z Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)8 x* q# l( E$ | p: ^5 f* Z/ Q
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)4 x/ X. f$ c: n0 z/ m5 [ x' c
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
/ R; E. g# q$ [* R7 L1 i6 U B Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号): ~, s. y* y, T; S8 K
Lon=Lon_ini(Lon_start_No:Lon_end_No);0 u: \7 N& n; l( [9 G* C
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
, L( p0 G3 O) a- I! k, K- p clear Lat_ini;clear Lon_ini;%回收内存
. k" U7 y( d) {+ {7 U: S' Q n6 y Lat=double(Lat);Lon=double(Lon);%双精度化$ p" w% x( p4 Y* i% r+ }& c/ i
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];9 _( Y; |5 M7 V; G5 K2 V
Time=9%输入时间,注意三小时的倍数
" C, F; }" y% x Time_No=Time/3+1;3 A% @% ]1 z+ t6 m! o
%截取数据并降维度
$ a- t: e9 K c0 e/ ~9 G' V Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
& R* V a3 j7 d( r' G$ ^# _ Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
7 S- g; h5 L n; g3 _0 R3 S7 g clear Sp_Re;toc;%清除不再使用的变量( v9 o C0 Q1 H. O g R; k
%%5 \# R& ]0 f4 p8 P* u( O
%第四步:绘图
; K; n, ~& S d5 P tic;figure;5 i2 _7 M" N# R% o, g6 u
m_proj(mercator,lat,latlim,lon,lonlim);
& _% O! e, N- ?- M! G' f( f [longrid,latgrid]=meshgrid(Lon,Lat); n- ~. B3 v Y5 x1 A
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf; g6 r9 w$ t# Y. n- x" S3 J c
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
' C. G0 s9 M; y, a' [! |: e m_grid(box,fancy,tickdir,in);%网格化
0 o7 V7 h; [( p0 K. p% j %brighten(.5);%亮化0 U8 E# z+ J6 x- N
colormap(hsv);
/ S# ^6 D$ t7 U/ L h = colorbar(h);%色标
7 V; C4 y1 z: O4 Z1 y: Z h.Label.String = W·m^{-2}/ |+ n, x/ D, ^
h.Location = eastoutside;%色标位置1 U- X: J" {+ z# A" U6 E
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
, U) f5 o! P2 a; ?7 v" [ FontName,黑体,fontsize,12,FontWeight,"bold") %标题
6 c3 d" @, J/ G) ]4 W% B+ r( _! T xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);* @7 y# G% p" ]7 L) I
toc;
+ M7 Q" t" r. j- K : q$ m7 Y+ w. ^+ k+ p% \, }
附上另外俩残次品绘图结果,数据来源:IOCADS 2 X. A: i x; s5 z
H k* i+ c X/ ] % Q' y' o# X- Q W" D
8 m4 Z& i' _3 G) z/ G6 o2 N4 t8 ~, |/ N& J
; X, N* B, K' \7 A* |; h
1 h" _- R" R" R7 {3 a5 V |