Documentation of ml_slp_pcs_ppcs_2


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_2


clear
dofilt = 0;
data
load ML_SLP_eof_nhem.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;
if dofilt
  uselds = 1*mhlds; usepcs = 1*mhpcs;
  uselims = lims;
else
  uselds = 1*mrlds; usepcs = 1*mrpcs;
  uselims = lims;
end

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

%  Project lds onto slp

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

lims = [-0.1 360 -90 90];
sstc = getnc('temp', lims, 1, tim);
slpc = getflx('psl', lims, tim);
csirod
load ML_ANN_slp.mat;
load ML_ANN_sst.mat; sst = sst2; clear sst2;
back

lims = [-0.1 360 -90 90];
[xk, yk] = keep_var(lims, lon, lat);
slp = slp(:, yk, xk);
sst = sst(:, yk, xk);

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; 
  ctm = ctm - filtfilt(b, a, ctm);
  ctc = ctc - filtfilt(b, a, ctc);
end

%  Get regression maps

if dofilt;
  slp = filtfilt(b, a, detrend(slp)); slpc = filtfilt(b, a, detrend(slpc));
  sst = filtfilt(b, a, detrend(sst)); sstc = filtfilt(b, a, detrend(sstc));
else
  slp = detrend(slp); slpc = detrend(slpc);
  sst = detrend(sst); sstc = detrend(sstc);
end


num = 1; pm = sign(corr(usepcs(:,num), ctm));
[reg1m, c1m] = regress_eof(slp, pm*usepcs(:,num), 0);
[reg2m, c2m] = regress_eof(sst, pm*usepcs(:,num), 0);

[reg1c, c1c] = regress_eof(slpc, pm*ppcs(:,num), 0);
[reg2c, c2c] = regress_eof(sstc, pm*ppcs(:,num), 0);

%  Plot the data

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

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

figure(1); fo(1); clf;
sptalk(4,2,1); FRAME = [0 360 -1 90];
  mcont3(reg1m, 0.2, 'stereo', [90 270]);
  drawmap2(lm, 0.5, -100);
  hold on;
    mshade3(squeeze(c1m.^2), 0.25, 0.7*[1 1 1]);
  hold off;
  gridm on;
  axis_limits;
  title(['ML:  Regression on NP\_PC' num2str(num)]);
sptalk(4,2,2); FRAME = [0 360 -1 90];
  mcont3(reg1c, 0.2, 'stereo', [90 270]);
  drawmap2(lm, 0.5, -100);
  hold on;
    mshade3(squeeze(c1c.^2), 0.25, 0.7*[1 1 1]);
  hold off;
  gridm on;
  axis_limits;
  title(['COUP:  Regression on NP\_PPC' num2str(num)]);
sptalk(4,2,3); FRAME = [0 360 -90 1];
  mcont3(reg1m, 0.2, 'stereo', [-90 270]);
  drawmap2(lm, 0.5, -100);
  hold on;
    mshade3(squeeze(c1m.^2), 0.25, 0.7*[1 1 1]);
  hold off;
  gridm on;
  axis_limits;
sptalk(4,2,4); FRAME = [0 360 -90 1];
  mcont3(reg1c, 0.2, 'stereo', [-90 270]);
  drawmap2(lm, 0.5, -100);
  hold on;
    mshade3(squeeze(c1c.^2), 0.25, 0.7*[1 1 1]);
  hold off;
  gridm on;
  axis_limits;

sptalk(4,2,5); FRAME = [105 295 -60 60];
  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,6);
  gcont(reg2c, 0.05);
  dc2(lm, 0.5, 100);
  color_shade(squeeze(c2c.^2), 0.25, 0.7*[1 1 1]);

data;
load LP9_detrend_L1-7_EOF_yr101-1000.mat;
back

lags = -10:10;
for i = 1:length(lags);
  a(i,1) = corr(pm*usepcs(:,num), ctm, lags(i));
  a(i,2) = corr(pm*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

cd ~/Thesis/Chap5
%print -dps2 NP_SLP_LP9_PC1_PPC1_Regressions.ps




data;
load HP10_detrend_L1-7_EOF_yr101-1000.mat; hcpcs = -pcs;
load COUP_SLP_eof_nhem.mat;  slppcs = hpcs;
back

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

figure(2); fo(1);% clf
sptalk(3,2,2);
  bar(lags, -a(:,1));
  axis([-11 11 -0.5 1]);
  grid on;
  set(gca, 'XTick', -10:5:10, 'YTick', -0.5:.25:1);
  xlabel('PPC1 leads CT   |  CT leads PPC1');
  title('Unfiltered');
sptalk(3,2,4);
  bar(lags, a(:,2));
  axis([-11 11 -0.5 1]);
  grid on;
  set(gca, 'XTick', -10:5:10, 'YTick', -0.5:.25:1);
  xlabel('PPC1 leads SLPPC1   |  SLPPC1 leads PPC1');
sptalk(3,2,6);
  bar(lags, -a(:,3));
  axis([-11 11 -0.5 1]);
  grid on;
  set(gca, 'XTick', -10:5:10, 'YTick', -0.5:.25:1);
  xlabel('PPC1 leads LPPC1   |  LPPC1 leads PPC1');




%  Look at power spectra

tem1 = 

  ppcs2 = ppcs(:,1)./std(ppcs(:,1));

nfft = 128; noverlap = 3*nfft/4;
[p1, f1] = spectrum(mrpcs(:,1), nfft, noverlap);
[p2, f2] = spectrum(ppcs2, nfft, noverlap);
f = f1./2;

figure(3); fo(1); clf;
sptalk(3,1,1);
h = semilogy(f, p1(:,1), 'v-k', f, p2(:,1), 'o-k');