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

Matlab海洋绘图:海面热通量分布——以南海为例 - 海洋地质热流测量

[复制链接]
& g5 Z- W7 ]. N) ]# v4 _

图片赏析

4 u* v; A. ]8 k4 O- C) N( Z) }) ?( K
7 L2 T0 O' C6 O' {
+ d+ v5 B4 F N5 h! l& a% H, E' C

D, x4 x& Z! Z2 V! D

前言

# y- m9 x3 o0 ^- H- ^9 S0 @

4 h E/ O' b, V: v! s

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

6 `, B/ p& ?: g! w7 c$ c4 K

数据来源:

( ?1 c8 X" E/ G) h8 V; z6 M* h ) G2 d1 s |- I

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

, t2 d' }8 `! }! z

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

1 V% u. ]% {, ]* \) K3 Z6 H5 Q

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

?3 c0 L c1 }, [9 k+ C

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

% b7 h/ s% n& {

空间精度:0.25°

3 ~! d/ b5 g/ q# }1 c- n

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

/ q/ h+ G0 }1 N' R/ w1 T

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

7 z* f$ V0 N, @/ R* {* K

源代码

5 l+ u! N7 [: F& y: A8 @. ]
%南海1998年12月31日某时的海面热通量数据及分布图 s0 s0 I5 F" a6 H7 \0 X %%1 H% o" d9 P8 x: W+ a/ N. I+ e# m %第一步:数据的展示 5 \& b8 Q; w7 J* j1 N5 `# c9 j tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址2 I4 `! M# }# b filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名3 z# j6 C8 u! W- ^! m8 h abs_path=fullfile(Path,filename);%合并,绝对路径文件$ p/ f2 m9 m. q clearvars -except abs_path;%清除除了abs_path以外所有变量 * E0 {3 j" y' @& I% W; g ^ ncdisp(abs_path);%读取所选文件# P. o* v( q& L- g" T# y4 r4 ?0 } whos;toc;! S7 n- O% C$ B; W %% % t3 D" `- O0 X- D+ H3 o! z- x* M7 G1 X %第二步:数据读取 $ j, _+ v/ G% c; x1 A5 S5 ^. y tic;Lat_ini=ncread(abs_path,lat);( M8 c* {; Q$ W' i2 l* {) O* c Lon_ini=ncread(abs_path,lon); & W4 u- {" e1 P" l/ F& g Time_ini=ncread(abs_path,time); * a: b n3 U8 h* O4 u5 \ Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); # u& f3 n) ~ }9 y Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); : [) g! |* Y$ I" F' @$ x4 L# U4 N toc;clear abs_path; 6 x" _/ c2 x8 Z! `9 B/ | %%! ~% V2 `6 Q9 `! ^ %第三步:确定边界/截取数据 8 y2 m1 M& d* B" I( s %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°% a) Y8 ?* V" _8 f0 x# O tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序. j' G3 |6 y& P3 V* R Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 # g" w W5 A5 O. Q, d! s Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)2 x g9 Y5 A6 G8 t, l Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)5 b4 g6 E/ }+ z) K: Z( n- W9 c, o0 x, L Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) 9 d* @1 X% U8 `: [ Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) 5 w; \7 w% y! R# G: X Lon=Lon_ini(Lon_start_No:Lon_end_No); , r. O% g% G, ]0 P- M/ K2 A/ G) [: | Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 : v' d1 ? [$ t- l( }: m. n clear Lat_ini;clear Lon_ini;%回收内存7 Q; W+ r( N- F/ }7 x Lat=double(Lat);Lon=double(Lon);%双精度化& V5 o7 z2 ?& G1 A' K6 q latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];6 S" F) r% A4 }- k. ^' t; j! \ Time=9%输入时间,注意三小时的倍数 9 w: Y* H" N. F8 j9 _, u: S Time_No=Time/3+1; * b9 W; c/ k p0 P* ?4 ^ %截取数据并降维度 5 h; R0 V- m& A. i# j Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 9 h: l, g ^ G+ k$ r Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的! O5 X! I& T* {) ~8 H \ clear Sp_Re;toc;%清除不再使用的变量 % {- i5 V3 b6 g2 R %%8 Z% G5 R5 _4 n %第四步:绘图, b5 p* f3 K- }# C; l$ l- ^ tic;figure; l! t6 _2 V. c2 o' y& M! `/ S' w m_proj(mercator,lat,latlim,lon,lonlim);9 r0 t' d; R# F3 Z [longrid,latgrid]=meshgrid(Lon,Lat); 9 d. g; a- z; y1 A& g' ~' b m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf 3 }' Z2 M, R, U& | tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f ; y, y5 o1 s; V( m m_grid(box,fancy,tickdir,in);%网格化 G: w6 P' u* Q2 a. Y& z2 b3 ? %brighten(.5);%亮化1 g) v9 Y' m' {) {0 ?: x0 q- D4 ^ colormap(hsv); + o$ P3 ?; i% e) E h = colorbar(h);%色标 1 b7 i ~3 {6 l6 t h.Label.String = W·m^{-2} 6 N* W& `& H& _# ^- N2 ~1 ? E* H h.Location = eastoutside;%色标位置6 q4 F. h0 ?6 }: ~& f title([1998年12月31日,num2str(Time),:00,南海海面感热通量],.../ l) N# A, d: V, p, M# V, w6 [ FontName,黑体,fontsize,12,FontWeight,"bold") %标题 " P8 [1 o1 A7 v5 U: ^ xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);6 D$ I$ Y% E! W% x+ ~. \) [ toc; % j( D0 L$ r. N: V
2 G% D5 a a1 S% N# Y

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

( o8 z( I: A! M# v
. m+ o N) r, S7 @3 T
/ B4 F. ^) g6 r, x# P+ J 8 V4 d% y! t* [- y% w8 p0 S 4 q2 k1 q* c: N+ d$ \: y1 B3 g) z, [# D: Q3 f & ~! \' L8 P" E/ g N) i4 q* ^3 _; j
回复

举报 使用道具

相关帖子

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