Global Index (short | long) | Local contents | Local Index (short | long)
Load data
This script calls | |
---|---|
clean limslp = [110 270 -90 -20]; limsst = [120 285 -20 20]; dofilt = 1; % LP9 seas = 0; % 3 mo. running mean doyear = 1; % annual data if doyear; % Annual data cd /home/disk/hayes2/dvimont/csiro/matlab_data/Heat_Content load ML_ANN_slp.mat % load z250_ML_annave.mat; slp = z250; clear z250; load taux_ML_annave.mat; sst = txann; clear txann; back [lat1, lon1, depth, lm1] = getll('temp', limslp); [lat2, lon2, depth, lm2] = getll('temp', limsst); [xk1, yk1] = keep_var(limslp, lon, lat); [xk2, yk2] = keep_var(limsst, lon, lat); slp = slp(:, yk1, xk1); sst = sst(:, yk2, xk2); else ; % Seasonal data cd /home/disk/hayes2/dvimont/csiro/data filin1 = 'spsl_qm1_0036-0365.nc'; varn1 = 'psl'; filin2 = 'stax_qm1_0036-0365.nc'; varn2 = 'tax'; nc = netcdf(filin1, 'nowrite'); [lat1, lon1, yk1, xk1] = get_nclatlon2(limslp, nc); slp = nc{varn1, 1}(:,:,yk1,xk1); nc = close(nc); nc = netcdf(filin2, 'nowrite'); [lat2, lon2, yk2, xk2] = get_nclatlon2(limsst, nc); sst = nc{varn2, 1}(:,:,yk2,xk2); nc = close(nc); [tem, tem, tem, lm1] = getll('temp', limslp); [tem, tem, tem, lm2] = getll('temp', limsst); [ntim, nmo, nlat1, nlon1] = size(slp); [ntim, nmo, nlat2, nlon2] = size(sst); slp2 = NaN*ones(ntim*nmo, nlat1, nlon1); sst2 = NaN*ones(ntim*nmo, nlat2, nlon2); for i = 1:ntim; ind = 12*(i-1)+[1:12]; slp2(ind,:,:) = slp(i,:,:,:); sst2(ind,:,:) = sst(i,:,:,:); end slp2 = annave(slp2); sst2 = annave(sst2); if seas slp = NaN*ones(4*ntim-1, nlat1, nlon1); sst = NaN*ones(4*ntim-1, nlat2, nlon2); for i = 1:(4*ntim-1); ind = 3*(i-1)+[3:5]; slp(i,:,:) = mean(slp2(ind,:,:)); sst(i,:,:) = mean(sst2(ind,:,:)); end else slp = slp2; sst = sst2; end clear slp2 sst2 end [ntim, nlat1, nlon1] = size(slp); [ntim, nlat2, nlon2] = size(sst); % Get rid of NaNs, mean, trend, etc sst = detrend(sst); slp = detrend(slp); slp = cosweight(slp, lat1); sst = cosweight(sst, lat2); slp = reshape(slp, ntim, nlat1*nlon1); sst = reshape(sst, ntim, nlat2*nlon2); if dofilt [b, a] = butter(9, 2/9); slp = filtfilt(b, a, slp); sst = filtfilt(b, a, sst); end kp2 = find(~isnan(lm2)); sst = sst(:, kp2); % Perform SVD analysis c = slp'*sst/(ntim-1); [slpu, s, sstv] = svd(c); slpx = slp*slpu; ssty = sst*sstv; % Statistics of the SVD: rmsc = (sum(sum(c.^2))./(sum(var(sst))*sum(var(slp))))^0.5; scv = diag(s).^2./sum(diag(s).^2); % Look at pslpx slp2 = getflx('psl', limslp, 101:1000); [lat, lon] = getll('temp', limslp); slp2 = detrend(slp2); slp2 = cosweight(slp2, lat); [ntim, nlat, nlon] = size(slp2); if dofilt slp2 = filtfilt(b, a, slp2); end slp2 = reshape(slp2, ntim, nlat1*nlon1); pslpxd = slp2*slpu; % Look at pslpx if doyear; % Annual data cd /home/disk/hayes2/dvimont/csiro/matlab_data/Heat_Content load ATM_ANN_slp.mat; slp = slp2; [lat3, lon3] = getll('temp', limslp); [xk1, yk1] = keep_var(limslp, lon, lat); slp = slp(:, yk1, xk1); else ; % Seasonal data end slp = detrend(slp); slp = cosweight(slp, lat3); [ntim, nlat, nlon] = size(slp); if dofilt slp = filtfilt(b, a, slp); end slp = reshape(slp, ntim, nlat1*nlon1); pslpxa = slp*slpu; slpx = slpx(:,1:10); slpu = slpu(:,1:10); pslpxd = pslpxd(:,1:10); pslpxa = pslpxa(:,1:10); tauxv = sstv(:, 1:10); tauxy = ssty(:, 1:10); cd ~/Papers/mlcsiro/matlab/Data2 save SH_MIX_slpx_DYN_ATM_pslpx_LP9.mat slpx pslpxd pslpxa slpu rmsc scv ... limsst limslp tauxv tauxy