Area-Weighted Empirical Orthogonal Function Analysis Using SVD
Performs an area-weighted EOF analysis using SVD based on a covariance matrix
by default, based on the correlation matrix if corr argument is set to
TRUE.
EOF(ano, lon, lat, neofs = 15, corr = FALSE)
ano |
Array of anomalies with dimensions (number of timesteps, number of latitudes, number of longitudes). NAs could exist but it should be consistent along time_dim. That is, if one grid point has NAs, all the time steps at this point should be NAs. |
lon |
Vector of longitudes of |
lat |
Vector of latitudes of |
neofs |
Number of modes to be kept. Default = 15. |
corr |
Whether to base on a correlation matrix ( |
EOFs |
An array of EOF patterns normalized to 1 (unitless) with dimensions
(number of modes, number of latitudes, number of longitues).
Multiplying |
PCs |
An array of pincipal components with the units of the original field to
the power of 2, with dimensions (number of time steps, number of modes).
|
var |
Percentage ( mode (number of modes). |
mask |
Mask with dimensions (number of latitudes, number of longitudes). |
wght |
Weights with dimensions (number of latitudes, number of longitudes). |
History:
0.1 - 2012-10 (F. Lienert, fabian.lienert@ic3.cat) - Original
code, inspired by R. Benestad's EOF() in R package clim.pact.
0.2 - 2014-03 (Lauriane Batte, lauriane.batte@ic3.cat) - Bug-fixes:
1- Reversion of latitudes in the weights
2- Correlation matrix was used instead of covariance
3- Double use of the weights
0.3 - 2014-03 (Virginie Guemas, virginie.guemas@bsc.es) - Bug-fixes:
1- Weight computation - division by sum of cos(lat)
2- Shuffling of EOFs in EOF.2 intermediate vector
3- Crash when neofs = 1 sorted out
4- Crash when neofs > nt sorted out
0.4 - 2014-03 (Lauriane Batte, lauriane.batte@ic3.cat) - Fixes:
1- BIG cleanup of code and clarification
2- Reduction of the number of transpositions and associated bug-fixes
4- Remove of the obsolete LINPACK options
0.5 - 2014-04 (Virginie Guemas, virginie.guemas@bsc.es) - Fixes:
1- Bug-fix in dimensions handling EOF composition restitutes now the
original field in all cases
2- Simplification of the convention transpose
3- Options to use the correlation matrix rather than the
covariance matrix
4- Security checks
5- New normalization of PCs so that PC*EOF only reconstruct the
original file
6- Weights = sqrt(cos(lat)) for ano so that covariance matrice
weighted by cos(lat)
7- Division of EOF by weights so that the reconstruction is simply
EOF * PC
1.0 - 2016-03 (N. Manubens, nicolau.manubens@bsc.es) - Formatting to R CRAN
ProjectField, NAO, PlotBoxWhisker
# See examples on Load() to understand the first lines in this example
## Not run:
data_path <- system.file('sample_data', package = 's2dverification')
expA <- list(name = 'experiment', path = file.path(data_path,
'model/$EXP_NAME$/$STORE_FREQ$_mean/$VAR_NAME$_3hourly',
'$VAR_NAME$_$START_DATE$.nc'))
obsX <- list(name = 'observation', path = file.path(data_path,
'$OBS_NAME$/$STORE_FREQ$_mean/$VAR_NAME$',
'$VAR_NAME$_$YEAR$$MONTH$.nc'))
# Now we are ready to use Load().
startDates <- c('19851101', '19901101', '19951101', '20001101', '20051101')
sampleData <- Load('tos', list(expA), list(obsX), startDates,
leadtimemin = 1, leadtimemax = 4, output = 'lonlat',
latmin = 27, latmax = 48, lonmin = -12, lonmax = 40)
## End(Not run)
# This example computes the EOFs along forecast horizons and plots the one that
# explains the greatest amount of variability. The example data is very low
# resolution so it does not make a lot of sense.
ano <- Ano_CrossValid(sampleData$mod, sampleData$obs)
eof <- EOF(Mean1Dim(ano$ano_exp, 2)[1, , 1, , ], sampleData$lon, sampleData$lat)
PlotEquiMap(eof$EOFs[1, , ], sampleData$lon, sampleData$lat)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.