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

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

[复制链接]
8 a7 ?; T% Z( m( d; l1 m

图片赏析

( H( q# C& o! I4 `! |
! x S& t" |4 P0 O
+ P% {6 W: e/ T# ~8 r

' I1 j& B/ Z) |* L3 A0 n2 R/ o

前言

( B4 f' D/ r) a: A( g' j/ F

0 b+ S N8 d( o3 u- F: ~+ E$ c

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

, v+ X0 T3 R$ L) V+ g3 E) ?

数据来源:

: Y# X( \0 ~7 Q: y+ T 9 o* Q, ~+ t8 d5 n6 O

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

7 v5 E) S& F7 ?- G) F, x1 ]

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

( J( B8 o3 [& M2 P8 V8 u

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

1 J9 x8 F; N( [' Q

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

4 o8 M! f9 v( A; k# K" b& e* q# E

空间精度:0.25°

% S$ T( u D; ]

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

6 q& i+ d. `" f- z! i! N' _3 N) {. D

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

( ^3 V' e) x, J5 c8 I

源代码

/ Z+ v$ i" N- M7 y
%南海1998年12月31日某时的海面热通量数据及分布图 ! T. O* J& o2 R! @/ E4 { %% * A- w7 T Z% R( @2 D7 Y9 ]% Q( z %第一步:数据的展示9 r J, e9 y8 b/ E8 t! r3 @- B tic;Path="E:\OneDrive - Inc\Share_science\NC文件\";%文件夹地址 8 d! v( l$ L y& a" c6 H6 i% u/ Z filename="SEAFLUX-OSB-CDR_V02R00_FLUX_D19981231_C20160824.nc";%文件名% {- V: b$ V' x7 I! n abs_path=fullfile(Path,filename);%合并,绝对路径文件 # q% M" i( }$ t4 {, B& U( c clearvars -except abs_path;%清除除了abs_path以外所有变量 - C7 g! L7 g6 B* f; O; g ncdisp(abs_path);%读取所选文件+ {1 N+ A+ `+ t l# M# l! K/ R whos;toc; / i* O# b% X2 _2 U1 h# T9 E; O+ O %% 2 n! _2 y5 e; x& _ %第二步:数据读取9 d" V- D. n" L) [9 E: s tic;Lat_ini=ncread(abs_path,lat); ( X! ]5 r6 o8 d) | D Lon_ini=ncread(abs_path,lon); - k$ }& _- w4 C1 V& V* ?% I Time_ini=ncread(abs_path,time);6 X# g( }; R5 v3 q" S5 M# _' F Lflx_ini=ncread(abs_path,surface_upward_latent_heat_flux); # w8 |; p8 R" u8 Z Sflx_ini=ncread(abs_path,surface_upward_sensible_heat_flux); . p i5 w4 f- V% e$ c3 j toc;clear abs_path; & Z$ _) C: Q1 c+ h/ Q2 [ %%8 K* X! `$ C# E4 N0 E %第三步:确定边界/截取数据% ?" r% {. c1 ~0 K! \ %空间边界:南海范围北纬2°至北纬25° 东经104°至东经124° 7 F0 K9 T% ?9 L) a3 k tic;Boundary=[104,124;2,25;]%修改范围[经度;纬度],注意顺序- y' W# h" P* q% ~ Spatial_Resolution=abs(Lat_ini(1)-Lat_ini(2));Sp_Re=Spatial_Resolution;%自动确定精度; g* m' L j% k$ a( p2 M Lon_start_No=find(Lon_ini-(Boundary(1))<=Sp_Re&Lon_ini-(Boundary(1))>=0);%找到离104°最近格点的编号(行号) & W2 e2 F0 ~$ I0 V Lon_end_No=find(Lon_ini-(Boundary(3))<=Sp_Re&Lon_ini-(Boundary(3))>=0);%找到离124°最近格点的编号(行号)% c9 Q7 D4 W1 U) w Lat_start_No=find(Lat_ini-(Boundary(2))<=Sp_Re&Lat_ini-(Boundary(2))>=0);%找到离2°最近格点的编号(行号) ! H4 v. n g5 ~1 i' t Lat_end_No=find(Lat_ini-(Boundary(4))<=Sp_Re&Lat_ini-(Boundary(4))>=0);%找到离25°最近格点的编号(行号); c" w* A! N O7 C6 a' y! U& X9 a Lon=Lon_ini(Lon_start_No:Lon_end_No); ; f T/ l9 H0 C4 f! q6 c, D Lat=Lat_ini(Lat_start_No:Lat_end_No);%北半球可能要颠倒一下编号,因为是从北极往赤道计数的 r7 J5 v2 c* ?; C( ]8 n4 R6 d clear Lat_ini;clear Lon_ini;%回收内存- X- {, `/ I2 C f Lat=double(Lat);Lon=double(Lon);%双精度化( c7 q* G `# g" R) u latlim=[min(Lat),max(Lat)];lonlim=[min(Lon),max(Lon)];6 @( C$ G! Y0 n) y8 K6 U) ? Time=9%输入时间,注意三小时的倍数 ; f8 n5 P D0 N$ O Time_No=Time/3+1;3 Z# s6 Y c" e, J6 c( u% | %截取数据并降维度0 m0 ~: w) ]2 G Z6 U. \ Lflx=squeeze(Lflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的) e0 M: u, ^0 b0 G1 z. u0 h Sflx=squeeze(Sflx_ini(Lon_start_No:Lon_end_No,Lat_start_No:Lat_end_No,Time_No));;%北半球有时可能要颠倒一下编号,因为是从北极往赤道计数的+ r- q- _; t/ F% R clear Sp_Re;toc;%清除不再使用的变量+ e; f4 I5 M. e %% 0 _2 Z- ?1 E& d6 j% Y. Z %第四步:绘图 8 U% W% I8 h+ Z6 w/ E! z tic;figure; . X5 p K- m/ e m_proj(mercator,lat,latlim,lon,lonlim);# x! c1 T- i* {$ T9 g6 [ [longrid,latgrid]=meshgrid(Lon,Lat);% x+ g% Z7 K) c9 n o3 `' G0 j0 _ m_pcolor(longrid,latgrid,Sflx); %pcolor或contourf' f. `1 _2 {: ? P& M+ z% {1 ? tic;m_gshhs_f(patch,k);toc;%添加海岸线:c<l<h<f# c$ E/ d8 d5 d) d1 Z# {/ a1 R6 `$ o: R m_grid(box,fancy,tickdir,in);%网格化3 F# s9 _5 c" t" a %brighten(.5);%亮化3 E2 I" f- H3 U! Y* ]) x+ l8 K% W colormap(hsv); 3 E; d: y- @ W% O" I, J h = colorbar(h);%色标 ( F d. c9 V2 B$ r! ]" Z, W' g# v h.Label.String = W·m^{-2}& A7 S# ~& l( S h.Location = eastoutside;%色标位置 * B" ^; d( C& e: e title([1998年12月31日,num2str(Time),:00,南海海面感热通量],... $ `% i. [1 h# _7 v; V, N. R: E: v FontName,黑体,fontsize,12,FontWeight,"bold") %标题 * Y/ C- ?+ z0 h0 `+ ?' A: a xlabel(Longitude);ylabel(Latitude) ;set(gca,fontsize,9);2 q: L8 G6 ^8 K toc; ' n+ [9 o4 M U
/ M' A) Y* A5 {

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

0 U) |4 {' t" H) G/ t! g$ C
; o( f0 p% t/ {( N* j
0 U. C! U4 s2 @$ E' `$ J4 S/ u6 P / Q6 Z/ ?: |5 O5 {. O: I) b2 U) ^4 g! |. B! G; ~7 A $ X- i& U" w, H6 S6 d) D( x 2 L- p! X( g8 S/ [2 j+ m
回复

举报 使用道具

相关帖子

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