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

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

[复制链接]
% K* X; R O5 _4 A+ z1 h/ v

图片赏析

+ A0 w; S. P- @' ?0 \8 g
1 L8 s5 S2 P" Z- r: S
! N0 u' r: Z( J0 s. ?6 A

& c; _3 n( w; Z7 p

前言

9 w* L! p! v$ {9 }4 x

# g- Z+ n8 J8 P3 b( k

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

0 S$ v# [' D! R5 [# S

数据来源:

3 ]7 Y# A$ j4 R1 r 9 X) W2 j# n/ z

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

2 I0 a6 S* P+ C# p! Z3 {2 j

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

: {" D- |0 [8 x4 D) F

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

6 [* l( V- S# m; N' ~# K

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

7 S) V, H8 Z' d

空间精度:0.25°

; c5 u, r( y& e0 W, B

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

# \0 C3 f9 K2 d( o

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

/ H5 W9 Q5 H( i

源代码

8 \1 C$ N* [7 U0 Q& U0 l; S+ {
%南海1998年12月31日某时的海面热通量数据及分布图 6 [7 g) w+ l7 @ %%& d) z4 [. d) r& S, j- J# g7 d %第一步:数据的展示 & [* @3 @0 \8 I1 ~8 J0 ^6 f tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 8 ?8 o' }" j( K8 a; o- e) u filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 {' f2 v! I: I; a abs_path=fullfile(Path,filename);%合并,绝对路径文件0 g. k" D! D2 s, D clearvars -except abs_path;%清除除了abs_path以外所有变量 6 Y' j. d( I3 g) V" H- l ncdisp(abs_path);%读取所选文件2 f/ C% j% j e, K& j: ]* p whos;toc; # F G+ L% E" h9 J5 a, l %% * W# p2 {" Z' x5 _- d) J" e %第二步:数据读取 6 u4 Q/ H. C1 y: z9 i tic;Lat_ini=ncread(abs_path,lat); 5 S8 \7 c2 }- m4 t- u @# r Lon_ini=ncread(abs_path,lon);* q k/ t! c4 l4 t$ m Time_ini=ncread(abs_path,time); % ?$ | H9 t% X Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); ' p6 V9 w, i& [" F1 E3 N" K Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);% H J4 V/ p' P# w2 V: c m toc;clear abs_path;: n0 v; J8 v1 D; U. Y; I %% w- q. i: o$ _! |3 f %第三步:确定边界/截取数据) n8 h& K& ]- M9 | %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°0 J" [* n7 n& n& s tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 / a# L: K1 o/ h6 h Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 / r) u: ]% u5 E Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)3 }" ~; E2 ]& h. i3 Z Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) 5 e: l! j7 ?- n. l2 t$ D; V- a Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) 9 J: S D. K4 \6 y/ g+ i5 a Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)) \4 }) m9 {: _$ F Lon=Lon_ini(Lon_start_No:Lon_end_No);9 ?$ G" A: p) p9 R7 t) f( o- U Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的) D; {7 ^% f% K, I clear Lat_ini;clear Lon_ini;%回收内存 " ?4 G7 q. s5 J) P0 M1 G x4 |1 b( _% p Lat=double(Lat);Lon=double(Lon);%双精度化5 e3 ?0 ?. |; N$ a. X latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; d. j5 @/ T; F* E# q+ e Time=9%输入时间,注意三小时的倍数3 P, C2 d8 F2 }5 O- ? Time_No=Time/3+1; 5 N" }# ], M, h" H8 C0 C, b %截取数据并降维度 X# S/ r1 v8 j/ k3 ` Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的/ e' P0 ]: d* D6 ^- F Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的, r3 A, k* K6 K, H/ p3 v/ J1 C* i: _ clear Sp_Re;toc;%清除不再使用的变量 ( w" j6 S2 U8 M$ g %%( \; y" v0 g" L1 v" o %第四步:绘图 + U Q7 |( k% E$ z, Y& t5 P# E tic;figure;: k- a1 l1 x, s8 g8 b m_proj(mercator,lat,latlim,lon,lonlim);0 M9 j; U! r! q* j [longrid,latgrid]=meshgrid(Lon,Lat); , W7 z/ t8 c, s& q) J- w m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf {9 K- i! |) B% q tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f* ?, Y) n$ |, ]& {$ T m_grid(box,fancy,tickdir,in);%网格化) I+ g+ F8 p8 m %brighten(.5);%亮化& _1 y7 x M% _% D1 G0 S# X colormap(hsv); 3 C0 i3 h+ ]0 n h = colorbar(h);%色标7 F9 \( t, d7 S. Y. d# { h.Label.String = W·m^{-2}+ M, H2 }! {2 f& d" ^: L' u: D/ J h.Location = eastoutside;%色标位置+ A4 a2 x# _0 U! N. } title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... ! ]4 T2 F/ X* z/ x FontName,黑体,fontsize,12,FontWeight,"bold") %标题 $ e9 p) G7 Y# V7 q# [6 P4 n xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);0 T, R( F. f g5 C toc; - j- x }! [6 }) A
8 O8 k: E; h( D& \5 v0 N' @

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

% f' a% x) }* f
* U7 O+ _/ U$ V( X! j$ {/ ? w4 _
- n5 T% u$ O4 Q$ g % S2 n1 r' Y7 \1 F: O3 u, T* A @ * A. l$ {' v3 d9 `: A2 k( x . G s& u8 Q2 ~6 _8 k$ ?
回复

举报 使用道具

相关帖子

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