- 积分
- 4532
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-5-6
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在ERA5上下载的Mean vertically integrated moisture divergence, 单位:kg m^-2 s^-1,画出来长这样。
但我在计算每层的水汽通量散度,再进行积分的时候,结果怎么都对不上。
我是参考https://www.docin.com/p-1572091765.html这里的公式计算的,是我的程序出了问题,还是ERA5里的不只是用这个公式计算呢?
q = ncread(file,'q',[1,1,1,253],[inf inf inf 240]);
u = ncread(file,'u',[1,1,1,253],[inf inf inf 240]);
v = ncread(file,'v',[1,1,1,253],[inf inf inf 240]);
time = ncread(file,'time',[253],[240]);
lons = ncread(file,'longitude');
lats = ncread(file,'latitude');
level = ncread(file,'level'); %这里是从1hpa~1000hpa,积分的结果应该加个负号
t = datenum(1900,1,1,double(time),0,0);
[LON,LAT]=meshgrid(lons,lats);
% 计算水汽通量矢量
g=9.8;
qu = (1/g).*q.*u; qv = (1/g).*q.*v; %水汽通量矢量
qu = permute(qu,[2,1,3,4]); qv = permute(qv,[2,1,3,4]);
qux = zeros(161,401,25,240); qvy = zeros(161,401,25,240);
for k =1:25
for it = 1:240
[qux(:,:,k,it), ~]=grad_atmos(LON, LAT, squeeze(qu(:,:,k,it)));
[~, qvy(:,:,k,it)]=grad_atmos(LON, LAT, squeeze(qv(:,:,k,it)));
end
end
q_div = qux +qvy;
layer =double(level*100);
% 看一下整层积分的结果
q_div_vertical = squeeze(trapz(layer, q_div,3));
q_div_winter = monthly(q_div_vertical, t, [6 7 8], 'omitnan'); % 这里是计算季节平均
figure
m_proj('miller','lon',[20 120],'lat',[-60 -30]);
m_pcolor(LON,LAT, q_div_winter(:,:));hold on
shading interp
m_coast('patch', [.7 .7 .7]);
m_grid('ytick',[-60:10:-20],'tickdir','out','linest','none','fontname','Times','fontsize',12);
cmocean('balance')
h=colorbar;
caxis([-6 6].*10^-5)
title('JJA vertically integrated Moisture divergence','fontname','Times','fontsize',14)
|
-
ERA5的
-
自己算的
|