; E/ b- ~+ U, W
图片赏析7 L1 G6 t: {; B( [# V2 K
8 V( h- e" x$ L. r7 B
5 _ G9 f( K+ |: ~
" \( d; g. k& F
前言 5 y: _% B7 j, d$ e* G5 G8 X
2 y! ?- v) U& I1 |" y( t0 S 南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
& \9 p* W1 J9 D/ A# l7 u 数据来源:
5 L* {9 a$ {- l, G
" E4 o7 `. v$ s( q7 l% d 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 - f( ~6 J5 F S. A# c4 h
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 ' m7 q& c0 U" z
产品名称:Ocean Heat Fluxes海洋热通量
8 S# Z- ^& P% }4 h* m5 S' F 时间精度:每日3-hourly记录
7 F/ a3 ^5 y$ p0 ?, _9 G 空间精度:0.25° ) C) \2 d# [; H# d2 D6 p% Z
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; : ]8 u n" |) ?' |, o
亦需调用gshhs高精度海岸线数据。 6 z2 m. ~& u( M* D+ P
源代码
) D( ?! B t+ Q+ J. d %南海1998年12月31日某时的海面热通量数据及分布图
7 P+ V( ?) \" @3 ? P* x: v %%
$ p6 F' W4 J7 d5 o: g% f %第一步:数据的展示+ a7 G/ i! J- V* C, d
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
2 Y) h6 M, }6 @ _# U filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 E! e4 I6 r1 o; z2 @
abs_path=fullfile(Path,filename);%合并,绝对路径文件
3 K, E7 f& k& Z3 u clearvars -except abs_path;%清除除了abs_path以外所有变量
$ F) B6 ]3 e1 R7 f2 i, @! T! D) | ncdisp(abs_path);%读取所选文件
* g) k2 [- `* H+ O0 h5 \ whos;toc;, w4 {' u" B' Z/ v3 N0 Q
%% 8 O" b4 d* Z/ X- D8 ]! ^* _4 o( b) o5 Z
%第二步:数据读取
+ Z' i" V) q/ G5 u* f- A tic;Lat_ini=ncread(abs_path,lat);. z2 c- t- H! i7 ?" ]7 I
Lon_ini=ncread(abs_path,lon);$ Z1 Z' C7 J7 F, F
Time_ini=ncread(abs_path,time);# C/ { V: G7 ?7 g, W. V/ e B3 T
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);1 l5 j& ]: W7 ]- } x
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
, ^$ n; \! t& _7 g% f, J# o" }0 }, v toc;clear abs_path;
9 B3 {' P/ W: C. ~" Q %%& ^* J9 `& d+ w6 `9 t
%第三步:确定边界/截取数据. B6 N) T: S( e7 ]9 e. E
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°4 Y1 S& u1 q+ o9 b
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序- l; d+ [- \/ F. {
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
0 m. l" @8 [2 T* t# p5 H1 ] Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
9 G# V* ?7 t3 w/ O6 v Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
$ L5 ]2 \: F4 t) ` Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
6 x4 r5 w0 l! g$ c2 P Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号): W) ]2 u# U# D) y1 W/ H
Lon=Lon_ini(Lon_start_No:Lon_end_No);! T9 B6 O' {7 r3 Q4 P
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的4 l* h! C1 w0 o* s
clear Lat_ini;clear Lon_ini;%回收内存
$ S3 _% s5 c; M Lat=double(Lat);Lon=double(Lon);%双精度化+ ?5 s3 o+ e2 q6 \6 m5 S( q% E
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];; X- k. k! h$ ~( I, q1 Q4 |
Time=9%输入时间,注意三小时的倍数
* W9 F P: @% [8 X: w- ` Time_No=Time/3+1;
% p% A5 E* I; T& t- j# p+ `. n0 z %截取数据并降维度( Y, q- O( u7 p
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
j; n* l( }& e" j1 t( K Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
8 O/ [3 I! p% u* ~' v: G6 l6 A clear Sp_Re;toc;%清除不再使用的变量 x. R8 F/ I8 I3 x6 q$ Y
%%
4 b1 ~! h! I2 {, I %第四步:绘图
: V1 x$ c" N( P/ q1 ^0 n- ]2 K1 W tic;figure;
( o$ A0 L$ M1 X# W. e- T# ` m_proj(mercator,lat,latlim,lon,lonlim);5 w. {( Q; V: S, D
[longrid,latgrid]=meshgrid(Lon,Lat);, @4 c+ n8 G2 {7 v" F" e$ _/ x/ {
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf& {- |) _% ^: G) Q6 i# H
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f6 y* k+ d2 C2 N+ a4 T
m_grid(box,fancy,tickdir,in);%网格化
# W5 z4 J# D6 ^6 S$ V! Z %brighten(.5);%亮化
- b- m% t& U7 E: m; r$ _ colormap(hsv);
- a- z- h3 m$ l h = colorbar(h);%色标2 f% R' c! E: ^% v. i
h.Label.String = W·m^{-2}+ k* Q$ J+ [4 k: |7 x3 g
h.Location = eastoutside;%色标位置
, {9 M6 w, v7 G1 r0 \ title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...* J2 }" f6 R7 t' ?4 K T. ^
FontName,黑体,fontsize,12,FontWeight,"bold") %标题
3 q: L, K9 _( r- v xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
) a @! _3 a; `5 j( S. { toc;! G, ~2 L4 K; |# O. d6 N( t0 l( l
6 X& l. {- g- o W V! p. ^% V 附上另外俩残次品绘图结果,数据来源:IOCADS ! |. C! M, W2 q ^9 N$ B
" w0 v, w$ B: n, F; Y3 F0 V
; x- Z3 R: f7 E# O" w: U+ S: `, S. ]1 S
6 F5 ~# y# ~+ q0 Q, k6 J) t
; }$ l* R1 V L y4 d. M
0 @ l7 z0 s3 p( D5 `# y2 l |