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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

! Y1 J2 a& [. ], {5 i一、matlab读取NCEP再分析数据并绘制风场
# V8 J/ B2 [% |2 g3 a' a/ m1 t4 D
%该程序用于求水汽通量散度
/ T3 |: w1 y1 Y%注意!我们这里读到的u是四维矩阵,分别是lon*lat*level*time,6 v3 {9 d; ^0 R
clc;clear;close all8 W8 I' d% k% m- Z/ `. T" V
f_hgt = 'ps_level_20170121_0130.nc';/ a$ [# c! O' I, g
% ncdisp(f_hgt);5 D" r5 P. f0 x* N
time=ncread(f_hgt,'time');
1 C# C! h- z1 s& h4 d( Rlevel=ncread(f_hgt,'level');
/ y9 N# w. c7 Glon=ncread(f_hgt,'longitude');& m( X4 o# _2 y" [
lat=ncread(f_hgt,'latitude');' C& J3 v5 ]# ?5 L+ T- H
%%%%%%时间转换7 E0 q% M+ h6 ]9 T
time  = double(time);
7 @% i) E9 v) N; t/ @format = 'mm dd, yyyy HH:MM:SS.FFF AM';%转换格式
8 O7 T* _$ f* Xdstr = datestr((datenum('1900-01-01') + time./24),format);%转换后时间字符串存储
9 c) A) F& D5 T7 W1 n1 `TM = datevec(dstr);%将时间字符数组转化为数值数组
$ n$ k+ M1 g$ B( P5 y0 Dtidx=find(TM(:,2)==1 & TM(:,3)==28 & TM(:,4)==00);%筛选7月25日08时(世界时加8)
5 f. ~2 ^+ q4 @' w& b/ n, V' Aps_lev=find(level ==850);%%删选出850hPa高度1 q5 [0 z' [% J( L, a$ L
start=[1,1,ps_lev,tidx];%所指定变量的每一维的开始读取的位置
1 E  M" M* f3 U. l" J! Dcount=[41,31,1,1];%从start指定的开始位置算起,一共读取的每一维要素的数目& j* R' {0 Y; z) R
strip=[1,1,1,1];%从start开始,每一维读取的数目为count时,每一维的读取的步长
/ K& ?6 n6 C4 \2 k: K8 x  Ghgt=ncread(f_hgt,'z',start,count,strip);%读取温度值,单位K
( q$ p3 S  C* W7 ^1 Su=ncread(f_hgt,'u',start,count,strip);%读取温度值,单位K# ]+ i% w) u  y9 o
v=ncread(f_hgt,'v',start,count,strip);%读取温度值,单位K! o3 i4 l! ~! r/ O" u+ K
[X,Y]=meshgrid(lon,lat);
! ]4 Y6 b  e5 g9 Y  {( dfigure(1); ~. U- g5 c6 c- O$ _8 t6 t* o0 V8 d6 u
m_proj('Mercator','lat',[25,35],'lon',[100,115]);  g3 h1 L- Z! @% {- h; ]
% m_grid('linestyle','none','tickdir','out','fontsize',12,'fontname','Times New Roman');
3 ?' [6 [4 T+ ]5 s9 p! F) z- \m_grid('linestyle','none','box','fancy','fontsize',11,'tickdir','in','xtick',[100:3:115],'ytick',[25:2:35]);
9 F, F6 S" C6 E/ G) j; Ohold on& Y! L1 m) G% m6 P; j
m_windbarb(X',Y',u,v,'color','k')% U0 f1 `- L6 C* m3 [
%m_coast('patch',[.9 .9 .9],'edgecolor','none');
6 I7 o  S( o6 x2 A[C,h]=m_contour(X',Y',hgt/10 ,'color','k','LineWidth',1);%[5000:80:5900]%[1520:25:1680]
' M9 t- _# H# O%set(b,'ShowText','on','TextStep',get(b,'LevelStep'),'fontsize',12,'fontname','Times New Roman');   %在等高线上叠加数值(文后详情)
* V8 T2 S1 s. p  O3 uclabel(C,h,'FontSize',13,'fontname','Times New Roman');! M3 e6 L4 U8 L4 u
ma=shaperead('F:/RMeteoInfo/data/map/bou2_4l.shp');
9 \8 E$ |$ x6 @% Z, Z* B2 H% m_line( [ma(:).X], [ma(:).Y],'color',[0.5,0.5,0.5]);%绘制范围内的地图( b8 W1 Q0 g4 R0 t- \4 m' q
m_line([ma(:).X],[ma(:).Y],'color','r');%绘制范围内的地图
, s; d& Z3 j8 F, J4 X0 w& \5 Jm_plot(105.5,29.43,'marker','^','MarkerSize',7,'color','k','MarkeRFaceColor','k')! H& e5 I7 i9 f  ~" c/ K2 V

: O1 P; m$ z7 K7 `, C/ o 5 R# {% v; g! p4 a
; l% s( H) K4 V% T9 l" M

) X% L6 |/ [, U二、matlab读取ERA5并绘制全球风场图0 |; ]+ C0 m" e8 ?, c8 a

7 v$ |0 I7 s6 u6 z. o( iclc;clear;close all
+ o! [6 U0 A! y0 _$ Hu0=ncread('202008muwind.nc','uas');    %读取其中一项0 H% R6 n5 B+ y; ^
v0=ncread('202008mvwind.nc','vas');8 |! }- \* i# A+ j# ?" F9 y, r* c9 i
time0=ncread('202008muwind.nc','time');8 e4 ~6 P  m9 S, v, K
lat0=ncread('202008muwind.nc','lat');% W4 e8 h  O, Q: Q% s  m) T: o
lon0=ncread('202008muwind.nc','lon');      & r! G2 v' N- ?/ j
[lat,lon]=meshgrid(lat0,lon0);
% j" i$ a1 G; T' x/ Tu=u0(:,:,2);% m1 L3 Z, m  \9 ^6 K7 Q8 W" ?
v=v0(:,:,2);
# k/ o$ ]2 P6 n! T8 P+ ^+ |4 z5 [# T, Xb=sqrt(u.^2+v.^2);
' k( U+ _2 M# v3 }8 ]1 Vfigure(1);7 Q8 [1 P8 x/ n7 A5 q
m_proj('Equidistant Cylindrical','long',[-180 180],'lat',[-90 90]);%矩形投影;取区域观察3 w! a' N4 M4 Y: S- d" b/ R$ j! y/ \
[lon1,lat1]=meshgrid([-180:2.5:179.75],[-90:2.5:90]);/ ]# v4 W! O- Y
u2=u(1:10:end,1:10:end)';# {. [9 T, e+ l! E
% u3=[u2,u2(:,end)];
# P7 S8 s) w0 l6 d/ t2 Y3 ~v2=v(1:gap:end,1:gap:end)';5 J1 a3 i, Y) s; m+ `! e% A5 p
% v3=[v2,v2(:,end)];% z8 [- D  K* Z* D
m_quiver(lon1,lat1,u2,v2,0);, N9 j" H" U7 v# i1 i. w
hold off: ~( O$ E( a. }6 d% [1 o- @! m
m_coast('patch',[1 .85 .7]);" e1 T6 J, w- c' ?2 p
m_grid('box','on','tickdir','out');0 s: y& Y" d0 ^% s* q

" |/ \9 O& b$ X
1 E& S. V! X0 i% A& A/ U: @  v- E, V6 o( N, E
8 r* P, K% S  y+ }7 `* ^, V
' t! f) z+ _  t3 \! w) V
m_contourf(lon,lat,b);%在mmap基础上的画
( F# b1 I: Y9 A$ ^shading interp;%使数据插值. z6 D* A! V" L) U
hold on;
1 y  `- ^; Q( T! L6 w& ^2 \m_quiver(lon1,lat1,u2,v2,0);
6 d4 `% R; |3 lhold off;; ^- g2 U' M$ Z

4 x% j4 \7 A, } ) W4 ]5 p+ n. f
' W  ^+ O. _2 R1 O8 {. G

( u) V3 \- \+ R
) m& `% j+ m( ?m_quiver(lon1,lat1,u2,v2,0);
4 f& B2 ~, s6 X! K* _% U$ `1 c/ L- l- U# U, y
: p! y' o, A4 g
8 U7 @0 o6 Z, y' z& X; I
+ @* }- \1 s/ H; H- a9 M, l$ N
2 y: w/ H( j  X, D0 w
m_contourf(lon,lat,b,500,'linestyle','none')   %在mmap基础上的画
0 `' c0 V! i$ f1 d6 j; Oshading interp;  %使数据插值
8 e' Z3 u3 S9 h1 @3 H, G! w0 w5 y3 v6 K: a( }
& b4 ?! V# C* i; P+ @- V. a$ t
5 K* T: b" A3 }
* [! V$ i7 ]0 V* D5 n' H$ W

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 23:09 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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