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

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

[复制链接]
( } Z: M+ N2 ]4 x% f

图片赏析

, h1 [: n/ Y% V
9 w% A7 O! s- }1 ?, u9 W
+ W9 [3 U5 M' V4 M9 n0 C

& l; y6 s" I3 m6 S* D$ W

前言

# |3 }: Q5 Q* c

8 @' ]1 \5 B# u0 h( V

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

' P0 K$ l# S; t+ g* X# p( Y, v

数据来源:

; y7 p- M5 ?1 w" O Q6 k( H * B: ~% p; c& b

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

& S! T9 v1 L- U6 J7 g# }- g

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

8 k# f5 V$ `/ K) J

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

$ y( h# h. V4 _! F/ w

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

, e$ [0 J) G3 Q. e# ?# p

空间精度:0.25°

( H3 o, H' N* \% J' a

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

$ F' F# H" u0 m9 p$ H

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

" e- ?: E* _8 z) {6 Z

源代码

* W# w0 c/ S# ?& G) A' }
%南海1998年12月31日某时的海面热通量数据及分布图 2 q$ K# u6 l5 r# D1 H4 j6 s! R %%4 E7 h" h9 j0 {7 S %第一步:数据的展示( g1 g' H# o' |; e# J1 ? tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址9 P; a z2 D. J, O% Z$ q. D( C# F filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 ' s7 w% l% W$ p' x1 k _ abs_path=fullfile(Path,filename);%合并,绝对路径文件& d. y$ N8 M/ T, w3 S* [ clearvars -except abs_path;%清除除了abs_path以外所有变量 - f9 d) x" I9 F/ H$ a ncdisp(abs_path);%读取所选文件 % ?" R8 N8 z3 Z% g whos;toc;; }7 j+ k: |4 i6 b1 U, n) Y %% 4 M* |7 ~8 \" u# S% f& ] %第二步:数据读取 : p$ _9 C8 y4 |3 [ tic;Lat_ini=ncread(abs_path,lat);2 W7 u% P" q3 G: j Lon_ini=ncread(abs_path,lon);+ b0 C7 I5 _/ i& f" H" h Time_ini=ncread(abs_path,time); 4 d. Z; | S* E" E6 o Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);; }2 V2 L+ H+ S/ T! o; q4 n& K1 t Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);+ U" U6 Y& K/ w" v toc;clear abs_path;/ K5 R% p+ x- k %% + s1 n1 Y8 ^0 }: Q* ? %第三步:确定边界/截取数据; q4 T+ M% d9 p4 }0 u %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° - J) j; u, ` S tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序 ) n& y! ^5 T- d2 C& p$ @ Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 9 q" u/ q8 C, m* S Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)! B6 i: {, b/ b$ U8 }6 u0 a Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号) 0 g3 e+ I# J) I) M Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号)" P/ J% N, _+ h5 ?5 ~$ U/ L7 u Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)" c* C6 T* |& e( G' M, M3 l Lon=Lon_ini(Lon_start_No:Lon_end_No);- q4 I+ V! C( r Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的* _' ^4 A3 b5 I clear Lat_ini;clear Lon_ini;%回收内存 7 w8 A' i7 b& j% V" s: x$ t. h Lat=double(Lat);Lon=double(Lon);%双精度化 " S1 Y4 L% Z( ~, ~% o latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];* P8 a5 G5 c# O% _+ ] Time=9%输入时间,注意三小时的倍数 7 h W( y" `1 K7 j q Time_No=Time/3+1; 3 |; B. d2 |: p( E; R$ _ %截取数据并降维度, U2 Q/ \2 A$ i7 u9 F Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 1 b) T% J5 m Q# Z* S) Z Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的* T5 i; v! m9 k9 U; P clear Sp_Re;toc;%清除不再使用的变量0 a" \8 R& g) J$ c; {6 N %%" j0 q% w$ G+ c0 ^' Q1 M %第四步:绘图 6 k( n' ^1 H5 [9 _7 K0 D5 x tic;figure;# f* b; {( ^% `6 p2 g+ E m_proj(mercator,lat,latlim,lon,lonlim);5 Q) o6 i# W* S( E4 F) \, R' W- h [longrid,latgrid]=meshgrid(Lon,Lat); 9 p7 V" }4 ]( D" U m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf . m1 m' W G0 K: ?* F tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f7 ~1 w* l S5 \0 H! h m_grid(box,fancy,tickdir,in);%网格化1 c& q; n% R- E) J %brighten(.5);%亮化1 w4 J4 h8 g1 g- v colormap(hsv);9 l/ k( h4 I9 R3 ` h = colorbar(h);%色标) H" m1 `; A Q& v" I2 v9 t4 p h.Label.String = W·m^{-2}# x! y" [; B! a" J- O K1 m h.Location = eastoutside;%色标位置- w+ }4 o' E" ] title([1998年12月31日,num2str(Time),:00,南海海面感热通量],...0 l! g1 D6 o" i FontName,黑体,fontsize,12,FontWeight,"bold") %标题 - H* f) F3 R. J# W xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9); 5 M' ^0 }. L. \" R0 O$ w6 S( e4 ] toc; 9 }& n5 E( }& S+ F0 s; X: O$ |
D+ K* D9 y s

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

8 X9 U0 b, N. ]5 w" g t( [' U9 W
; }( l9 Z# C( a& L: a5 M3 {
$ t8 t, z0 s1 B 6 k! v& z+ n' x 2 | s: S" N7 D @$ S/ k8 z& p7 b& O7 h5 n1 N8 t . S9 W6 U6 }& V8 u/ o
回复

举报 使用道具

相关帖子

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