Global Index (short | long) | Local contents | Local Index (short | long)
First, non-standardized
This script calls | |
---|---|
clean tim = 1:645; lims1 = [110 260 20 70]; cd /home/disk/tao/data/nmc.reanalysis/monthly [sst, lat1, lon1] = getnc2('skt.mon.mean.nc', 'skt', lims1, 1, tim); lims2 = [110 270 20 90]; cd /home/disk/tao/data/nmc.reanalysis/monthly [slp, lat2, lon2] = getnc2('slp.mon.mean.nc', 'slp', lims2, 1, tim); lims3 = [110 300 20 90]; cd /home/disk/tao/data/nmc.reanalysis/monthly [hgt, lat3, lon3] = getnc2('hgt.mon.mean.nc', 'hgt', lims3, 500, tim); hgt = squeeze(hgt); [lm, lat4, lon4] = getnc2('land.sfc.gauss.nc', 'land', lims1, 1, 1); sst = annave(sst); slp = annave(slp); hgt = annave(hgt); tem = squeeze(std(sst)); lm = lm + (tem > 1.25); kp = find(lm==0); [ntim, nlat1, nlon1] = size(sst); [ntim, nlat2, nlon2] = size(slp); [ntim, nlat3, nlon3] = size(hgt); sst2 = cosweight(sst, lat1); slp2 = cosweight(slp, lat2); hgt2 = cosweight(hgt, lat3); sst2 = sst2(:, kp); slp2 = reshape(slp2, ntim, nlat2*nlon2); hgt2 = reshape(hgt2, ntim, nlat3*nlon3); [lam1, lds1, pcs1, per1] = eof_dan(sst2); [lam2, lds2, pcs2, per2] = eof_dan(slp2); [lam3, lds3, pcs3, per3] = eof_dan(hgt2); % Standardized sst2 = standardize(sst); slp2 = standardize(slp); hgt2 = standardize(hgt); sst2 = cosweight(sst2, lat1); slp2 = cosweight(slp2, lat2); hgt2 = cosweight(hgt2, lat3); sst2 = sst2(:, kp); slp2 = reshape(slp2, ntim, nlat2*nlon2); hgt2 = reshape(hgt2, ntim, nlat3*nlon3); [lam1b, lds1b, pcs1b, per1b] = eof_dan(sst2); [lam2b, lds2b, pcs2b, per2b] = eof_dan(slp2); [lam3b, lds3b, pcs3b, per3b] = eof_dan(hgt2); % Now, redo using only NDJFMA tind = sort([11:12:ntim 12:12:ntim 1:12:ntim 2:12:ntim ... 3:12:ntim 4:12:ntim]); ntim2 = length(tind); % First, non-standardized sst2 = cosweight(sst(tind,:,:), lat1); slp2 = cosweight(slp(tind,:,:), lat2); hgt2 = cosweight(hgt(tind,:,:), lat3); sst2 = sst2(:, kp); slp2 = reshape(slp2, ntim2, nlat2*nlon2); hgt2 = reshape(hgt2, ntim2, nlat3*nlon3); [lam1c, lds1c, pcs1c, per1c] = eof_dan(sst2); [lam2c, lds2c, pcs2c, per2c] = eof_dan(slp2); [lam3c, lds3c, pcs3c, per3c] = eof_dan(hgt2); % Standardized sst2 = standardize(sst(tind,:,:)); slp2 = standardize(slp(tind,:,:)); hgt2 = standardize(hgt(tind,:,:)); sst2 = cosweight(sst2, lat1); slp2 = cosweight(slp2, lat2); hgt2 = cosweight(hgt2, lat3); sst2 = sst2(:, kp); slp2 = reshape(slp2, ntim2, nlat2*nlon2); hgt2 = reshape(hgt2, ntim2, nlat3*nlon3); [lam1d, lds1d, pcs1d, per1d] = eof_dan(sst2); [lam2d, lds2d, pcs2d, per2d] = eof_dan(slp2); [lam3d, lds3d, pcs3d, per3d] = eof_dan(hgt2); desc1 = ['1 = SST; 2 = SLP; 3 = HGT500']; desc2 = [' = Raw anomalies (all year); '; 'b = Standardized data (all year)'; 'c = Raw anomalies (NDJFMA); '; 'd = Standardized data (NDJFMA) ']; % Save results cd ~/matlab/NMC/Data save NPAC_sst_slp_hgt500_eofs.mat ... desc1 desc2 lat1 lon1 lat2 lon2 lat3 lon3 lat4 lon4 lm kp ... lims1 lims2 lims3 tim tind ... lam1 lds1 pcs1 per1 ... lam2 lds2 pcs2 per2 ... lam3 lds3 pcs3 per3 ... lam1b lds1b pcs1b per1b ... lam2b lds2b pcs2b per2b ... lam3b lds3b pcs3b per3b ... lam1c lds1c pcs1c per1c ... lam2c lds2c pcs2c per2c ... lam3c lds3c pcs3c per3c ... lam1d lds1d pcs1d per1d ... lam2d lds2d pcs2d per2d ... lam3d lds3d pcs3d per3d % Get regressions clean lims = [0 360 -90 90]; tim = 1:645; cd ~/matlab/NMC/Data load NPAC_sst_slp_hgt500_eofs.mat cd /home/disk/tao/data/nmc.reanalysis/monthly [sst, lat1, lon1] = getnc2('skt.mon.mean.nc', 'skt', lims, 1, tim); cd /home/disk/tao/data/nmc.reanalysis/monthly [slp, lat2, lon2] = getnc2('slp.mon.mean.nc', 'slp', lims, 1, tim); cd /home/disk/tao/data/nmc.reanalysis/monthly [hgt, lat3, lon3] = getnc2('hgt.mon.mean.nc', 'hgt', lims, 500, tim); hgt = squeeze(hgt); sst = annave(sst); slp = annave(slp); hgt = annave(hgt); [ntim, nlat1, nlon1] = size(sst); [ntim, nlat2, nlon2] = size(slp); [ntim, nlat3, nlon3] = size(hgt); % Get regressions pat1 = repmat(NaN, [4 3 nlat1 nlon1]); c1 = pat1; pat2 = repmat(NaN, [4 3 nlat2 nlon2]); c2 = pat2; pat3 = repmat(NaN, [4 3 nlat3 nlon3]); c3 = pat3; for i = 1:3; disp(i) [pat1(1,i,:,:), c1(1,i,:,:)] = regress_eof(sst, pcs1(:,i), 0); [pat1(2,i,:,:), c1(2,i,:,:)] = regress_eof(sst, pcs1b(:,i), 0); [pat1(3,i,:,:), c1(3,i,:,:)] = ... regress_eof(sst(tind,:,:), pcs1c(:,i), 0); [pat1(4,i,:,:), c1(4,i,:,:)] = ... regress_eof(sst(tind,:,:), pcs1d(:,i), 0); [pat2(1,i,:,:), c2(1,i,:,:)] = regress_eof(slp, pcs1(:,i), 0); [pat2(2,i,:,:), c2(2,i,:,:)] = regress_eof(slp, pcs1b(:,i), 0); [pat2(3,i,:,:), c2(3,i,:,:)] = ... regress_eof(slp(tind,:,:), pcs1c(:,i), 0); [pat2(4,i,:,:), c2(4,i,:,:)] = ... regress_eof(slp(tind,:,:), pcs1d(:,i), 0); [pat3(1,i,:,:), c3(1,i,:,:)] = regress_eof(hgt, pcs1(:,i), 0); [pat3(2,i,:,:), c3(2,i,:,:)] = regress_eof(hgt, pcs1b(:,i), 0); [pat3(3,i,:,:), c3(3,i,:,:)] = ... regress_eof(hgt(tind,:,:), pcs1c(:,i), 0); [pat3(4,i,:,:), c3(4,i,:,:)] = ... regress_eof(hgt(tind,:,:), pcs1d(:,i), 0); end desc3 = ['pat1 = sst; pat2 = slp; pat3 = hgt']; desc4 = ['pat1(i,j,:,:); i = a, b, c or d (desc2); j = mode 1 2 or 3']; % Save data cd ~/matlab/NMC/Data save NPAC_sst_slp_hgt500_regs.mat ... tim lims tind lat1 lon1 lat2 lon2 lat3 lon3 ... desc1 desc2 desc3 desc4 ... pat1 pat2 pat3 c1 c2 c3 % Plot the data clean cd ~/matlab/NMC/Data load NPAC_sst_slp_hgt500_regs.mat cd /home/disk/tao/data/nmc.reanalysis/monthly [lm, lat4, lon4] = getnc2('land.sfc.gauss.nc', 'land', lims, 1, 1); lm = 1-lm; lm(lm ~= 1) = NaN; figure_landscape(1); clf global_axes(2.75, 1.75, 0.25, 0.25, 1.5); global_latlon(lat1, lon1, [90 300 -30 75]); for i = 1:3; subplot2(3,i); cla; maxes('mollweid'); map_contour_pn(lm .* squeeze(c1(1,i,:,:)), 0.1); fill_landmap('over', 0.5*[1 1 1]); tightmap; gridm on; end global_latlon(lat2, lon2, [90 300 -30 75]); for i = 1:3; subplot2(3,3+i); cla; maxes('mollweid'); map_contour_pn(squeeze(c2(1,i,:,:)), 0.1); fill_landmap('over', 0.5*[1 1 1]); tightmap; gridm on; end global_latlon(lat3, lon3, [90 300 -30 75]); for i = 1:3; subplot2(3,6+i); cla; maxes('mollweid'); map_contour_pn(squeeze(c3(1,i,:,:)), 0.1); fill_landmap('over', 0.5*[1 1 1]); tightmap; gridm on; end