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

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

[复制链接]
1 l7 U1 t/ G4 {6 c5 |

图片赏析

( s6 ?; M; I8 {0 q8 D; f) m
0 E$ B- [- z6 b: I' r h
s6 G, e, h) g& l

" F3 R# E) P2 U0 y) U3 e; t

前言

3 ^, x1 n( M. s& N4 A' W0 |

4 X w- }. H: p. _9 J [1 x4 D" A$ G, y

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

( N9 c6 i# A8 }$ o- I

数据来源:

+ ~4 }: N v, O) I" p 4 K+ z1 Z# L9 H: d4 j

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

5 O: ]" z! c" p" O, L' ?# C: M9 B

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

, x4 k' i! |5 T) w

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

& _0 J4 l& G$ B' l4 a

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

" W4 h% t' `/ G7 j8 N4 j/ r

空间精度:0.25°

+ q) a8 Y6 I; [/ h9 ?3 X4 l" O

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

6 \+ `" m! v! ~

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

5 I S6 d# @! k4 l2 V

源代码

# o. s. o; a6 n1 x
%南海1998年12月31日某时的海面热通量数据及分布图 % ^" G, m' f5 t% c %%% a6 R3 V/ N [. ]8 D9 O0 `; ~$ S %第一步:数据的展示 : W- p: D5 `; N( d- | tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 ( ^2 c4 _% W( ^" ~& X$ g7 W9 B filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 ; ]) I# M- m, y/ e, y) \4 Q abs_path=fullfile(Path,filename);%合并,绝对路径文件 4 o7 t6 S; z9 q. X5 H clearvars -except abs_path;%清除除了abs_path以外所有变量/ A3 E# N2 k- B ncdisp(abs_path);%读取所选文件) J" Q6 c+ ]) x. @ whos;toc; 0 ^+ ^* d F+ v( D %% 2 W" w0 Z5 Q# c- D9 d1 R5 p %第二步:数据读取 h* s" r7 c) M( W+ h5 a7 P tic;Lat_ini=ncread(abs_path,lat);. P0 P2 M8 N# W; C. u$ Z2 U Lon_ini=ncread(abs_path,lon);, X& @8 h( Y9 }' y Time_ini=ncread(abs_path,time);+ e/ |5 _* l' d' J% k5 m2 ?, F Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);7 m- c4 o. g- Q2 g1 i4 {( W& k Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);% Y9 n9 J' b8 @ toc;clear abs_path; 0 ^5 S" l3 u9 S %% " g9 K H/ f1 r9 Z7 m* _ %第三步:确定边界/截取数据 8 z1 ?$ j# r. D; k. J% H3 \# @ %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° ' ]6 O0 i/ x+ @0 U; B( A Y+ K5 U tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序2 q8 {6 p( ~" q5 t, @+ g Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 ; W. P0 Q' C# Z) o* ~ Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)+ \$ T1 a4 I0 ~ a+ [. `! ]" u Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) y; V6 C. ?6 ^8 o% N: n Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) ) L# V1 e3 y! O Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) $ q. H y* {6 T" g' i6 r5 v Lon=Lon_ini(Lon_start_No:Lon_end_No); * M+ k8 e/ [3 w5 }6 D: m# N: q/ m Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的0 J& ?1 K( B# a clear Lat_ini;clear Lon_ini;%回收内存 7 q( K# n0 F& Y) C6 Z Lat=double(Lat);Lon=double(Lon);%双精度化 ; G! g2 g/ q8 ^* v; l8 x l latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; % L: s1 f- f% G Time=9%输入时间,注意三小时的倍数& b- c& o; l5 h7 t' U Time_No=Time/3+1;+ T( w, A" ~0 }) Z+ g %截取数据并降维度 . Y) O; G/ B5 ]# e, k# B& y2 L Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 9 N8 q" M( ]' z4 e% B Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 - g1 E0 O1 O3 X7 q. p' s4 A! w clear Sp_Re;toc;%清除不再使用的变量 " F/ U' u e9 I) d, g4 } %%5 |1 W/ o; r( ~- j* i %第四步:绘图8 n& R) K: f5 {' E tic;figure;6 U4 I5 T( X% Q8 r m_proj(mercator,lat,latlim,lon,lonlim); t' w8 i$ \ Y: ]+ ]: m' U9 d1 {$ t [longrid,latgrid]=meshgrid(Lon,Lat);6 T: T7 M; G) D8 Q( e8 G* B% ~* d m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf& ~4 K; P* A r% g tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f2 u; U' |7 I. ]# D) ` m_grid(box,fancy,tickdir,in);%网格化: ~# I$ e; n$ T p) u8 o %brighten(.5);%亮化! I% F. _5 h) x5 Z colormap(hsv); 7 h& X& V1 U0 Z) |6 w* g5 N6 B% Z h = colorbar(h);%色标$ R' `+ U8 ~, m4 Q6 F h.Label.String = W·m^{-2}: Y( F% `" N! D2 Q h.Location = eastoutside;%色标位置 1 \; a* N; l$ e9 v1 Q% e title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...6 V1 x! s+ Q% F9 P( R! G FontName,黑体,fontsize,12,FontWeight,"bold") %标题9 q( Z8 [6 b1 Z4 ~. ?. c xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);8 z5 f! R7 F+ p r; p J toc;3 Q! c$ F/ ^# `. p# J2 I1 e" x8 e3 h
. s2 e& o" d6 D6 V. q# |

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

* h5 x: G. N7 |. r) `( L2 b: D8 M# v' X
- h: a$ H% q$ K5 |" `
/ a7 L6 K0 M' u8 ] 7 [& Y. g* [+ M# |; t6 u * A2 r0 D3 D, P9 v $ D. y. R6 ~; ?9 A) } j2 J# e3 X- [* S. K! @+ T" c: ^' }
回复

举报 使用道具

相关帖子

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