Global Index (short | long) | Local contents | Local Index (short | long)
varn = 'psl' varn = 'tsu' varn = 'temp';
This script calls | |
---|---|
clear lims = [100 300 -60 60]; varn = 'tax'; cd /home/disk/hayes2/dvimont/csiro/data nc = netcdf(['s' varn '_qm1_0036-0365.nc'], 'nowrite'); lat = nc{'latitude'}(:); lon = nc{'longitude'}(:); [xk, yk] = keep_var(lims, lon, lat); sst = nc{varn}(:,:,yk,xk); sf = nc{varn}.scale_factor(:); ao = nc{varn}.add_offset(:); nc = close(nc); sst = sst*sf+ao; [lat, lon, depth, lm] = getll('temp', lims); % Average by season, to make this a bit more manageable [nyr, nmon, nlat, nlon] = size(sst); sst2 = repmat(NaN, [nyr*nmon nlat nlon]); for i = 1:nyr; tind = 12*(i-1)+[1:12]; sst2(tind,:,:) = squeeze(sst(i,:,:,:)); end sst = sst2; clear sst2 [sst, clim] = annave(sst); seas = repmat(NaN, [nyr*4-1 nlat nlon]); for i = 1:(nyr-1); for j = 1:4; tind = 12*(i-1)+3*(j-1)+[3:5]; seas(4*(i-1)+j,:,:) = mean(sst(tind,:,:)); end end i = nyr; for j = 1:3; tind = 12*(i-1)+3*(j-1)+[3:5]; seas(4*(i-1)+j,:,:) = mean(sst(tind,:,:)); end % Remove land points lm2 = ~isnan(lm); [ntim, nlat, nlon] = size(seas); for i = 1:ntim; seas(i,:,:) = squeeze(seas(i,:,:)) .* lm2; end % Take EOF: seas2 = reshape(seas, ntim, nlat*nlon); seas2 = detrend(seas2); seas2 = reshape(seas2, ntim, nlat, nlon); seas2 = cosweight(seas2, lat); kp = find(~isnan(lm)); seas2 = seas2(:, kp); [lam, lds, pcs, per] = eof_dan(seas2); cd /home/disk/hayes2/dvimont/csiro/matlab_data/Heat_Content %save ML_RAW_detrend_SST_eof.mat lam lds pcs per lims kp lat lon %save ML_seas_sst.mat seas lat lon %save ML_seas_slp.mat seas_slp lat lon % Do some plots cd /home/disk/hayes2/dvimont/csiro/matlab_data/Heat_Content load ML_RAW_detrend_SST_eof.mat load ML_seas_sst.mat load ML_seas_slp.mat [lat, lon, depth, lm] = getll('temp', lims); reg1 = regress_eof(seas, pcs, 0); reg2 = regress_eof(seas, pcs(:,2), 0); reg3 = regress_eof(seas, pcs(:,3), 0); reg4 = regress_eof(seas, pcs(:,4), 0); default_global; figure(1); fo; subplot(2,2,1); gcont(reg1, .1); dc2(lm); subplot(2,2,2); gcont(reg2, .1); dc2(lm); subplot(2,2,3); gcont(reg3, .1); dc2(lm); subplot(2,2,4); gcont(reg4, .1); dc2(lm); reg1 = regress_eof(seas_slp, pcs, 0); reg2 = regress_eof(seas_slp, pcs(:,2), 0); reg3 = regress_eof(seas_slp, pcs(:,3), 0); reg4 = regress_eof(seas_slp, pcs(:,4), 0); default_global; figure(2); fo(1); subplot(2,2,1); gcont(reg1, .2); dc2(lm); subplot(2,2,2); gcont(reg2, .2); dc2(lm); subplot(2,2,3); gcont(reg3, .2); dc2(lm); subplot(2,2,4); gcont(reg4, .2); dc2(lm);