Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

Examples of EOF usage

Project: Tests
Views: 292
Kernel: Python 2 (SageMath)

North Atlantic Oscillation

import warnings import iris import iris.plot as iplt import cartopy.crs as ccrs import matplotlib.pyplot as plt import numpy as np from eofs.iris import Eof from eofs.examples import example_data_path
filename = example_data_path('hgt_djf.nc') z_djf = iris.load_cube(filename)
with warnings.catch_warnings(): # Iris emits a warning due to the non-contiguous time dimension. warnings.simplefilter('ignore', UserWarning) z_djf_mean = z_djf.collapsed('time', iris.analysis.MEAN) z_djf = z_djf - z_djf_mean
solver = Eof(z_djf, weights='coslat')
eof1 = solver.eofsAsCovariance(neofs=1)
clevs = np.linspace(-75, 75, 11) proj = ccrs.Orthographic(central_longitude=-20, central_latitude=60) ax = plt.axes(projection=proj) # ax.coastlines() ax.set_global() iplt.contourf(eof1[0, 0], levels=clevs, cmap=plt.cm.RdBu_r) ax.set_title('EOF1 expressed as covariance', fontsize=16) plt.show()
Image in a Jupyter notebook

El Niño

import cartopy.crs as ccrs import cartopy.feature as cfeature import iris import iris.plot as iplt import matplotlib.pyplot as plt import numpy as np from eofs.iris import Eof from eofs.examples import example_data_path
iris.FUTURE.netcdf_promote = True
filename = example_data_path('sst_ndjfm_anom.nc') sst = iris.load_cube(filename)
solver = Eof(sst, weights='coslat')
eof1 = solver.eofsAsCorrelation(neofs=1) pc1 = solver.pcs(npcs=1, pcscaling=1)
clevs = np.linspace(-1, 1, 11) ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=190)) fill = iplt.contourf(eof1[0], clevs, cmap=plt.cm.RdBu_r) # ax.add_feature(cfeature.LAND, facecolor='w', edgecolor='k') cb = plt.colorbar(fill, orientation='horizontal') cb.set_label('coefficient de correlation', fontsize=12) ax.set_title('EOF1 exprime comme correlation', fontsize=16)
<matplotlib.text.Text at 0x7f9f62646e10>
Image in a Jupyter notebook
plt.figure() iplt.plot(pc1[:, 0], color='b', linewidth=2) ax = plt.gca() ax.axhline(0, color='k') ax.set_ylim(-3, 3) ax.set_xlabel('Year') ax.set_ylabel('Normalized Units') ax.set_title('PC1 Time Series', fontsize=16) plt.show()
Image in a Jupyter notebook