8 a7 ?; T% Z( m( d; l1 m 图片赏析
( H( q# C& o! I4 `! |
! x S& t" |4 P0 O
+ P% {6 W: e/ T# ~8 r
' I1 j& B/ Z) |* L3 A0 n2 R/ o 前言 ( B4 f' D/ r) a: A( g' j/ F
0 b+ S N8 d( o3 u- F: ~+ E$ c 南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124° , v+ X0 T3 R$ L) V+ g3 E) ?
数据来源: : Y# X( \0 ~7 Q: y+ T
9 o* Q, ~+ t8 d5 n6 O 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学
7 v5 E) S& F7 ?- G) F, x1 ] 数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心
( J( B8 o3 [& M2 P8 V8 u 产品名称:Ocean Heat Fluxes海洋热通量
1 J9 x8 F; N( [' Q 时间精度:每日3-hourly记录 4 o8 M! f9 v( A; k# K" b& e* q# E
空间精度:0.25°
% S$ T( u D; ] 注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map; 6 q& i+ d. `" f- z! i! N' _3 N) {. D
亦需调用gshhs高精度海岸线数据。
( ^3 V' e) x, J5 c8 I 源代码/ Z+ v$ i" N- M7 y
%南海1998年12月31日某时的海面热通量数据及分布图
! T. O* J& o2 R! @/ E4 { %%
* A- w7 T Z% R( @2 D7 Y9 ]% Q( z %第一步:数据的展示9 r J, e9 y8 b/ E8 t! r3 @- B
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址
8 d! v( l$ L y& a" c6 H6 i% u/ Z filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名% {- V: b$ V' x7 I! n
abs_path=fullfile(Path,filename);%合并,绝对路径文件
# q% M" i( }$ t4 {, B& U( c clearvars -except abs_path;%清除除了abs_path以外所有变量
- C7 g! L7 g6 B* f; O; g ncdisp(abs_path);%读取所选文件+ {1 N+ A+ `+ t l# M# l! K/ R
whos;toc;
/ i* O# b% X2 _2 U1 h# T9 E; O+ O %% 2 n! _2 y5 e; x& _
%第二步:数据读取9 d" V- D. n" L) [9 E: s
tic;Lat_ini=ncread(abs_path,lat);
( X! ]5 r6 o8 d) | D Lon_ini=ncread(abs_path,lon);
- k$ }& _- w4 C1 V& V* ?% I Time_ini=ncread(abs_path,time);6 X# g( }; R5 v3 q" S5 M# _' F
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
# w8 |; p8 R" u8 Z Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
. p i5 w4 f- V% e$ c3 j toc;clear abs_path;
& Z$ _) C: Q1 c+ h/ Q2 [ %%8 K* X! `$ C# E4 N0 E
%第三步:确定边界/截取数据% ?" r% {. c1 ~0 K! \
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°
7 F0 K9 T% ?9 L) a3 k tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序- y' W# h" P* q% ~
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度; g* m' L j% k$ a( p2 M
Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
& W2 e2 F0 ~$ I0 V Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)% c9 Q7 D4 W1 U) w
Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
! H4 v. n g5 ~1 i' t Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号); c" w* A! N O7 C6 a' y! U& X9 a
Lon=Lon_ini(Lon_start_No:Lon_end_No);
; f T/ l9 H0 C4 f! q6 c, D Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 r7 J5 v2 c* ?; C( ]8 n4 R6 d
clear Lat_ini;clear Lon_ini;%回收内存- X- {, `/ I2 C f
Lat=double(Lat);Lon=double(Lon);%双精度化( c7 q* G `# g" R) u
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];6 @( C$ G! Y0 n) y8 K6 U) ?
Time=9%输入时间,注意三小时的倍数
; f8 n5 P D0 N$ O Time_No=Time/3+1;3 Z# s6 Y c" e, J6 c( u% |
%截取数据并降维度0 m0 ~: w) ]2 G Z6 U. \
Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的) e0 M: u, ^0 b0 G1 z. u0 h
Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的+ r- q- _; t/ F% R
clear Sp_Re;toc;%清除不再使用的变量+ e; f4 I5 M. e
%%
0 _2 Z- ?1 E& d6 j% Y. Z %第四步:绘图
8 U% W% I8 h+ Z6 w/ E! z tic;figure;
. X5 p K- m/ e m_proj(mercator,lat,latlim,lon,lonlim);# x! c1 T- i* {$ T9 g6 [
[longrid,latgrid]=meshgrid(Lon,Lat);% x+ g% Z7 K) c9 n o3 `' G0 j0 _
m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf' f. `1 _2 {: ? P& M+ z% {1 ?
tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f# c$ E/ d8 d5 d) d1 Z# {/ a1 R6 `$ o: R
m_grid(box,fancy,tickdir,in);%网格化3 F# s9 _5 c" t" a
%brighten(.5);%亮化3 E2 I" f- H3 U! Y* ]) x+ l8 K% W
colormap(hsv);
3 E; d: y- @ W% O" I, J h = colorbar(h);%色标
( F d. c9 V2 B$ r! ]" Z, W' g# v h.Label.String = W·m^{-2}& A7 S# ~& l( S
h.Location = eastoutside;%色标位置
* B" ^; d( C& e: e title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...
$ `% i. [1 h# _7 v; V, N. R: E: v FontName,黑体,fontsize,12,FontWeight,"bold") %标题
* Y/ C- ?+ z0 h0 `+ ?' A: a xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);2 q: L8 G6 ^8 K
toc;
' n+ [9 o4 M U / M' A) Y* A5 {
附上另外俩残次品绘图结果,数据来源:IOCADS 0 U) |4 {' t" H) G/ t! g$ C
; o( f0 p% t/ {( N* j 0 U. C! U4 s2 @$ E' `$ J4 S/ u6 P
/ Q6 Z/ ?: |5 O5 {. O: I) b2 U) ^4 g! |. B! G; ~7 A
$ X- i& U" w, H6 S6 d) D( x
2 L- p! X( g8 S/ [2 j+ m |