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

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

[复制链接]
/ G% D' r5 v# }$ b' j9 n8 i

图片赏析

! c* Y: c$ K. k1 z% p
. u) D# s7 I9 `7 p. c
% k6 m" O0 }; j) j Q4 z

+ F, u7 \ x$ O# t4 l2 E! S, X

前言

: |0 D; x; l' k" b6 w0 g3 B P) [6 z

$ Y/ E+ ~1 W! K) E: e1 Z6 Z0 S6 s8 J

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

0 X( d! u4 |/ C7 \: D4 V% u0 R, V

数据来源:

, u5 H" A8 ^' F- P3 x % h! z! v( [; S b, {5 ~

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

9 m' k3 \) @# F

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

7 O' P4 ?2 X* m4 [" @- B3 J9 k

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

* S/ e! U* {. ^+ @+ A* o) q6 F0 c

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

. P3 I! @ e$ x6 E; ~

空间精度:0.25°

7 h8 V% D2 O/ u2 _( [

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

# y% |) F) u0 i; r, q

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

& z0 {- D1 a8 N0 ]' l

源代码

7 N* J y, ?0 R. ?9 ]
%南海1998年12月31日某时的海面热通量数据及分布图; D: o' O. N" [; o5 J3 u %%; _; Q9 [5 b |* N+ f, V %第一步:数据的展示 + q/ a, n0 ?! b# q r1 L tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址% E; W, \2 ?4 u( Y) z* c filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名. ?' Q& }. L+ ]2 D7 a9 w1 J, _ abs_path=fullfile(Path,filename);%合并,绝对路径文件 # \- b4 O9 |7 a# A9 a1 B f clearvars -except abs_path;%清除除了abs_path以外所有变量 ( e4 k9 h2 A/ z# d$ ^9 K ncdisp(abs_path);%读取所选文件 % U" v' T F/ T, a/ |! } whos;toc; , U ` T0 f' ], p0 Y. P" f %% ; q, K2 m& n" l6 P! W %第二步:数据读取 ; q0 x! {6 ?: U5 ?. { tic;Lat_ini=ncread(abs_path,lat); ) V" {/ k( m3 M+ \2 u Lon_ini=ncread(abs_path,lon); 1 F0 z; \0 i" A0 I) j; t1 M4 t Time_ini=ncread(abs_path,time);7 y9 B. {' d/ s: u- o9 R9 x$ R Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);" C, t& y& C# }+ _5 |9 Y Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); 9 |/ Q8 n; c8 t r. d toc;clear abs_path; : Y7 N3 H1 G' j7 B" g %%& y- I5 G3 m8 I9 n %第三步:确定边界/截取数据 $ e$ v* v8 V& M* u, @ %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°3 A" r8 I! o; c( b- _ tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 1 ], A3 O8 c9 \! O Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度4 f' r/ ]6 }2 V" l8 B2 X* w: ] Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号), v6 ~5 Z! J: P$ v* ~8 B9 O r% C2 d Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号). s/ S2 f& \7 @ Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)4 s3 D4 o' f, u8 |- x, E Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号) 7 o# n, B2 V* @' _* }5 u Lon=Lon_ini(Lon_start_No:Lon_end_No); ) c; n1 y" Q# N+ g$ z: x! o Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的1 v0 l3 G( o0 _, \; Z8 t/ A; L clear Lat_ini;clear Lon_ini;%回收内存 $ }0 C6 a( U! _0 l: j o6 x+ ~7 W) @ Lat=double(Lat);Lon=double(Lon);%双精度化" C4 U, Q2 ^2 h, H3 u latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];! W/ b; A" p3 o0 |! z Time=9%输入时间,注意三小时的倍数# {; ]: t( w$ v: U7 M, G9 z Time_No=Time/3+1;$ R% b0 z9 ^2 b. V9 Y+ @ %截取数据并降维度 8 \5 \9 @+ {9 G8 g4 { Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 3 H$ {( x' L3 M6 V Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的/ ]8 @( l2 p3 Q X clear Sp_Re;toc;%清除不再使用的变量- z" t* J" b W% J6 x %%. h( ~7 L0 X9 G7 A %第四步:绘图7 ~: j w+ P$ d0 o tic;figure;4 Q1 l4 [; Z: u( w3 p: ? n* o m_proj(mercator,lat,latlim,lon,lonlim);0 Z2 q* E- N7 T+ \! r; U [longrid,latgrid]=meshgrid(Lon,Lat);# C$ ~' {+ S0 m! y m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf; n3 p2 d% N2 ^3 _- k8 C* v! D! C, }$ V2 ` tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f; ]# p, E# j W0 a m_grid(box,fancy,tickdir,in);%网格化 - c( |& y/ Y* m6 B %brighten(.5);%亮化8 ]5 I: X0 D! S+ K/ B5 ^ colormap(hsv);2 ?* w, i( M% D: N5 s1 B h = colorbar(h);%色标 ' }+ _1 O w5 A9 Z% i! g h.Label.String = W·m^{-2} 2 T6 \9 |' L3 W( U$ k+ R0 Z h.Location = eastoutside;%色标位置 6 P7 F8 `3 Z& A7 t: }! J) s0 x title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...8 a; j. w& t6 d" k/ |, R FontName,黑体,fontsize,12,FontWeight,"bold") %标题# @, ?( ~' d) g xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); 4 ~2 s, ^; q- Y' ]; [' T, u( y | toc; + ?3 _% s. a9 v) E
: c5 ^1 Q" F6 ?( ]" l" E9 i

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

0 d0 t7 y: G) v+ n- O$ L) I
3 U, }& K: X! s" V% q4 I: F
( d$ Z8 F" _( R' L1 g 1 z$ W/ ?0 l" q" Q ) U& E5 d% x) F1 I( ?! L( m% r) w9 X 2 x# H! o. S$ z& F* J1 t
回复

举报 使用道具

相关帖子

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