EOF_STAT(A,FRAC_TIMESER) Used with EOF_SPACE and/or EOF_TFUNC. Return statistics related to an EOF solution for a given set of parameters. Results are on the x-axis j = 1: number of EOFs computed and scaled, j = 2: percentage of total variance accounted for by each eigenvector, j = 3: the eigenvalues.
If running Ferret V6.8 and higher, also see EOFSVD_STAT, below. If there are gaps in your data, you may choose to use one of Ferret's filling transformations to fill the gaps and then compute the EOF results using EOFSVD functions. Or, see the instructions in the the Version 6.93 Release Notes to install the non-SVD functions. They run much slower, and return a result when there are gaps in the time series.
The computation is made in the X-Y and T directions. If the grid of the argument has further dimensions such as Z, then the XYT computation is made independently at each Z level.
Arguments: |
A |
Variable in X,Y, and Time (see note above). |
FRAC_TIMESER |
Use only those time series with this fraction valid data, e.g. 0.8 to require that 80% of the data be present to use the data at a location. |
|
Result Axes: |
X |
ABSTRACT: 1 to NEOF |
Y |
ABSTRACT: 1 through 3 as outlined in the description. |
|
Z |
NORMAL (no axis) |
|
T |
NORMAL (no axis) |
Please see the discussion under EOF_SPACE, and see the demonstration ef_eof_demo.jnl for examples of this function.
Example results:
For a simple sample function, eof_stat called to decompose it into eigenfunctions. We allow data to be used if the time series at the point has at least 80% valid data.
Request the number of eigenvalues computed for this choice of parameters.
yes? list/i=1/j=1 eofstat VARIABLE : EOF_STAT(SST[X=67W:1W,Y=11S:11N], 0.8) DATA SET : COADS Monthly Climatology (1946-1989) FILENAME : coads_climatology.des FILEPATH : /home/ja9/tmap/fer_dsets/descr/ X : 1 Y : 1 284.0
Now get the percent variance explained by the eigenfunctions which were computed.
yes? list/i=1:10/j=2 eofstat VARIABLE : EOF_STAT(SST[X=67W:1W,Y=11S:11N], 0.8) DATA SET : COADS Monthly Climatology (1946-1989) FILENAME : coads_climatology.des FILEPATH : /home/ja9/tmap/fer_dsets/descr/ SUBSET : 10 points (X) Y : 2 2 2 1 / 1: 86.95 2 / 2: 5.82 3 / 3: 3.87 4 / 4: 1.51 5 / 5: 0.56 6 / 6: 0.38 7 / 7: 0.31 8 / 8: 0.23 9 / 9: 0.15 10 / 10: 0.11
And finally the eigenvalues associated with these eigenfunctions.
yes? list/i=1:10/j=3 eofstat VARIABLE : EOF_STAT(SST[X=67W:1W,Y=11S:11N], 0.8) DATA SET : COADS Monthly Climatology (1946-1989) FILENAME : coads_climatology.des FILEPATH : /home/ja9/tmap/fer_dsets/descr/ SUBSET : 10 points (X) Y : 3 3 3 1 / 1: 249.4 2 / 2: 16.7 3 / 3: 11.1 4 / 4: 4.3 5 / 5: 1.6 6 / 6: 1.1 7 / 7: 0.9 8 / 8: 0.7 9 / 9: 0.4 10 / 10: 0.3
EOFSVD_STAT(A) Used with EOFSVD_SPACE and EOFSVD_TFUNC. Return statistics related to an EOFSVD solution for a given set of parameters. Results are on the x-axis j = 1: # EOFs computed and scaled, j = 2: % percentage of total variance accounted for by each eigenvector, j = 3: the eigenvalues.
Arguments: |
A |
Variable in any spatial dimensions, and time |
Result Axes: |
X |
ABSTRACT: 1 to NEOF |
Y |
ABSTRACT: 1 through 3 as outlined in the description. |
|
Z |
NORMAL (no axis) |
|
T |
NORMAL (no axis) |
The code runs a program contributed by Billy Kessler. It finds "traditionally-scaled" EOFs using a Singular Value Decomposition routine. "Traditionally-scaled" means that the units of the EOFs are the units of the variable, while the TAFs are dimensionless. The routine is based on Numerical Recipes routine svdcmp.f. The result of EOF decomposition is that a function f(x,t) of space and time is decomposed into a sum of products: f(x,t) = SUM[v(x)*a(t)]. The v(x) are referred to as the EOFs, or eigenvectors, while the a(t) are the "Time Amplitude Functions" (TAFs) (Also called "Principal Components") The number of terms in the sum (number of non-zero EOFs)
is the minimum of (# of locations,# of times). Based on Numerical Recipes subroutine svdcmp.
The EOFSVD functions all make the same computations, returning different portions of the results. EOFSVD_ ESPACE returns the eigenfunctions, normalized so that they have the units of data, while time amplitude functions (TAF's) are dimensionless. Thus the sum of the values of a given EOF = sqrt(eigenvalue), and the mean of a given TAF = 1.OFSVD_STAT returns some useful statistics: the number of EOF's which were computed and normalized for the parameters given; the %variation explained for each eigenfunction, and the eigenvalues.
Specifying the context of the input variable explicitly e.g.
EOFSVD_STAT(A[x=20:40,y=2s:40n,l=1:58])
will prevent any confusion about the region. See the note in chapter 3 on the context of variables passed to functions.
The EOFSVD analysis solves a matrix problem where the matrix is dimensioned (NX*NY*NZ) by NT, which can quickly become quite large. The EOFSVD functions use other workspace as well which demands even more memory, and often memory must be increased with the SET MEMORY command. Regridding to a coarser grid or restricting the region may be necessary.
See the example under EOF_STAT for more on the results of this function, and see the demonstration ef_eof_demo.jnl for examples of this function.