3 w' R( R. p* Q7 g' I0 J: b 图片赏析) k. [8 R6 S3 ?; [" ?1 c, r
+ D1 \; O m% {' T2 q2 `; L
; b' {* B2 f. V# D) L' |* E; X
- q2 T. V# I! X/ [. |( O
前言
" e# `2 z' b0 H+ X; i0 d9 N' \ * L' v% S7 c; w7 W' K+ h: ]0 T# K0 _
南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° ! T6 R& u! t1 W
数据来源:
/ o. g8 R5 E f
+ \/ J q; M9 P$ P# x8 i# Y 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 $ y y" w @; @: Y2 s) w3 [1 U8 V* n5 X
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 3 d" c" s& `! C
产品名称:Ocean Heat Fluxes海洋热通量
+ F r( z x {0 m 时间精度:每日3-hourly记录
$ u5 }# J l& g* I: n 空间精度:0.25° / z N' c* q( d3 c
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; " O, R1 `* U# N* W5 K. r
亦需调用gshhs高精度海岸线数据。
. b' V6 v& A, ]7 C 源代码# m' i3 n% ]- d5 E- h* o8 Q
%南海1998年12月31日某时的海面热通量数据及分布图% L8 v) r9 W5 N! m9 B
%%& |& I: ^* u/ q8 D& Q# H! G0 D. `% T
%第一步:数据的展示; ^* d2 P2 R L* b T' q) @
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
9 ]0 S" e+ Y8 m2 e. ` filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
/ o' n0 Y; ]$ R7 D0 ?: J abs_path=fullfile(Path,filename);%合并,绝对路径文件
+ A* c, e' |" L- T1 Q clearvars -except abs_path;%清除除了abs_path以外所有变量
. [& a5 d8 ] [% ?$ p ncdisp(abs_path);%读取所选文件
$ Y" Q& R' x& j" d whos;toc;
8 V0 `( [/ ^4 q- r3 C+ B: |- a %% " S# o; ?8 T& A- D% E# y' S" T
%第二步:数据读取
# N% y8 {9 i) H6 h5 A4 s! X j tic;Lat_ini=ncread(abs_path,lat);& `& Q" m0 f. D0 N7 F" k
Lon_ini=ncread(abs_path,lon);
# {' c* B) Q8 Q. V' i! }8 h) m Time_ini=ncread(abs_path,time);
0 N1 \7 `/ ]/ J* u5 D3 a7 s Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);2 {. c/ I: F9 B5 x2 N; q1 B& C
Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
( |. t. \$ W8 `' k r- |: P8 L toc;clear abs_path;, l+ w0 t$ `9 d# @) q1 A
%%& Y+ I( h: x v, V/ A0 _+ U
%第三步:确定边界/截取数据) Y$ c% D# B" F" k) _3 j
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
" N) F) G) }6 Y% B/ ` tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
( {. `( e2 ^) T( r- X# Y: W Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度+ i# {$ ^- l1 L) k X
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
9 t1 J7 l' q8 |+ _. S Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
' _$ ]: D7 k9 g q. K Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)" V& h+ w9 U, u4 L% y0 ^9 m7 R6 g- s
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)2 p- ^, {6 y! ?0 P/ J- a. E
Lon=Lon_ini(Lon_start_No:Lon_end_No);
( H& f1 L M4 A4 ~" W Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
% D) M7 ~9 E- f clear Lat_ini;clear Lon_ini;%回收内存
+ n; D+ A2 x; @2 b7 c3 m' s! R Lat=double(Lat);Lon=double(Lon);%双精度化8 i3 X p' o; o
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];7 Z; m+ G) N8 H0 D
Time=9%输入时间,注意三小时的倍数& O7 x" t) \) r" P' d# ^
Time_No=Time/3+1;
6 n( n6 T9 X- `) L1 Q5 I %截取数据并降维度/ v/ C" [5 b5 N- M4 L2 E9 F; ?2 P
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的1 }$ J; T4 e* }1 T' G
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
0 O, g! o+ M2 Z! d$ h; `8 R clear Sp_Re;toc;%清除不再使用的变量, {3 j3 E% x [) _5 w9 L
%%
2 b& u% d7 w% f% s9 Y, P. w$ T %第四步:绘图
4 n# M7 X7 N* d5 `7 X tic;figure;) f* s7 F1 Q: `9 r: \
m_proj(mercator,lat,latlim,lon,lonlim);
7 t+ I5 O& j8 f2 X5 U1 ^$ U [longrid,latgrid]=meshgrid(Lon,Lat);
! m, R5 e+ n) A) w7 j m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
. U/ v6 u/ K, d+ M f tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f$ l( B8 I" J- b% j4 o. N m K$ p/ w" C9 C
m_grid(box,fancy,tickdir,in);%网格化8 \. u" p- R7 O6 Z- n
%brighten(.5);%亮化
+ n1 a. t" Q( [# a# }. w colormap(hsv);
3 t. d- W/ F5 s1 F& ]- l2 @ h = colorbar(h);%色标( \4 g4 V/ p1 P6 X1 Z
h.Label.String = W·m^{-2}3 a2 ~ X1 I. t8 n2 Z1 ^2 U3 t) |
h.Location = eastoutside;%色标位置$ o3 b/ N" Q1 H7 u/ r* K B/ Q6 G
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
9 H# n4 w+ u1 t- r FontName,黑体,fontsize,12,FontWeight,"bold") %标题8 f2 H, n" D* N5 J' _
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
8 C9 s1 n* r/ Z$ S2 Q4 ~ toc;5 m6 d+ E0 {( i( }2 A) d& ^* ^- K
# J2 d% m# P, b. {0 h" [. R
附上另外俩残次品绘图结果,数据来源:IOCADS # ]( F8 U; j" e! q2 m1 N+ W+ [
. |8 n! |5 Z7 y8 b" G1 T, V3 e1 A2 q ! Y& c$ f5 @. E1 R
9 X- c9 B, [; ~4 a f
# t- W' l" g# k0 l6 h
4 e8 {. L( B$ t7 ` v6 X* i: R# l" X% Q7 p% Z
|