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

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

[复制链接]
1 `; F3 n9 T$ I! r0 Y. A9 D

图片赏析

. d3 c. F' U7 K6 m* l$ a( V* A
# _) H! y" Z) s `* b
. I0 f1 {! P+ a w

! r2 t1 P& q: a$ }$ | \2 |% z

前言

$ f( C/ G0 g6 R0 a z$ W; o* C! j" t0 {

Z2 \. n, \7 [- s1 C" T* Y3 y7 ^

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

+ Q: g5 N# S4 m9 l, F' [

数据来源:

; y2 ]3 a" V/ m/ ]5 i- b4 C) ] i $ e# N6 i ^9 ~0 P$ R% d

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

1 h; L0 \& C. p! X- s3 Y

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

$ h0 o# e1 C- e! I* y

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

( c1 Y; q" @6 Y; x6 z* j& G. j. d9 G

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

5 T0 C& G6 p6 d3 ], N

空间精度:0.25°

, r( R# l; {. C5 O; o: s: k

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

J9 E r- D' T( L8 ^3 a

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

% o& @9 X# r, T

源代码

4 j: f7 S& }4 J5 B7 V( t: Y7 t, s/ d
%南海1998年12月31日某时的海面热通量数据及分布图 D: x: K& W$ I" u' V& y %% 4 a' Q+ Q. E9 U1 K; z! Y, G %第一步:数据的展示1 u+ P2 @3 Y8 e8 F7 f8 P a tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 9 O$ W9 I2 i9 U$ @5 V filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 ( @' P% [) s# T4 a7 W& D abs_path=fullfile(Path,filename);%合并,绝对路径文件2 W3 t6 F1 l. X8 ? clearvars -except abs_path;%清除除了abs_path以外所有变量 p# W |( i1 J) U ncdisp(abs_path);%读取所选文件 6 c/ Q' J8 m) n5 c% D0 z whos;toc; 7 \, T9 l1 f* ?: m. R0 ` } %% ' T: r0 q+ r. g3 r %第二步:数据读取; ?- M; F! i8 \3 F$ K# y tic;Lat_ini=ncread(abs_path,lat); * U# ?* \; C3 K- l8 n! j2 ]9 x G3 f- M Lon_ini=ncread(abs_path,lon);3 m1 X0 [1 r" T1 V& B Time_ini=ncread(abs_path,time); 4 a* S% c, j0 W- n6 X, m( I Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);0 B" I7 J: q4 t7 G' M; f3 E( ^/ g' } Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);6 _8 j% a7 D P1 H3 K' e* S" x) E toc;clear abs_path; * n$ O( T% t; l8 ?2 l, L2 h; Q %% / F4 x5 U0 y7 j %第三步:确定边界/截取数据 v& K& T8 e5 z% T: |: u- J" I %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° , R5 T8 }, T4 F6 U; }2 r tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 ; y9 \4 K) p* z) Q Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 . d( T& J* w, z1 ]6 D Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)6 y) T2 V5 p( S/ ^" d' k" l Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) * E* S, @2 y( C i5 E! N Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号), G' u3 j# z3 F Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) $ n! t5 O' g+ z: K k Lon=Lon_ini(Lon_start_No:Lon_end_No);6 I, x! W# X3 m4 o4 G Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的( f/ w& Q- K5 f clear Lat_ini;clear Lon_ini;%回收内存3 ]0 }- _9 m4 M. C Lat=double(Lat);Lon=double(Lon);%双精度化# z' U0 {7 h+ z8 o% a8 u5 c4 B latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; ' [7 v5 q# R( |, y* M2 f Time=9%输入时间,注意三小时的倍数* s: v0 a! I, T, |; l; N Time_No=Time/3+1;7 H# H i" K' ~- } %截取数据并降维度* C/ B1 ^. S; D' r Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的. }( p! E( `0 k: w* a9 _& k Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的0 U3 W" l2 O1 S" M& B2 J clear Sp_Re;toc;%清除不再使用的变量 7 C! V9 l+ x0 x/ ]- X: Z) y %% : \2 z, c) Y( G) m: k1 K %第四步:绘图* X0 U( a/ d$ U tic;figure;2 o0 w# q L% Y' M' X' A m_proj(mercator,lat,latlim,lon,lonlim);5 b. g, N' z( ~- l9 I+ h [longrid,latgrid]=meshgrid(Lon,Lat);9 W: R# G* j4 e4 z+ M" t# [6 W! ] m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf7 k0 m" R( ?; }% B P/ [ tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f 9 v4 \3 K9 z3 b7 R4 S, a$ m5 Z" g/ Q m_grid(box,fancy,tickdir,in);%网格化 , B8 X t) J6 N9 y- g: m6 u- P %brighten(.5);%亮化 5 y/ P0 E1 O4 T7 I, u" ^' B( B' K colormap(hsv);7 F- w0 y% v# Z; }7 z$ v3 f h = colorbar(h);%色标, z" ]% \. T r, M5 _0 W h.Label.String = W·m^{-2} ; r) L+ L) Y6 G" {# N h.Location = eastoutside;%色标位置4 }; J! q( ~8 I- r& }3 ]$ |. G7 ^- X# z title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...- U5 V; p& P. L$ c1 W& v* c FontName,黑体,fontsize,12,FontWeight,"bold") %标题 ; z |" P7 n$ U, z3 _ xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); [9 c" _% e' Y9 y; ] toc; 2 h, y5 R3 ]* r2 X
: p3 E2 E K. `) K% i0 M9 }

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

9 j/ B, {7 F, D. u1 j) D
( F% B0 i5 o q6 U. U/ d9 L* A
+ R" L, ~ E- e2 P# S0 f) v8 A# C1 n/ K# O . q* w% y% H6 F. u! L) d) [. k6 W! w5 f& c) I& \ 6 B" j( H M& a4 T, p
回复

举报 使用道具

相关帖子

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