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

[复制链接]
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 `
回复

举报 使用道具

相关帖子

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