Global Index (short | long) | Local contents | Local Index (short | long)
Now, get NMC data
This script calls | |
---|---|
cd /home/disk/hayes/dvimont/ccm3.6/data/GR sst1 = getnc('wgr_TPAC_T42.nc', 'SST'); sst2 = getnc('cgr_TPAC_T42.nc', 'SST'); [lat, lon] = getll('cgr_TPAC_T42.nc'); lims = [100 300 -35 35]; [xk, yk] = keep_var(lims, lon, lat); lon = lon(xk); lat = lat(yk); ssta = squeeze(mean(sst1(:,yk,xk) - sst2(:,yk,xk))); [nlat, nlon] = size(ssta); cd /home/disk/tao/data/nmc.reanalysis/monthly nc = netcdf('sst.mon.mean.nc', 'nowrite'); lon1 = nc{'lon'}(:); lat1 = nc{'lat'}(:); lims = [105 295 -30 30]; [xk, yk] = keep_var(lims, lon1, lat1); sst = nc{'air'}(:,yk,xk); lon1 = lon1(xk); lat1 = lat1(yk); nc = close(nc); [ntim, nlat, nlon] = size(sst); sst = reshape(sst, ntim, nlat*nlon); [sst, clim] = annave(sst); % Interpolate CCM stuff to NMC grid: ssta2 = interp2(lon, lat, ssta, lon1, lat1'); ssta2 = reshape(ssta2, 1, nlat*nlon); % First, try regressing this pattern onto the NMC data: gr1 = sst * ssta2' ./ (nlat*nlon); gr1 = (gr1 - mean(gr1)) / (std(gr1)); % Subtract CT time series from data: sst = reshape(sst, ntim, nlat, nlon); [ctx, cty] = keep_var([180 270 -6 6], lon1, lat1); ct = squeeze(mean(mean(shiftdim(sst(:,cty,ctx),1)))); ctstar = ct - myrunning_ave(myrunning_ave(ct, 25), 37); ctstar = (ctstar - mean(ctstar)) / std(ctstar); gr2 = gr1 - (corr(gr1, ctstar) * ctstar); gr2 = (gr2 - mean(gr2)) / (std(gr2)); % Look at gr1pat and gr2pat cd /home/disk/tao/data/nmc.reanalysis/monthly nc = netcdf('sst.mon.mean.nc', 'nowrite'); lon = nc{'lon'}(:); lat = nc{'lat'}(:); sst = nc{'air'}(:,:,:); nc = close(nc); [ntim, nlat, nlon] = size(sst); sst = reshape(sst, ntim, nlat*nlon); [sst, clim] = annave(sst); gr1pat = gr1' * sst / ntim; gr2pat = rave(rave(gr2, 5), 9)' * sst / ntim; gr1pat = reshape(gr1pat, nlat, nlon); gr2pat = reshape(gr2pat, nlat, nlon); default_global figure(1); sd(1) gcont(gr2pat, [-5:.2:5]); dc sd(2) plot(rave(rave(gr2, 5), 9)) axis([0 481 -2.5 2.5]) grid