收藏本站 劰载中...网站公告 | 吾爱海洋论坛交流QQ群:835383472

Matlab海洋绘图:海面热通量分布——以南海为例

[复制链接]
* Z" M; P; c8 }4 |, D& C" E( E

图片赏析

8 J$ i: o' d* e$ m: \& z
1 H D) a5 B' J/ ]
& W6 [/ t, {+ {9 P

3 a' v2 }, q6 D! f) w1 {

前言

3 S& ^% n, i$ p! H

* S: ?/ j3 \( u; R0 M

南海的经纬度:南海范围北纬2°至北纬25° 东经104°至东经124°

6 I7 ^0 R2 S% b9 S

数据来源:

- h4 [: z# H0 J# A 7 O2 Y' {1 l5 [$ m

数据链接提供者:广东海洋大学海洋与气象学院海洋科学系纪同学

/ S1 s" D# O& @* w# a" J6 `& e

数据来源机构:NOAA美国国家海洋与大气管理局-NCDC环境信息国家中心

3 t( x- T4 a" K4 ?, i

产品名称:Ocean Heat Fluxes海洋热通量

0 F. R& ^' l8 V

时间精度:每日3-hourly记录

/ N# I7 k9 T& C' P: S8 F. N

空间精度:0.25°

9 t( Y" V* i M0 E# f2 N2 Y, T

注:本程序需调用UBC英属哥伦比亚大学Rich Pawlowicz 开发的程序包m_map

, q; v, _: p$ V9 B

亦需调用gshhs高精度海岸线数据。

7 s- c1 v( h/ d$ c) M" M. \

源代码

, I* P5 X% O: M3 b7 \
%南海1998年12月31日某时的海面热通量数据及分布图 7 k) `# ]5 v8 D %% ) R0 B# ^& \# y4 x2 v* D$ C- w %第一步:数据的展示. g( }4 B+ a; d3 r4 d9 l- l# T5 a tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 " K: u! S4 @4 i" p- x* e! q filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 ' g/ z* e$ x+ h" [2 }1 ~& | abs_path=fullfile(Path,filename);%合并,绝对路径文件 7 M9 [- p- q8 \5 P clearvars -except abs_path;%清除除了abs_path以外所有变量 6 y7 ?( Z6 t5 }9 y ncdisp(abs_path);%读取所选文件 4 H0 H* s/ n. v: ?( M9 K whos;toc;" l, s. e" l5 ~9 A( M% o %% 4 R$ U3 ~$ V7 X x %第二步:数据读取 1 a, `' m& P, J! |6 _ tic;Lat_ini=ncread(abs_path,lat);8 ~/ U- B* X9 F/ @ Lon_ini=ncread(abs_path,lon);! {4 D: j' O, |9 F# S7 S( f Time_ini=ncread(abs_path,time);" I! S0 z: ~/ G" }& z Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); 8 ]+ R5 M* p3 g Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); E4 G2 J3 t }/ p8 Y toc;clear abs_path; / \) X6 {; c2 R5 W! W7 i H$ a %%: O& E$ ~" c8 {2 j- ]! X, ~ %第三步:确定边界/截取数据. T+ B5 N" u$ L %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°* j6 i# {/ R7 B# S2 X7 G0 s) U tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序' j; U$ F- h) X! b Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 5 V! G$ ]* N5 b1 P3 O0 }- n4 Q3 ] Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) 5 A9 S5 R h/ ~* e# d Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号); h. S$ X. T6 }$ L9 q# W Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) 9 @ {3 l, b! d0 x4 K Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) 0 \4 l- u; }+ k$ j$ G% @& w Lon=Lon_ini(Lon_start_No:Lon_end_No); : H1 N& M7 v: \ Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的( e' F, B4 U% C" M9 n clear Lat_ini;clear Lon_ini;%回收内存 # a Y" {/ I8 F+ I; Q Lat=double(Lat);Lon=double(Lon);%双精度化9 @3 X/ Q: q# W3 E. _ latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; * I6 W; I5 V" R6 U+ w1 o3 ~ Time=9%输入时间,注意三小时的倍数 , V8 G3 `3 M4 r; T Time_No=Time/3+1; n. Y/ Q3 H7 ^ %截取数据并降维度. [% q3 O7 u r Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的0 ^3 R( a* u* l5 y t/ \3 O- d Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的. S% D$ a+ R2 C6 T9 z6 } clear Sp_Re;toc;%清除不再使用的变量& H* ?' R4 R3 m) ^; z$ p %%" u5 u" X5 L: Z U; B! m6 c) R %第四步:绘图; A) J# n7 e8 M4 z tic;figure;4 Q9 }. K8 ^5 Y& [) p& {6 w m_proj(mercator,lat,latlim,lon,lonlim);# ]& W$ R8 e5 R$ M [longrid,latgrid]=meshgrid(Lon,Lat); 4 O+ K! N0 X/ v% Z2 u/ B) v" g m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf ) |( T. t* a+ A, W9 [5 M0 Z1 S tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f : [# b+ x9 e, k% s: J2 k) e m_grid(box,fancy,tickdir,in);%网格化3 }2 W& h! B, a" o8 f. m %brighten(.5);%亮化 1 s: d& j' Y8 z+ l" w0 f$ q) L8 } colormap(hsv);4 A2 p) e( y; a h = colorbar(h);%色标4 \9 C2 E# i( O: d& g6 y h.Label.String = W·m^{-2} d9 s+ F3 p. x1 Y3 U h.Location = eastoutside;%色标位置 1 |. ?2 h9 \5 c title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... 0 x w7 T3 n) g+ W& \+ H FontName,黑体,fontsize,12,FontWeight,"bold") %标题1 D# {7 N3 |, w. O0 G7 _& Z xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);7 b7 f1 o' h/ r: W$ ^ toc;$ R" M/ U+ {! n5 p$ v
+ q7 P9 o+ ? k2 d- a( `0 J

附上另外俩残次品绘图结果,数据来源:IOCADS

% q8 G! ]5 c% |9 b3 P. C& h; H
3 F/ g9 [8 X" g& f5 h$ Z
& Y8 E+ G# M; i- g, ]: n/ i0 j2 I- Z% _$ Q8 _! _' t 1 A* W% e5 H( e" V 2 _2 a. I$ [ d/ R5 ^! f ; J5 I F1 r( N& v
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
恒厚
活跃在4 天前
快速回复 返回顶部 返回列表