2 O$ d0 e5 V9 l/ P$ O4 o 图片赏析
! @3 E' A7 S3 u2 d2 B, t h : n f! u) q$ a5 b
+ W: g- n) L* T. ~
$ u* ?3 S6 q0 u7 @ 前言 / M; w$ B7 j, G! t! m4 w
. @* @4 L5 E f& c# c/ z 南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°
" `6 f Q, t; s0 y6 Y, Z 数据来源:
$ m" o0 n, W) ]" x/ D. `3 j# ~ m
3 I# S/ `" N1 r' N! b( I& N0 P 数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学 ) b) E! ^1 a% F" C$ h9 f! k
数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心
/ K! | ?3 g6 w7 W( e6 V 产品名称:Ocean Heat Fluxes海洋热通量
+ L" J, h+ l: ~9 H8 J0 P 时间精度:每日3-hourly记录
2 p( d5 v- g( W! i* v 空间精度:0.25° + a+ l$ A2 v% `5 ?1 f; |
注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map;
: A/ \# y1 Z! i [ 亦需调用gshhs高精度海岸线数据。
6 A1 F- f1 G1 L" I* ? 源代码$ \- I( x( s. Z+ c5 @0 V2 t7 ?
%南海1998年12月31日某时的海面热通量数据及分布图1 C. B& r+ s6 i4 V/ ]$ P# i- f# i
%%. J! S8 S+ I6 R Z( o% ]7 H
%第一步:数据的展示( }5 T3 K/ P9 q N* F
tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址( e4 S7 ?) i" t8 j, ]! R
filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名5 n+ F: n; k! }7 R* J
abs_path=fullfile(Path,filename);%合并,绝对路径文件
6 ?" ^% N6 H' n/ M+ c clearvars -except abs_path;%清除除了abs_path以外所有变量
6 H" a" i0 Q1 Y! C* | ncdisp(abs_path);%读取所选文件1 S2 b8 N! V8 G/ h
whos;toc;, j+ o) c+ D7 w. k7 k
%%
/ t; b+ B* z8 R: j) i %第二步:数据读取
: d& R" Q' h: E7 [! [2 [" f tic;Lat_ini=ncread(abs_path,lat);/ A3 D+ F& p/ Y" I9 k$ N
Lon_ini=ncread(abs_path,lon);1 S( i. |! N4 S T
Time_ini=ncread(abs_path,time);) `7 \+ D- ^$ z8 {
Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);
8 x8 j5 g9 U6 ~7 Y9 [0 i1 L Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);
6 A! d/ P/ h n, D; a* m) I0 ^* [ toc;clear abs_path;# W; r& ^! `5 ^' `4 T- Q. I% i
%%8 L" c1 G, \* G8 h" u9 A0 V
%第三步:确定边界/截取数据 [: P6 `9 g4 L3 x5 x
%空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°! O* [1 M$ [. Q
tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序; M+ W1 [4 G8 q* K# o
Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度
, w* U% Z! z: Y, @! |( w Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)
3 x- ~- I' v) @, P @: ~! I7 B. x Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)
" H. {6 n" v( O6 W4 l; @' Z- J& I2 X Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)
* z# Z; Z2 s, X8 s! r6 L4 X Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)- ^9 r5 U+ d1 o6 b6 s; m: Y
Lon=Lon_ini(Lon_start_No:Lon_end_No);% r3 N" y/ a8 P9 ~1 d/ N
Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的' W! @- f( v) i
clear Lat_ini;clear Lon_ini;%回收内存
4 c% ]. [ |6 y Lat=double(Lat);Lon=double(Lon);%双精度化* z! B7 R, {& q5 M' ~" a" j
latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];
! |2 T* b; a- t Time=9%输入时间,注意三小时的倍数& P: m) J0 Y$ v4 e/ f: @
Time_No=Time/3+1;
+ @, f% o# s1 w$ H& a+ ^ %截取数据并降维度
) _6 t( Q1 v7 P" f0 s Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的
/ M% u% ]3 D5 t8 a7 M5 ~ Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的- g2 s/ _# v" h0 c% s0 r
clear Sp_Re;toc;%清除不再使用的变量
5 N3 Y, ]: r9 a0 Z; R0 w1 m %%1 x! B1 w( i6 |
%第四步:绘图# d% E$ X" ^( x7 W: C* k
tic;figure;
' g# }3 L: H7 V; j2 e9 Y G m_proj(mercator,lat,latlim,lon,lonlim);
& I) o, T L0 s; v# I7 X7 W [longrid,latgrid]=meshgrid(Lon,Lat);
. H7 [2 P; S; T! X1 R$ ?& B+ S m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf
- N2 a0 |6 M3 b* ], ? tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f
" v& g5 _/ Q1 @, [, W& Z9 m m_grid(box,fancy,tickdir,in);%网格化
, A8 O- L2 w4 b9 ^* @, V" M2 I %brighten(.5);%亮化& U0 m5 j1 i* D+ z9 S& w
colormap(hsv);2 D' f! z1 C/ j3 _1 U3 R7 n
h = colorbar(h);%色标$ s7 h- ?$ _! G3 K4 U0 P
h.Label.String = W·m^{-2}" l1 B4 b( B2 {$ _( H: U4 G8 X
h.Location = eastoutside;%色标位置& N0 W9 c$ `3 V+ D
title([1998年12月31日,num2str(Time),:00,南海海面感热通量],.../ p& z4 u' _# [" ?5 R1 n: K
FontName,黑体,fontsize,12,FontWeight,"bold") %标题6 B0 o* \3 Y# L% ?6 R+ `
xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);
! O) A: S/ r/ B toc;
; j: ]1 R3 L/ _ ( R6 i9 R; O5 F- K' ?+ g% j
附上另外俩残次品绘图结果,数据来源:IOCADS , s- J" y1 p1 O, { B/ ?7 l! t
; Q* m$ s2 r- {; w( ^/ H3 [ 3 U, v/ w# e' @1 n
# _; ? S5 ` a) L- U+ k% b3 O3 w% d |
7 K! H3 }; j- M7 l* L2 f3 s6 Q4 p5 F% E1 n
! |& i" _( o6 j) W6 ` |