Global Index (short | long) | Local contents | Local Index (short | long)
Remove annual cycle
| This script calls | |
|---|---|
clear
cd /home/disk/tao/data/nmc.reanalysis/monthly
filin = 'air.mon.mean.sfc.48mar01.nc';
varn = 'air';
ctlim = [180 270 -6 6];
lims = [0 360 -90 90];
lev = 1;
tim = 1:636;
ct = getnc2(filin, varn, ctlim, lev, tim);
[sst, lat, lon] = getnc2(filin, varn, lims, lev, tim);
ct = squeeze(mean(mean(shiftdim(ct, 1))));
ct = annave(ct);
sst = annave(sst);
[ntim, nlat, nlon] = size(sst);
sst = reshape(sst, ntim, nlat*nlon);
% Start with raw regression:
regmap1 = ct'*sst/(var(ct)*(ntim-1));
% Regression on standardized CT index
ct2 = standardize(ct);
regmap2 = ct2'*sst/(ntim-1);
% Correlation map
sst2 = standardize(sst);
cormap1 = ct2'*sst2/(ntim-1);
% For kicks, get landmask
cd /home/disk/tao/data/nmc.reanalysis
load landmask.mat
lm(lm==-1)=NaN;
% Reshape
regmap1 = reshape(regmap1, nlat, nlon);
regmap2 = reshape(regmap2, nlat, nlon);
cormap1 = reshape(cormap1, nlat, nlon);
% Save data and indices
cd ~/matlab/Wallace
save CT_regmaps.mat lims tim ct regmap1 regmap2 cormap1 lat lon lm
%%%%%%%%%%%%%% REDO WITH SLP %%%%%%%%%%%%%%%%%%%
clear
cd /home/disk/tao/data/nmc.reanalysis/monthly
filin = 'air.mon.mean.sfc.48mar01.nc';
varn = 'air';
ctlim = [180 270 -6 6];
lims = [0 360 -90 90];
lev = 1;
tim = 1:636;
ct = getnc2(filin, varn, ctlim, lev, tim);
filin = 'slp.monthly.nc';
varn = 'slp';
[sst, lat, lon] = getnc2(filin, varn, lims, lev, tim);
ct = squeeze(mean(mean(shiftdim(ct, 1))));
% Remove annual cycle
ct = annave(ct);
sst = annave(sst);
[ntim, nlat, nlon] = size(sst);
sst = reshape(sst, ntim, nlat*nlon);
% Start with raw regression:
regmap1_slp = ct'*sst/(var(ct)*(ntim-1));
% Regression on standardized CT index
ct2 = standardize(ct);
regmap2_slp = ct2'*sst/(ntim-1);
% Correlation map
sst2 = standardize(sst);
cormap1_slp = ct2'*sst2/(ntim-1);
% For kicks, get landmask
cd /home/disk/tao/data/nmc.reanalysis
load landmask.mat
lm(lm==-1)=NaN;
% Reshape
regmap1_slp = reshape(regmap1_slp, nlat, nlon);
regmap2_slp = reshape(regmap2_slp, nlat, nlon);
cormap1_slp = reshape(cormap1_slp, nlat, nlon);
% Save data and indices
cd ~/matlab/Wallace
save CT_SLP_regmaps.mat lims tim ct lat lon lm ...
regmap1_slp regmap2_slp cormap1_slp
% Make maps
clean
cd ~/matlab/Wallace
load CT_regmaps.mat
figure(1); fl(1); clf;
get_global;
global_figs(8, 5, 0, 0, 1.5);
dg(lat, lon); FRAME = [0 360 -90 90];
% Start by plotting regmap2
figure(1); fl(1); clf;
sp(1,1); cla;
maxes('mollweid', [0 200]); % Define map axis
[c, h] = contorm(YAX, XAX, regmap2.*lm, [-1:.1:1], 'k'); % Contour data
dcmfill(1); % Shade continents over (1) or under (-1) exisiting data
gridm on; % Turn on grid
axis_limits(100); % Expand data to fill axis
% Label the contours - there are several methods here. Pick one.
% cl = clabelm(c); % Try each of these
cl = clabelm(c, h, [-1:.2:1]);
% cl = clabelm(c, h, 'manual');
set(cl, 'fontsize', 8);
set(gca, 'visible', 'off'); % Turn off box around graphics
t1 = title('\bf SST regressed on CT index', 'visible', 'on', ...
'fontsize', 12); % Add a title
xl = xlabel('Contour Interval: 0.2 ^\circC std^-^1'); % Add Xlabel
set(xl, 'visible', 'on'); % Change handle properties for Xlabel
figure(2); fl(1); clf;
sp(1,1); cla;
maxes('mollweid', [0 200]);
% Contour negative contours dashed, positive solid, zero bold
[c, h] = contorm(YAX, XAX, regmap2.*lm, [-1:.1:-.1], '--k');
hold on;
[c2, h2] = contorm(YAX, XAX, regmap2.*lm, [.1:.1:1], '-k');
[c3, h3] = contorm(YAX, XAX, regmap2.*lm, [0 0], '-k');
hold off
set(h3, 'linewidth', 2);
dcmfill(1);
gridm on;
axis_limits(100);
% No need to label contours - self explanatory
set(gca, 'visible', 'off'); % Turn off box around graphics
t1 = title('\bf SST regressed on CT index', 'visible', 'on', ...
'fontsize', 12); % Add a title
xl = xlabel('Contour Interval: 0.1 ^\circC std^-^1'); % Add Xlabel
set(xl, 'visible', 'on'); % Change handle properties for Xlabel
% Try shading the data
% Define colormap
figure(3); fl(1); clf;
color_trans; colormap(cmap);
sp(1,1); cla;
maxes('mollweid', [0 200]);
h1 = surfacem(YAX3, XAX3, regmap2.*lm);
% Get rid of nasty NaN problem - I don't know why this works...
set(h1, 'facecolor', 'flat');
caxis([-1 1]);
dcmfill(1);
gridm on;
axis_limits(100);
% No need to label contours - self explanatory
set(gca, 'visible', 'off'); % Turn off box around graphics
t1 = title('\bf SST regressed on CT index', 'visible', 'on', ...
'fontsize', 12); % Add a title
cb = colorbar2('horiz');
set(cb, 'fontsize', 8);
xl = get(cb, 'XLabel');
set(xl, 'String', '^\circ C std^-^1', 'fontsize', 10);