爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 208|回复: 0

[程序设计] TN波通量相邻地区箭头矛盾

[复制链接]

新浪微博达人勋

发表于 4 天前 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
请教一下各位大佬,我想计算2002年3-6月北半球500百帕环流场上的波活动通量,位势高度场用的是ERA5月平均数据中2002年3-6月这四个月500百帕的平均位势高度,气候平均态用的是ERA5月平均数据中2001-2020年年3-6月这四个月的500百帕的平均位势高度,但是画图出来的结果是有些地区箭头方向是相反的,想知道这是为什么,恳请各位不吝赐教。
代码如下:lon就是0到360,lat就是90到-90,era5数据的经纬度
clear; clc; close all
lon=ncread('D:\数据\Copernicus Climate Change Service\ERA5\全球\data_1.nc', 'longitude');
lat=ncread('D:\数据\Copernicus Climate Change Service\ERA5\全球\data_1.nc', 'latitude');
z = ncread('D:\数据\Copernicus Climate Change Service\ERA5\全球\gh_rh_t_u_v_w_on_100_200_500_700_850_1000.nc', 'z');
z = reshape(squeeze(z(:, :, 4, :)), [length(lon), length(lat), 12, 20]); z = z/9.8;
u = ncread('D:\数据\Copernicus Climate Change Service\ERA5\全球\gh_rh_t_u_v_w_on_100_200_500_700_850_1000.nc', 'u');
u = reshape(squeeze(u(:, :, 4, :)), [length(lon), length(lat), 12, 20]);
v = ncread('D:\数据\Copernicus Climate Change Service\ERA5\全球\gh_rh_t_u_v_w_on_100_200_500_700_850_1000.nc', 'v');
v = reshape(squeeze(v(:, :, 4, :)), [length(lon), length(lat), 12, 20]);
%%
z_anml = squeeze(mean(z(:, :, 3:6, 2), 3, 'omitnan'));
z_mean = squeeze(mean(z(:, :, [size=21.3333px]3:6, :), [3 4], 'omitnan'));
u_mean = squeeze(mean(u(:, :, [size=21.3333px]3:6, :), [3 4], 'omitnan'));
v_mean = squeeze(mean(v(:, :, [size=21.3333px]3:6, :), [3 4], 'omitnan'));

level=500;
[waf_x, waf_y, psi_a]=tn_waf(z_anml, z_mean, u_mean, v_mean, level, lon, lat);
waf_x(sqrt(waf_x.^2+waf_y.^2)<2)=NaN;
waf_y(sqrt(waf_x.^2+waf_y.^2)<2)=NaN;
%%
figure(1)
[X, Y] = meshgrid(lon, lat);
m_proj('Equidistant Cylindrical', 'long', [0 360], 'lat', [15 80]);
hold on
psi_a1=psi_a./1e6;
m_pcolor(X, Y, psi_a1');
m_coast('color','k');
m_quiver(X(1:20:end, 1:20:end), Y(1:20:end, 1:20:end), (waf_x(1:20:end, 1:20:end)'), (waf_y(1:20:end, 1:20:end)'), 2, 'k');
setPivot(0);
m_grid('gridcolor', 'none', 'box', 'on', 'fonts', 15);
colorbar;

%%
function [waf_x,waf_y,psi_a]=tn_waf(hgt,hgt_m,uwnd_m,vwnd_m,level,lon,lat)
%% input variables
% hgt: [lon,lat] % 位势高度的原始场
% hgt_m: [lon lat] % 位势高度的气候态
% uwnd_m: [lon lat] % 风速的气候态
% vwnd_m: [lon lat] %
% level: pressure/(1000hPa) % 气压层
% lon
% lat
%% output variables
% waf_x: T-N wave activity flux zonal component
% waf_y: T-N wave activity flux meridional component
% psi: the geostrophic stream function
%% constant
[nlon, nlat]=size(hgt);

a=6.37*10^6; % earth's radius
Omega=7.292*10^-5; % earth's rotation rate
f=2*Omega.*sind(lat); % Coriolis parameter
p=level/1000;

dy=lat(2)-lat(1);
dphi=deg2rad(dy); % 差分
dx=lon(2)-lon(1);
dlamda=deg2rad(dx); % 差分

cosphi=cosd(lat);
Uspeed=sqrt(uwnd_m.^2+vwnd_m.^2);
% psi anom
f=repmat(f',nlon,1);
psi_a=((hgt-hgt_m).*9.8)./f;
%%
% dpsi/dphi
dpsi_dphi=nan(nlon,nlat);
dpsi_dphi(:,2:nlat-1)=(psi_a(:,3:nlat)-psi_a(:,1:nlat-2))./(2*dphi);
% d2psi/d2phi
d2psi_d2phi=nan(nlon,nlat);
d2psi_d2phi(:,2:nlat-1)=(psi_a(:,3:nlat)-2.*psi_a(:,2:nlat-1)+psi_a(:,1:nlat-2))./(dphi.^2);
% dpsi/dlamda
dpsi_dlamda=nan(nlon,nlat);
dpsi_dlamda(2:nlon-1,:)=(psi_a(3:nlon,:)-psi_a(1:nlon-2,:))./(2*dlamda);
% d2psi/d2lamda
d2psi_d2lamda=nan(nlon,nlat);
d2psi_d2lamda(2:nlon-1,:)=(psi_a(3:nlon,:)-2.*psi_a(2:nlon-1,:)+psi_a(1:nlon-2,:))./(dlamda.^2);
% d2psi/(dlamda dphi)
d2psi_dlamdadphi=nan(nlon,nlat);
d2psi_dlamdadphi(2:nlon-1,2:nlat-1)=(dpsi_dphi(3:nlon,2:nlat-1)-dpsi_dphi(1:nlon-2,2:nlat-1))./(2*dlamda);
%% waf_x
a2=a^2;
cosphi=repmat(cosphi',nlon,1);
cosphi2=cosphi.^2;
% waf x
wafx_term1=(uwnd_m./(a2.*cosphi2)).*((dpsi_dlamda).^2 - psi_a.*(d2psi_d2lamda));
wafx_term2=(vwnd_m./(a2.*cosphi)).*((dpsi_dlamda).*(dpsi_dphi) - psi_a.*(d2psi_dlamdadphi));
waf_x=((p.*cosphi)./(2.*Uspeed)).*(wafx_term1+wafx_term2);
% waf y
wafy_term1=(uwnd_m./(a2.*cosphi)).*((dpsi_dlamda).*(dpsi_dphi) - psi_a.*(d2psi_dlamdadphi));
wafy_term2=(vwnd_m./(a2)).*((dpsi_dphi).^2 - psi_a.*(d2psi_d2phi));
waf_y=((p.*cosphi)./(2.*Uspeed)).*(wafy_term1+wafy_term2);

waf_x(:,lat>=-15 & lat<=15)=NaN;
waf_y(:,lat>=-15 & lat<=15)=NaN;
psi_a(:,lat>=-15 & lat<=15)=NaN;
end
出图如下:




2002年3-6月500百帕波活动通量

2002年3-6月500百帕波活动通量
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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