找回密码
 注册
关于网站域名变更的通知
查看: 2818|回复: 1
打印 上一主题 下一主题

Matlab全球风场图—以ERA5、NCEP和ECMWF再分析数据为例

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-3-3 09:50 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
9 g. k* ^8 O% z1 Q
一、matlab读取NCEP再分析数据并绘制风场
; \" L2 g. D2 u2 V) y5 O
, T4 g% j$ R  o%该程序用于求水汽通量散度- p: B2 D8 w: A# x1 ?- {
%注意!我们这里读到的u是四维矩阵,分别是lon*lat*level*time,
; m3 ^. ^) A2 A6 M/ z7 Yclc;clear;close all
+ ]. @9 J7 |# b# t# jf_hgt = 'ps_level_20170121_0130.nc';# ]% ?  ^$ f6 d, F1 B' z7 m0 U
% ncdisp(f_hgt);6 R# v) w7 }' L& P7 L7 h9 Z
time=ncread(f_hgt,'time');7 @4 U& _8 W5 m% Y& n$ p0 |% _
level=ncread(f_hgt,'level');
& W0 b" Y2 J' elon=ncread(f_hgt,'longitude');8 y. R/ c+ `; x* _4 S
lat=ncread(f_hgt,'latitude');, T/ P; h1 a  Y$ S" ]
%%%%%%时间转换  ]; \& Q% c% `/ h, f
time  = double(time);
, @+ v; f% a1 q6 G! W/ I5 Vformat = 'mm dd, yyyy HH:MM:SS.FFF AM';%转换格式
' G7 W$ l5 _/ c7 G& j* Bdstr = datestr((datenum('1900-01-01') + time./24),format);%转换后时间字符串存储
, {% s% f# t4 q6 f# e/ c$ e/ ITM = datevec(dstr);%将时间字符数组转化为数值数组
! ?: k# D0 }6 Wtidx=find(TM(:,2)==1 & TM(:,3)==28 & TM(:,4)==00);%筛选7月25日08时(世界时加8)
  b: i1 i8 _& j! vps_lev=find(level ==850);%%删选出850hPa高度3 i! m+ K4 D# M- c3 ~
start=[1,1,ps_lev,tidx];%所指定变量的每一维的开始读取的位置
% Q& S0 b# q* K1 F6 W' x7 I& rcount=[41,31,1,1];%从start指定的开始位置算起,一共读取的每一维要素的数目
$ U3 J3 V) D2 |- xstrip=[1,1,1,1];%从start开始,每一维读取的数目为count时,每一维的读取的步长
5 G0 T# T' Z' P' z$ I4 G. x- {) \* Y, phgt=ncread(f_hgt,'z',start,count,strip);%读取温度值,单位K
0 S. S; C& y0 P1 A! v5 o, Eu=ncread(f_hgt,'u',start,count,strip);%读取温度值,单位K. y% s$ h! E3 Y' W% O$ R* R& |
v=ncread(f_hgt,'v',start,count,strip);%读取温度值,单位K9 @, w! W$ Q5 \" P
[X,Y]=meshgrid(lon,lat);
* v: c( A8 C8 ?( p& V4 y: afigure(1)
6 k( ^8 j; \) y7 I! F7 k% Q; im_proj('Mercator','lat',[25,35],'lon',[100,115]);) B) n5 x# i& Q: K' A
% m_grid('linestyle','none','tickdir','out','fontsize',12,'fontname','Times New Roman');
4 ~1 d2 J. v6 O- Bm_grid('linestyle','none','box','fancy','fontsize',11,'tickdir','in','xtick',[100:3:115],'ytick',[25:2:35]);2 [: }8 }: c5 H. ~* q) ?! d6 c
hold on
0 ^# ^9 D2 A- J! T5 _; N: D- Qm_windbarb(X',Y',u,v,'color','k')
$ B2 ]0 Q! }6 w- s/ y: v* K%m_coast('patch',[.9 .9 .9],'edgecolor','none');
0 ?4 @- D* z. l[C,h]=m_contour(X',Y',hgt/10 ,'color','k','LineWidth',1);%[5000:80:5900]%[1520:25:1680]5 i$ |7 Z( o) N* Q* p
%set(b,'ShowText','on','TextStep',get(b,'LevelStep'),'fontsize',12,'fontname','Times New Roman');   %在等高线上叠加数值(文后详情)
; ?' i$ F. U9 v' I9 Gclabel(C,h,'FontSize',13,'fontname','Times New Roman');; t; N' S. [0 b5 i) C
ma=shaperead('F:/RMeteoInfo/data/map/bou2_4l.shp');
# ]# t1 N( u, v' o( X; W% m_line( [ma(:).X], [ma(:).Y],'color',[0.5,0.5,0.5]);%绘制范围内的地图2 H/ [( W) s3 c
m_line([ma(:).X],[ma(:).Y],'color','r');%绘制范围内的地图6 [% h! O" `2 |
m_plot(105.5,29.43,'marker','^','MarkerSize',7,'color','k','MarkeRFaceColor','k')
, a+ M! e  p( _* U/ ]3 ~3 V) i6 x$ \9 X

  G3 s- b  J' D! c' d" i% ?/ T6 |' o$ s3 |

& g9 l4 r7 a. g二、matlab读取ERA5并绘制全球风场图
: p/ N! n. h4 S& o* \" L  D5 D) N5 q* }
clc;clear;close all
& u3 c0 j/ a$ H" yu0=ncread('202008muwind.nc','uas');    %读取其中一项+ }+ ]6 k- }, t- `$ Q
v0=ncread('202008mvwind.nc','vas');
3 j% m( `0 R* W3 D0 F* e5 ?1 Etime0=ncread('202008muwind.nc','time');. v/ A1 {7 v( d: l4 t; W  O7 m; e
lat0=ncread('202008muwind.nc','lat');1 o0 B; ]5 z" \7 L
lon0=ncread('202008muwind.nc','lon');      
# x3 L: y) d$ M; [[lat,lon]=meshgrid(lat0,lon0);4 {: K. a5 Y1 [" h# P$ R
u=u0(:,:,2);# G! q% s% _, r/ d# A# u0 s
v=v0(:,:,2);
4 [# M' m$ L6 F) }" ~( Mb=sqrt(u.^2+v.^2);6 _6 B6 j7 X) Q$ n3 p
figure(1);
0 |: ^2 ^  T/ |8 }$ M# Z' Gm_proj('Equidistant Cylindrical','long',[-180 180],'lat',[-90 90]);%矩形投影;取区域观察
1 z& C7 J# ~0 T9 ^0 y* q[lon1,lat1]=meshgrid([-180:2.5:179.75],[-90:2.5:90]);
; Q8 f- S* u1 Z8 J4 z5 C/ d& Zu2=u(1:10:end,1:10:end)';- h) }% K) S/ _- n4 f; ^$ o
% u3=[u2,u2(:,end)];
5 x5 m) K# ]) g% T5 Ev2=v(1:gap:end,1:gap:end)';+ z1 }4 u; L( W6 K
% v3=[v2,v2(:,end)];  y" d! H. x6 U
m_quiver(lon1,lat1,u2,v2,0);
. Z+ d( F( i" n) s8 V# phold off; o, K) m( G5 z5 n+ N& {( }9 V
m_coast('patch',[1 .85 .7]);
  ^9 |; x6 P. hm_grid('box','on','tickdir','out');# f$ @) y5 R, Z8 Y: c- I, |: d  m

3 `3 z$ A4 x  v& L6 Z
. Q6 t7 u* K$ U  F$ Q  M+ p7 R% A4 [/ q; L3 R; c0 g! u
( j0 N# R% M( ~3 j9 O

5 F% _6 |8 D6 `3 k$ Q( ~9 ~m_contourf(lon,lat,b);%在mmap基础上的画
& N8 T( D  ^; |; X  Tshading interp;%使数据插值5 Z- U% E8 n; u0 w
hold on;6 L8 [/ y* }0 z3 a6 `, T
m_quiver(lon1,lat1,u2,v2,0);
. Z$ j$ x' j  E, l7 ohold off;; e5 e/ y+ }  w6 R- ?

3 G4 U- I1 K9 P- t% u1 t 0 T, \  g( T2 Y  a/ u8 E

7 e; v7 ~- X8 `- z& H. C; R2 ^  m& v
5 t( H2 G0 F( d
m_quiver(lon1,lat1,u2,v2,0);4 T1 }: O2 \# {

2 C+ y" z" c* \  ^0 {
. q1 C; Q0 Z3 v* v" @- E5 b, ^
$ x, _) w( i/ H0 `. X! X% V- m# h# t6 `6 ]8 \- V
9 l( M% z5 \: J( f0 }# X# F# I, V  I8 Y6 v
m_contourf(lon,lat,b,500,'linestyle','none')   %在mmap基础上的画/ T% o: L+ x# ~% p3 J, q
shading interp;  %使数据插值1 I5 T/ r  u+ F

, Z' s$ Z4 ~3 y3 h. D& E% K4 X9 n9 d2 q! t$ _# x

- g% u- K0 F8 U. o8 J0 s$ g* @" ^
' Z$ _2 L1 e8 x$ M) ]7 O( ~& P

该用户从未签到

2#
发表于 2021-3-3 10:52 | 只看该作者
Matlab全球风场图—以ERA5、NCEP和ECMWF再分析数据为例
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 13:03 , Processed in 0.156250 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表