# Read SST anomalies using the cdms2 module from CDAT. The file contains # November-March averages of SST anomaly in the central and northern Pacific. ncin = cdms2.open("../../example_data/sst_ndjfm_anom.nc") sst = ncin("sst") ncin.close() # Create an EOF solver to do the EOF analysis. Square-root of cosine of # latitude weights are applied before the computation of EOFs. solver = Eof(sst, weights="coslat") # Retrieve the leading EOF, expressed as the correlation between the leading # PC time series and the input SST anomalies at each grid point, and the # leading PC time series itself. eof1 = solver.eofsAsCorrelation(neofs=1) pc1 = solver.pcs(npcs=1, pcscaling=1) # Plot the leading EOF expressed as correlation in the Pacific domain. m = Basemap(projection="cyl", llcrnrlon=120, llcrnrlat=-20, urcrnrlon=260, urcrnrlat=60) lons, lats = eof1.getLongitude()[:], eof1.getLatitude()[:] x, y = m(*np.meshgrid(lons, lats)) clevs = np.linspace(-1, 1, 11) m.contourf(x, y, eof1(squeeze=True), clevs, cmap=plt.cm.RdBu_r) m.drawcoastlines() m.drawparallels([-20, 0, 20, 40, 60]) m.drawmeridians([120, 140, 160, 180, 200, 220, 240, 260]) cb = plt.colorbar(orientation="horizontal") cb.set_label("correlation coefficient", fontsize=12) plt.title("EOF1 expressed as correlation", fontsize=16)
# Read SST anomalies using the cdms2 module from CDAT. The file contains # November-March averages of SST anomaly in the central and northern Pacific. ncin = cdms2.open('../../example_data/sst_ndjfm_anom.nc') sst = ncin('sst') ncin.close() # Create an EOF solver to do the EOF analysis. Square-root of cosine of # latitude weights are applied before the computation of EOFs. solver = Eof(sst, weights='coslat') # Retrieve the leading EOF, expressed as the correlation between the leading # PC time series and the input SST anomalies at each grid point, and the # leading PC time series itself. eof1 = solver.eofsAsCorrelation(neofs=1) pc1 = solver.pcs(npcs=1, pcscaling=1) # Plot the leading EOF expressed as correlation in the Pacific domain. m = Basemap(projection='cyl', llcrnrlon=120, llcrnrlat=-20, urcrnrlon=260, urcrnrlat=60) lons, lats = eof1.getLongitude()[:], eof1.getLatitude()[:] x, y = m(*np.meshgrid(lons, lats)) clevs = np.linspace(-1, 1, 11) m.contourf(x, y, eof1(squeeze=True), clevs, cmap=plt.cm.RdBu_r) m.drawcoastlines() m.drawparallels([-20, 0, 20, 40, 60]) m.drawmeridians([120, 140, 160, 180, 200, 220, 240, 260]) cb = plt.colorbar(orientation='horizontal') cb.set_label('correlation coefficient', fontsize=12) plt.title('EOF1 expressed as correlation', fontsize=16)