Documentation of nhem_eofs


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


Help text

file_base = [1:73];  

Cross-Reference Information

This script calls

Listing of script nhem_eofs


clean
file_base = [7:48]; ntim = length(file_base);
fint = [];
for i = 1:6;
  fint = [fint 73*(i-1)+file_base];
end

%  Start with earth
lims = [0 360 20 90];
tim = 1:5;

cd /home/disk/hayes2/dvimont/ccm/ccm3.6/run/sun/HT/HTRAE/cdtem_e
%cd /home/disk/hayes2/dvimont/ccm/ccm3.6/run/sun/HT/EARTH/cdtem_e

%  Get parameters
nc = netcdf('ha0001.nc', 'nowrite');
[lat, lon, yk, xk] = get_nclatlon(lims, nc);
nc = close(nc);
nlat = length(lat); nlon = length(lon);

zdat = repmat(NaN, [length(fint) nlat nlon]);;
for i = 1:length(fint);
  disp(fint(i))
  if fint(i) < 10;
    fyr = ['000' num2str(fint(i))];
  elseif fint(i) < 100;
    fyr = ['00' num2str(fint(i))];
  elseif fint(i) < 1000;
    fyr = ['0' num2str(fint(i))];
  end
  fname = ['ha' fyr '.nc'];
  nc = netcdf(fname, 'nowrite');
    z = nc{'Z500', 1}(:, yk, xk);
  nc = close(nc);
  z(abs(z)>1e4)=NaN;
  zdat(i, :, :) = mean2(z);
end

%  Remove climatology
z = repmat(NaN, [6 ntim nlat nlon]);
for i = 1:6;
  ind = ntim*(i-1)+[1:ntim];
  z(i,:,:,:) = zdat(ind,:,:);
end

z = mean2(z);
z = squeeze(z);
z = rave(z, 3);

for i = 1:6;
  ind = ntim*(i-1)+[1:ntim];
  zdat(ind,:,:) = zdat(ind,:,:) - z;
end

%  Get rotated eofs
z = zdat;
z = rave(z, 3);
z = cosweight(z, lat);
z = reshape(z, ntim*6, nlat*nlon);
z(isnan(z)) = 0;

[lam, lds, pcs, per] = eof_dan(z, 20);

%  Rotate
nkp = 15;
wgt = diag(lds'*lds);
rlds = (ones(size(lds, 1), 1)*(1./sqrt(wgt'))) .* lds;

[frot, var] = varimax(rlds, lam(1:nkp), nkp, 1, 'N');
prot = z*frot;
prot = standardize(prot);

%  Get patterns
pat1 = repmat(NaN, [nkp, nlat, nlon]);
c1 = pat1;
pat2 = pat1;
c2 = pat1;

for i = 1:6
  disp(i)
  [pat1(i,:,:), c1(i,:,:)] = regress_eof(zdat, pcs(:,i), 0);
  [pat2(i,:,:), c2(i,:,:)] = regress_eof(zdat, prot(:,i), 0);
end

%  Plot results

global_axes(2.75, 2.75, .5, .75/2, 1);
global_latlon(lat, lon, lims);



%  EARTH

figure_tall(1); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn((squeeze(pat1(i,:,:))), 7.5, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(per(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 EOFs_EARTH.ps


figure_tall(2); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn((squeeze(pat2(i,:,:))), 7.5, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(var(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 REOFs_EARTH.ps





cint = .1;
figure_tall(3); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn(fliplr(squeeze(c1(i,:,:))), cint, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(per(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 EOFs_HTRAE.ps


figure_tall(4); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn(fliplr(squeeze(c2(i,:,:))), cint, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(var(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 REOFs_HTRAE.ps







%  Try this again with SLP
clean

cd ~/matlab/CCM/Htrea/Data2
load SLP_monthly_earth.mat; slp1 = slp;
load SLP_monthly_htrae.mat; slp2 = slp;

%  Manipulate
slp1 = annave(slp1);
slp2 = annave(slp2);

lims = [0 360 20 90];
[xk, yk] = keep_var(lims, lon, lat);

var1 = slp1(:, yk, xk);
var2 = slp2(:, yk, xk);
lon1 = lon(xk);
lat1 = lat(yk);

var1 = cosweight(var1, lat1);
var2 = cosweight(var2, lat1);

[ntim, nlat, nlon] = size(var1);
var1 = reshape(var1, ntim, nlat*nlon);
var2 = reshape(var2, ntim, nlat*nlon);

%  Get eofs
[lam1, lds1, pcs1, per1] = eof_dan(var1, 25);
[lam2, lds2, pcs2, per2] = eof_dan(var2, 25);

%  Rotate
nkp = 6;

wgt = diag(lds1'*lds1);
rlds1 = (ones(size(lds1, 1), 1)*(1./sqrt(wgt'))) .* lds1;

[frot1, vrot1] = varimax(rlds1, lam1(1:nkp), nkp, 1, 'N');
prot1 = var1*frot1;
prot1 = standardize(prot1);

wgt = diag(lds2'*lds2);
rlds2 = (ones(size(lds2, 1), 1)*(1./sqrt(wgt'))) .* lds2;

[frot2, vrot2] = varimax(rlds2, lam2(1:nkp), nkp, 1, 'N');
prot2 = var2*frot2;
prot2 = standardize(prot2);

%  Get regressions
[ntim, nlat, nlon] = size(slp1);
pat1a = repmat(NaN, [6 nlat nlon]);
pat2a = pat1a; pat1b = pat1a; pat2b = pat1a;
c1a = pat1a; c2a = c1a; c1b = c1a; c2b = c1a;

for i = 1:6;
  disp(i)
  [pat1a(i,:,:), c1a(i,:,:)] = regress_eof(slp1, pcs1(:,i));
  [pat1b(i,:,:), c1b(i,:,:)] = regress_eof(slp1, prot1(:,i));
  [pat2a(i,:,:), c2a(i,:,:)] = regress_eof(slp2, pcs2(:,i));
  [pat2b(i,:,:), c2b(i,:,:)] = regress_eof(slp2, prot2(:,i));
end




%  Plot data
cd ~/matlab/Wallace; link_toolboxes;
figure_tall(1); clf;
global_axes(2.75, 2.75, .5, .75/2, 1);
global_latlon(lat, lon, lims);

%  EARTH

figure_tall(1); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn((squeeze(pat1a(i,:,:))), 125, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(vrot1(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 SLP_EOFs_EARTH.ps

figure_tall(2); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn((squeeze(pat1b(i,:,:))), 125, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(pvar1(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 SLP_REOFs_EARTH.ps


%  HTRAE

figure_tall(3); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn((squeeze(pat2a(i,:,:))), 125, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(per1(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 SLP_EOFs_HTRAE.ps

figure_tall(2); clf;
for i = 1:6;
  subplot2(2,i); cla
    map_axis('stereo', [90 270]);
    [c, h] = map_contour_pn((squeeze(pat2a(i,:,:))), 125, 'nozero');
    fill_landmap('under');
    gridm on; framem; tightmap2; 
    set(gca, 'visible', 'off');
    title(['EOF' num2str(i) '; ' num2str(round(var(i))) '%'], ...
	  'visible', 'on', 'fontsize', 12);
end

cd ~/matlab/CCM/Htrea/Figs_Talk
print -dpsc2 SLP_REOFs_EARTH.ps