: H! B! [7 L j
图片赏析6 Q* @1 V5 a$ G! a& Y
' p* {2 @! H3 J9 l7 z; O) _
' p- h. C& h( K 6 a& i5 `/ r. ^/ _3 Y X
前言 8 x( V! I6 w+ U3 c, p
9 K) X8 y- T- S- U0 v( ] 南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° : l) |' ~* J! c; Z( f3 I7 g
数据来源: ! \4 B; ^' f5 [3 [- C+ {
c# e6 ^; f5 r; y% G
数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
: R0 I7 M% G3 X$ a 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心 # i2 b2 L8 U9 ~( y" R
产品名称:Ocean Heat Fluxes海洋热通量 & v U; R' Q1 d% s% R) f
时间精度:每日3-hourly记录 3 a7 a n7 f" i- i/ L; H
空间精度:0.25° * {" B- w; m; A% v
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; : x! _# ]4 b" k' g$ O
亦需调用gshhs高精度海岸线数据。 " A$ V) e& G& k6 g8 P/ t# b1 F$ s
源代码. N Q9 `( k6 H" H, T7 n
%南海1998年12月31日某时的海面热通量数据及分布图3 ]( d. T7 c4 h; f( x' Q& J
%%
5 ], z8 x( b, r- t8 `4 L %第一步:数据的展示' ^$ I1 Q, c& {/ R
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址3 J2 Z: f% P* z% v3 b% I# b
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名
0 f% b( X9 @! }. U7 ^4 T; c abs_path=fullfile(Path,filename);%合并,绝对路径文件
$ ]# v2 l3 l+ q; ]2 y! g4 d clearvars -except abs_path;%清除除了abs_path以外所有变量
7 ]0 H; |: n- F4 | ncdisp(abs_path);%读取所选文件
; \6 U! S u# B whos;toc;
8 ?% ` Y7 y# i8 ?3 ^# T; Z0 q3 } %% - z" G! G/ C& G1 `
%第二步:数据读取
4 V0 W& e7 m( O" ~. R q \ tic;Lat_ini=ncread(abs_path,lat);
3 Z( c! c1 S7 Z) z; l) D" N6 x+ z Lon_ini=ncread(abs_path,lon);# t% K4 \+ H6 n: n' ~6 Y
Time_ini=ncread(abs_path,time);: W0 C4 k, t& [5 V0 ~
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
6 ]. b. q# ^! l Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);6 c, O y3 s4 w5 l, k7 x
toc;clear abs_path;6 H0 l6 C- ^4 P; X
%%" X3 l+ w2 s' y4 z3 L; z+ v
%第三步:确定边界/截取数据$ X' S" _0 G1 _9 a8 ~2 Y* T4 f
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°4 K6 M% _) t) X1 h
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序
8 n8 i6 w8 Q) G* w; _+ \4 [ Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度; s' Q( S+ ^' C
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号), V/ X4 e4 L. z4 X
Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)4 Z* ?, E! R2 C
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)- Z* u" L% N1 F2 i: f
Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)
! M: u# ], q7 _7 D% k" J Lon=Lon_ini(Lon_start_No:Lon_end_No);$ {, p% h/ ^+ {4 O- H( w2 ^2 j
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的
& ~# D! L, U' k; U" i( P clear Lat_ini;clear Lon_ini;%回收内存
. N; P# O. U$ ^9 Y5 L$ C+ L# w$ x Lat=double(Lat);Lon=double(Lon);%双精度化
2 \, R6 i- @2 a: t latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
( n9 i9 `% h" N# z% p Time=9%输入时间,注意三小时的倍数
4 w8 F/ x" j- \8 S+ y* e0 k Time_No=Time/3+1;
. [/ r* [* F4 e! b! W* O5 q %截取数据并降维度$ _0 s B& I3 S* F: Q7 q* G
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的. ^! f3 \" }- s- s% e% z8 Y8 ~) ]
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 r9 e& C% O4 X7 u$ Y
clear Sp_Re;toc;%清除不再使用的变量
/ n- @; |" n$ y7 M %%
$ v' M! ^( R; A- [. K %第四步:绘图
6 V) C0 w$ n9 I5 K( q2 b% t tic;figure;
# _/ I$ ]$ q$ M0 Q" e m_proj(mercator,lat,latlim,lon,lonlim);
* E; I, D% N) {3 H7 U3 E9 T [longrid,latgrid]=meshgrid(Lon,Lat);3 B5 R- z Z5 u# J
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
; q; {. o% h; _ tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f9 d u+ _7 G2 i; X1 ^' j
m_grid(box,fancy,tickdir,in);%网格化
# d" }, Q& I6 d9 G1 L9 y! r1 s7 q %brighten(.5);%亮化- i( |4 V0 N) A6 P Z% K, F, l; _2 Y
colormap(hsv);- m9 d7 Y& [; ]) [
h = colorbar(h);%色标 c9 o2 O4 ^) a# `4 \# H X
h.Label.String = W·m^{-2}1 @+ U4 C" c! d) V4 D) O/ P
h.Location = eastoutside;%色标位置) Q6 ^) }6 W0 L& C
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...7 {% b+ W# \) e. I( t! Q/ g
FontName,黑体,fontsize,12,FontWeight,"bold") %标题& m+ l( g5 B- a$ j' ^! e
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
+ ], {; Z5 Y$ Z" o2 z- b4 A2 d toc;. f- {9 s! b* `5 P4 G2 h
5 I0 D1 K" C9 e/ z9 O7 S
附上另外俩残次品绘图结果,数据来源:IOCADS
, y3 M: T4 Y9 N- r0 V/ ] ?/ w! F6 o4 ~& {2 w
- g8 J+ k2 D7 e/ p2 v
8 s2 Y& ~# P- j, q0 Y
/ W. ?" C& _' N- ]. H: r! i. E
3 q- W7 ~7 G0 _2 z5 I' c
6 u* f2 y: Q! j7 A3 _ |