Documentation of ml_slp_pcs_ppcs


Global Index (short | long) | Local contents | Local Index (short | long)


Help text

  Get ppcs

Cross-Reference Information

This script calls

Listing of script ml_slp_pcs_ppcs


clear
data
load ML_SLP_eof_shem.mat; 
back
mrpcs = rpcs; mlpcs = lpcs; mhpcs = hpcs;
mrper = rper; mlper = lper; mhper = hper;
mrlds = rlds; mllds = llds; mhlds = hlds;
mrlam = rlam; mllam = llam; mhlam = hlam;
uselds = 1*mllds; usepcs = 1*mlpcs;
uselims = lims;

tim = 101:1000;
slp = getflx('psl', lims, tim);
[b, a] = butter(9, 2/9);
slp = filtfilt(b, a, detrend(slp));

%  Project lds onto slp

[ntim, nlat, nlon] = size(slp);
ppcs = reshape(slp, ntim, nlat*nlon) * uselds ./ ntim;

lims = [100 300 -65 65];

sstc = getnc('temp', lims, 1, tim);
[txc, tyc] = getnc('taux', 'tauy', lims, 1, tim);
slpc = getflx('psl', lims, tim);
csirod
load ML_ANN_slp.mat;
load ML_ANN_sst.mat; sst = sst2; clear sst2;
load taux_ML_annave.mat
load tauy_ML_annave.mat
back

lims = [100 300 -65 65];
[xk, yk] = keep_var(lims, lon, lat);
slp = slp(:, yk, xk);
sst = sst(:, yk, xk);
txann = txann(:, yk, xk);
tyann = tyann(:, yk, xk);

%  Get regression maps

if 1;
slp = filtfilt(b, a, detrend(slp)); slpc = filtfilt(b, a, detrend(slpc));
sst = filtfilt(b, a, detrend(sst)); sstc = filtfilt(b, a, detrend(sstc));
txann = filtfilt(b, a, detrend(txann)); txc = filtfilt(b, a, detrend(txc));
tyann = filtfilt(b, a, detrend(tyann)); tyc = filtfilt(b, a, detrend(tyc));
end

num = 1;
[reg1m, c1m] = regress_eof(slp, usepcs(:,num), 0);
[reg2m, c2m] = regress_eof(sst, usepcs(:,num), 0);
[reg3m, c3m] = regress_eof(txann, usepcs(:,num), 0);
[reg4m, c4m] = regress_eof(tyann, usepcs(:,num), 0);

[reg1c, c1c] = regress_eof(slpc, ppcs(:,num), 0);
[reg2c, c2c] = regress_eof(sstc, ppcs(:,num), 0);
[reg3c, c3c] = regress_eof(txc, ppcs(:,num), 0);
[reg4c, c4c] = regress_eof(tyc, ppcs(:,num), 0);

%  Plot the data

[lat, lon, depth, lm] = getll('temp', lims);
[lat1, lon1] = getll('taux', lims);

default_global; FRAME = [105 295 -60 60];

figure(1); fo(1); clf;
sptalk(4,2,1);
  gcont(reg1m, 0.2);
  dc2(lm, 0.5, -100);
  color_shade(squeeze(c1m.^2), 0.25, 0.7*[1 1 1]);
  title(['ML:  Regression on SP\_PC' num2str(num)]);
  ylabel('SLP');
sptalk(4,2,2);
  gcont(reg1c, 0.2);
  dc2(lm, 0.5, -100);
  color_shade(squeeze(c1c.^2), 0.25, 0.7*[1 1 1]);
  title(['COUP:  Regression on SP\_PPC' num2str(num)]);

sptalk(4,2,3);
  gcont(reg2m, 0.05);
  dc2(lm, 0.5, 100);
  color_shade(squeeze(c2m.^2), 0.25, 0.7*[1 1 1]);
  ylabel('SST');
sptalk(4,2,4);
  gcont(reg2c, 0.05);
  dc2(lm, 0.5, 100);
  color_shade(squeeze(c2c.^2), 0.25, 0.7*[1 1 1]);

sptalk(4,2,5);
  gquiv(reg3m, reg4m, -.01, 2, 'dynes cm^-^1 sec^-^1');
  dc2(lm, 0.5, 100);
  ylabel('WIND STRESS');
  xlabel('');
sptalk(4,2,6);
  XAX = lon1; YAX = lat1;
  gquiv(reg3c, reg4c, -.1, 2, 'dynes cm^-^1 sec^-^1');
  XAX = lon; YAX = lat;
  dc2(lm, 0.5, 100);
  xlabel('');

ctc = getct;
[xkc, ykc] = keep_var([180 270 -6 6], lon, lat);
ctm = squeeze(mean2(mean2(shiftdim(sst(:,ykc,xkc), 1))));
ctc = detrend(ctc); ctm = detrend(ctm);

if dofilt == 1;
elseif dofilt == 2;
end

lags = -10:10;
for i = 1:length(lags);
  a(i,1) = corr(usepcs(:,num), ctm, lags(i));
  a(i,2) = corr(ppcs(:,num), ctc, lags(i));
end

sptalk(4,2,7);
  bar(lags, a(:,1));
  axis([-11 11 -0.5 0.75]);
  grid on;
  set(gca, 'XTick', -10:5:10, 'YTick', -0.5:.25:1);
  xlabel('PC1 leads CT   |  CT leads PC1');
  ylabel('Lagged Correlation');
sptalk(4,2,8);
  bar(lags, a(:,2));
  axis([-11 11 -0.5 0.75]);
  grid on;
  set(gca, 'XTick', -10:5:10, 'YTick', -0.5:.25:1);
  xlabel('PPC1 leads CT   |  CT leads PPC1');

cd ~/matlab/CSIRO/Thesis/Chap5/Plots
%print -dps2 SP_SLP_LP9_PC2_PPC2_Regressions.ps