Documentation of reg_ccmsst_on_nmc


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


Help text

  Now, get NMC data

Cross-Reference Information

This script calls

Listing of script reg_ccmsst_on_nmc


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