Decompose residuals from the mean field into orthogonal components. One of these components (conventionally the first component) is always the normalized global mean temperature operator. This convention isolates the time variability of the global mean in a single components and ensures that the remaining components describe variability that is purely spatial. This method also works when the state vector is grid cell temperature and grid cell precipitation (or other variable that patters with temperature) at time t - the state vector is 2Ngrid instead of Ngrid long. However, the two variable extension assumes that the first component is the normalized global mean temperature operator, concatenated with a 0 operator. This corresponds to the idea that the the global average value of precipitation (or other variable) is not relevant.

eof_analyze(resids, Ngrid, globop)

Arguments

resids

A matrix [ntime x ngrid] or [ntime x 2ngrid] of residuals from the mean field. Temperature residuals must always occupy the first ngrid columns.

Ngrid

The number of spatial grid cells for each variable in data in dat. Defaults to 55296, a half degree grid.

globop

A column vector [ngrid x 1] containing the global mean operator. This is produced as the globop field of the structure returned by read.general.

Value

The return value of this function is in the same format as the structure returned by princomp. The most important fields are:

rotation

A matrix [ngrid x N] containing orthogonal basis vectors for the residuals. Each column is a basis vector. The number of basis vectors, N, will be less than or equal to the number of time slices in the input.

x

A matrix [ntime x N] containing the coordinates of the residuals in the coordinate system defined by the basis vectors. Each row is a time slice. Thus, \(r(t) = \sum_{i=1}^{N} x[t,i] * rotation[:,i]\).