Global Index (short | long) | Local contents | Local Index (short | long)
Get oi_clim data
This script calls | |
---|---|
cd /cdrom filin = 'clim_dec82-jun98.nc'; nc = netcdf(filin, 'nowrite'); lat = nc{'lat'}(:); lon = nc{'lon'}(:); olr = nc{'FLNT'}(:); nc = close(nc); % Get NCEP product cd /home/disk/tao/data/olr filin = 'olr.monthly.7498.nc'; nc = netcdf(filin, 'nowrite'); olat = nc{'lat'}(:); olon = nc{'lon'}(:); otim = nc{'time'}(97:290); datolr = nc{'data'}(97:290,:,:); nc = close(nc); fid = ncmex('OPEN', filin, 'NC_NOWRITE'); [time_base, status] = ncmex('ATTGET', fid, 'time', 1); fid = ncmex('CLOSE', fid); % Convert to W/m^2 fid = ncmex('OPEN', filin, 'NC_NOWRITE'); [ao, status] = ncmex('ATTGET', fid, 'data', 'add_offset'); [sf, status] = ncmex('ATTGET', fid, 'data', 'scale_factor'); fid = ncmex('CLOSE', fid); datolr = datolr*sf + ao; mv = max(max(max(datolr))); datolr(find(datolr == mv)) = NaN*ones(size(find(datolr == mv))); cd ~/matlab/CCM/oi_plots latk = find(lat >= -45 & lat <= 45); olatk = find(olat >= -45 & olat <= 45); % Plot DJF values [ntim, nlat, nlon] = size(datolr); datolr = reshape(datolr, ntim, nlat*nlon); [datolr, clim] = annave(datolr); clim = reshape(clim, 12, nlat, nlon); global XAX YAX FRAME FRAME = [0 360 -45 45]; orient tall XAX = lon; YAX = lat(latk); tem = squeeze(mean(olr([1 2 12],latk,:))); subplot('Position', [.1 .53 .8 .42]) % gcont(tem, lims, [-200:10:200]) mcont(tem, [-100:20:400], 'eqdcylin', 1); title('DJF OLR OI\_CLIM') xlabel('Contour Interval: 20 W/m^2') set(gca, 'DataAspectRatio', [1.8 1 1]) XAX = olon; YAX = olat(olatk); tem = squeeze(mean(clim([1 2 12],olatk,:))); subplot('Position', [.1 .0525 .8 .42]) % gcont(tem, lims, [-100:20:200]) mcont(tem, [-100:20:400], 'eqdcylin', 1); title('DJF OLR NCEP Product') xlabel('Contour Interval: 20 W/m^2') set(gca, 'DataAspectRatio', [1.8 1 1]) % Get ENSO climatologies % First, get time axis tem = otim - otim(1); mo = []; for i = 1:(ceil(ntim/12)); mo = [mo 1:12]; end mo = mo(1:ntim); yr = floor(tem / 365) + 1982; % Get cold and warm year climatologies; cd /home/disk/tao/data/olr filin = 'olr.monthly.7498.nc'; nc = netcdf(filin, 'nowrite'); datolr = nc{'data'}(97:290,:,:); nc = close(nc); datolr = datolr*sf + ao; mv = max(max(max(datolr))); datolr(find(datolr == mv)) = NaN*ones(size(find(datolr == mv))); wyr = [1983 1988 1992 1995 1998]; cyr = [1984 1985 1989 1996 1997]; wind = intersect(find(ismember(yr, wyr)), find(ismember(mo, 1))); cind = intersect(find(ismember(yr, cyr)), find(ismember(mo, 1))); wolrdat = reshape(mean2(datolr([wind wind-1 wind+1],:,:)),nlat,nlon); colrdat = reshape(mean2(datolr([cind cind-1 cind+1],:,:)),nlat,nlon); % Get WCLIM and CCLIM data from cd cd /cdrom filin = 'coldenso.nc'; nc = netcdf(filin, 'nowrite'); colr = nc{'FLNT'}(:); nc = close(nc); colr = squeeze(mean(colr(2:4,:,:))); filin = 'warmenso.nc'; nc = netcdf(filin, 'nowrite'); wolr = nc{'FLNT'}(:); nc = close(nc); wolr = squeeze(mean(wolr(2:4,:,:))); % Plot warm events cd ~/matlab/CCM/oi_plots XAX = lon; YAX = lat(latk); tem = wolr(latk,:); subplot('Position', [.1 .53 .8 .42]) % gcont(tem, lims, [-200:10:200]) mcont(tem, [-100:20:400], 'eqdcylin', 1); title('Warm Event DJF OLR OI\_CLIM') xlabel('Contour Interval: 20 W/m^2') set(gca, 'DataAspectRatio', [1.8 1 1]) XAX = olon; YAX = olat(olatk); tem = wolrdat(olatk,:); subplot('Position', [.1 .0525 .8 .42]) % gcont(tem, lims, [-100:20:200]) mcont(tem, [-100:20:400], 'eqdcylin', 1); title('Warm Event DJF OLR NCEP Product') xlabel('Contour Interval: 20 W/m^2') set(gca, 'DataAspectRatio', [1.8 1 1]) % Plot cold events XAX = lon; YAX = lat(latk); tem = colr(latk,:); subplot('Position', [.1 .53 .8 .42]) % gcont(tem, lims, [-200:10:200]) mcont(tem, [-100:20:400], 'eqdcylin', 1); title('Cold Event DJF OLR OI\_CLIM') xlabel('Contour Interval: 20 W/m^2') set(gca, 'DataAspectRatio', [1.8 1 1]) XAX = olon; YAX = olat(olatk); tem = colrdat(olatk,:); subplot('Position', [.1 .0525 .8 .42]) mcont(tem, [-100:20:400], 'eqdcylin', 1); title('Cold Event DJF OLR NCEP Product') xlabel('Contour Interval: 20 W/m^2') set(gca, 'DataAspectRatio', [1.8 1 1]) % Plot differences tem = squeeze(mean2(clim([12 1 2],:,:))); tem = interp2(olon, olat, tem, lon', lat); XAX = lon; YAX = lat(latk); tem = squeeze(mean2(olr([12 1 2],latk,:))) - tem(latk,:); subplot('Position', [.1 .53 .8 .42]) mcont(tem, [-100:10:100], 'eqdcylin', 1); title('OLR (OI\_CLIM - NCEP)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) tem = interp2(olon, olat, wolrdat, lon', lat); tem = wolr(latk,:) - tem(latk,:); subplot('Position', [.1 .53 .8 .42]) mcont(tem, [-100:10:100], 'eqdcylin', 1); title('Warm Event DJF OLR (OI\_CLIM - NCEP)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) tem = interp2(olon, olat, colrdat, lon', lat); tem = colr(latk,:) - tem(latk,:); subplot('Position', [.1 .0525 .8 .42]) mcont(tem, [-100:10:100], 'eqdcylin', 1); title('Cold Event DJF OLR (OI\_CLIM - NCEP)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) % Plot warm vs. cold anomalies: XAX = lon; YAX = lat(latk); tem = wolr(latk,:)-squeeze(mean(olr([12 1 2],latk,:))); subplot('Position', [.1 .53 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('Warm Event DJF OLR anom (OI\_WARM - OI\_CLIM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) tem = colr(latk,:)-squeeze(mean(olr([12 1 2],latk,:))); subplot('Position', [.1 .0525 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('Cold Event DJF OLR anom (OI\_COLD - OI\_CLIM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) % ENSO - CLIM (ncep stuff) XAX = olon; YAX = olat(olatk); tem = wolrdat(olatk,:)-squeeze(mean(clim([12 1 2],olatk,:))); subplot('Position', [.1 .53 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('Warm Event DJF OLR anom (NCEP\_WARM - NCEP\_CLIM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) tem = colrdat(olatk,:)-squeeze(mean(clim([12 1 2],olatk,:))); subplot('Position', [.1 .0525 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('Cold Event DJF OLR anom (NCEP\_COLD - NCEP\_CLIM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) % Warm and Cold OI - NCEP tem1 = wolr-squeeze(mean(olr([12 1 2],:,:))); tem2 = wolrdat-squeeze(mean(clim([12 1 2],:,:))); tem2 = interp2(olon, olat, tem2, lon', lat); tem = tem1(latk,:)-tem2(latk,:); XAX = lon; YAX = lat(latk); subplot('Position', [.1 .53 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('Warm Event DJF OLR anom (OI\_WARM\_ANOM - NCEP\_WARM\_ANOM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) tem1 = colr-squeeze(mean(olr([12 1 2],:,:))); tem2 = colrdat-squeeze(mean(clim([12 1 2],:,:))); tem2 = interp2(olon, olat, tem2, lon', lat); tem = tem1(latk,:)-tem2(latk,:); subplot('Position', [.1 .0525 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('Warm Event DJF OLR anom (OI\_COLD\_ANOM - NCEP\_COLD\_ANOM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) % Linear component of OLR response: OI XAX = lon; YAX = lat(latk); tem = wolr(latk,:) - colr(latk,:); subplot('Position', [.1 .53 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('OI Linear Component (OI\_WARM - OI\_COLD)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) subplot('Position', [.1 .0525 .8 .42]) tem = (wolr(latk,:) + colr(latk,:)) - ... 2*(squeeze(mean(olr([12 1 2],latk,:)))); mcont(tem, [-105:10:105], 'eqdcylin', 1); title('OI Non-Linear Component (OI\_WARM + OI\_COLD - 2*OI\_CLIM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) % Linear component of OLR response: NCEP XAX = olon; YAX = olat(olatk); tem = wolrdat(olatk,:) - colrdat(olatk,:); subplot('Position', [.1 .53 .8 .42]) mcont(tem, [-105:10:105], 'eqdcylin', 1); title('NCEP Linear Component (WARM - COLD)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1]) subplot('Position', [.1 .0525 .8 .42]) tem = (wolrdat(olatk,:) + colrdat(olatk,:)) - ... 2*(squeeze(mean(clim([12 1 2],olatk,:)))); mcont(tem, [-105:10:105], 'eqdcylin', 1); title('NCEP Non-Linear Component (WARM + COLD - 2*CLIM)') xlabel('Contour Interval: 10 W/m**2') set(gca, 'DataAspectRatio', [1.8 1 1])