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

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

[复制链接]
m& b$ ?, m/ Z x* ~9 `/ p

图片赏析

3 ~4 Q2 V; y9 R) ~, U: H2 e k1 {
- {7 m% E6 \' ~, n
( M* B6 R% v4 Z! G

4 G" D1 o3 k9 ?" ~' L2 M& Q

前言

& w$ {" U1 W! r) H3 O

. u1 N/ ]; Q! g# c( h% ~# S) I

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

5 l- s# r7 k4 |: ?" p9 N* D) X& ?

数据来源:

% i$ C' `0 g5 r; z! ^7 ]9 h " e8 I8 |4 ?2 \- d4 g2 _

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

: C/ X0 c( `) s) W7 A& n, |! X$ q

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

% t8 y5 K3 w4 v0 G- R8 K

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

4 t2 \; ~! d% U& H2 G

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

& m1 P$ a" E/ _, E! ^" a

空间精度:0.25°

c5 u- x6 _' d/ @& r

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

n2 a- f: z8 ^' [

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

* [0 F( }# E& z" k. J ~

源代码

& b" E% T% Q' a7 s3 w% Q4 o
%南海1998年12月31日某时的海面热通量数据及分布图 0 W! B, Y; K a7 l% z %%# m' q1 {2 w5 g8 p %第一步:数据的展示5 X5 l. N7 v. a& ^ x8 ` tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址& `+ e/ J* P* q filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名 ' l) y P0 K ` abs_path=fullfile(Path,filename);%合并,绝对路径文件& f/ i3 A$ X; @6 ]; |& Y clearvars -except abs_path;%清除除了abs_path以外所有变量( v0 c" f0 m5 b1 V3 Q1 u3 @9 r8 W ncdisp(abs_path);%读取所选文件 * a% S9 p" G, C7 f! Y1 z. } whos;toc; $ v2 R& x$ r$ p; ^0 k8 g* J* N %% - j) Q& n$ a9 ~* t i+ W: I %第二步:数据读取* I7 ]; w1 [* ?* ~' y1 N tic;Lat_ini=ncread(abs_path,lat);: B0 y Y# k* c U0 H Lon_ini=ncread(abs_path,lon); # F/ h# J* s: b% t6 r2 _- _ Time_ini=ncread(abs_path,time); 4 s8 Y4 }3 w( Z& r# j Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux);1 C3 D& b. \( }" v Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux);9 Y( R# d7 S! g& _% F, \& C toc;clear abs_path;( i- o& F+ [. d- M( S3 [$ ~ %%. E( s. g4 S4 q %第三步:确定边界/截取数据) D# L" A( O+ n; o7 X* O %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124°' \, s$ Y7 w. r5 b9 U% r C tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序1 p# \( T! t' t Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度 6 O+ o% l- z, k1 H' o% x' s Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号)1 m( o* _+ s# U4 A6 I' j4 r/ z6 F% D Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)/ k1 l) i2 L6 O* a1 a3 W) C7 ` Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) ; I8 B- j- d9 R: w3 n Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号)1 u' C; ], M1 e3 F5 l/ z Lon=Lon_ini(Lon_start_No:Lon_end_No);2 N; F( k' T7 i7 N8 R5 | Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的7 i! {# D# |* O1 b9 O. ~9 ~ clear Lat_ini;clear Lon_ini;%回收内存 2 |' o& ]8 _8 U/ b1 T3 w2 C1 f: w$ G4 { Lat=double(Lat);Lon=double(Lon);%双精度化- l/ ?: P9 i$ B) s% K. ~ latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)]; 0 f/ i/ o9 u3 _/ p( x Time=9%输入时间,注意三小时的倍数2 O: U$ c6 M; f- g, G9 F Time_No=Time/3+1; 9 q7 n6 \# m/ g" B" {7 }9 L %截取数据并降维度 * ]9 L* ]0 t1 U- m# v) b$ O8 o6 C Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 5 N2 W/ [+ o- i# K' s Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的 . k* P) ~) R$ w" V. [& { clear Sp_Re;toc;%清除不再使用的变量 + E# `4 N3 G; l# z, w( }& p1 N+ T %%: J1 Q& V8 G4 O0 E: X' M %第四步:绘图% L0 q2 u5 q8 K% T0 x2 ~ tic;figure;3 F9 X7 x5 \' k8 I% s5 P, L m_proj(mercator,lat,latlim,lon,lonlim); ; Q, w* a9 |- ?+ g3 |, I [longrid,latgrid]=meshgrid(Lon,Lat);/ @# ^+ R4 a" E9 p% B# l4 m0 q m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf 4 @8 L4 j% Q! ?' F, U: {& c; p, M tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f. c. e1 B0 R$ Y1 \; I# d3 D m_grid(box,fancy,tickdir,in);%网格化& U# S3 t% k: }0 t, Y) h/ z %brighten(.5);%亮化 * t% i# ?. a' w8 e colormap(hsv); 3 O0 r+ {( f Z6 j3 i. L& {3 l1 d h = colorbar(h);%色标5 E, t8 @$ b) A1 _! ?4 y h.Label.String = W·m^{-2}: r* R+ e, q3 m, C( K8 ?+ v h.Location = eastoutside;%色标位置 ( s; N t- j/ Y/ u( ~: }/ [ title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... - N" y* _6 v' p! { FontName,黑体,fontsize,12,FontWeight,"bold") %标题 : ^1 T. k* x# A/ z0 d4 d- r xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);" @7 A* _8 D! L! h toc;* d1 {' p, ^- B8 x! x$ c
5 j+ `4 |' H$ M/ V

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

/ e2 D6 m4 q9 e9 x
2 k7 R+ l4 X2 o# X9 {+ I, c- ?
/ X6 t, A6 J M' ~; O / |6 R1 U. x+ O1 n# `1 [ 0 p! t9 L3 }8 s4 k! F6 l* C 8 Q3 @( u: }8 Q7 @+ `' c6 W8 X8 @* T/ G i! b* k
回复

举报 使用道具

相关帖子

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