Skip to content

Preparing predictor data

miturbide edited this page Jun 20, 2018 · 21 revisions

Introduction

This document illustrates the preparation of different predictor configurations in perfect-prog experiments.

Broadly speaking, there are two main configurations:

  1. Using atmospheric fields "as they are" for a given spatial domain
  2. Using principal components obtained from these fields. This can be either a principal component calculated upon a particular variable, and/or a combined PC considering a combination of different predictor variables.
  3. Furthermore, in addition to Principal Components or raw atmospheric fields that provide a synoptic descriptor, local information of a particular variable or set of variables can be also included as a predictor in the calibration phase (e.g. the surface temperature in the nearest grid cells around a given station).

The large number of options required for a fine-tuning of a downscaling method requires a flexible, yet easily configurable interface, enabling users to launch complex experiments for testing different predictor setups. prepareData has been designed to this aim. A few reproducible examples are presented in this vignette.

A note on the terminology used

In the climate4R bundle (see e.g. Cofiño et al. 2017), atmospheric variables are stored in the so called data grids. In order to efficiently handle multiple variables used as predictors in downscaling experiments, "stacks" of grids are used. These are known as multiGrids, and can be obtained using the constructor makeMultiGrid from a set of -dimensionally consistent- grids.

Example data

Predictors

Daily data from the NCEP reanalysis (Kalnay et al. 1996) are used as example. In particular, a domain centered on the Iberian Peninsula is considered, and three variables (mean sea-level pressure psl, specific humidity at 850mb hus850 and air temperature at 850mb ta850) will be used as predictors. These are built-in example datasets from the package transformeR of the climate4R bundle. See for instance help("NCEP_Iberia_hus850", package = "transformeR") for further details.

library(transformeR)
data("NCEP_Iberia_hus850", "NCEP_Iberia_psl", "NCEP_Iberia_ta850")

The grids are already spatially and temporally consistent, so they can be stacked in a multiGrid structure:

x <- makeMultiGrid(NCEP_Iberia_hus850, NCEP_Iberia_psl, NCEP_Iberia_ta850)

Here we use function spatialPlot from visualizeR (also part of the climate4R bundle) to visualize grids and/or as in this case multiGrids:

require(visualizeR)
spatialPlot(climatology(x), backdrop.theme = "coastline")

Predictands

The predictands correspond to the observations used for downscaling. These are typically meteorological station data or interpolated gridded datasets. In this example, we use a subset of stations used in a large intercomparison experiment of downscaling methods performed in the framework of the COST Action VALUE (Maraun et al. 2015). The target variable is daily precipitation.

data("VALUE_Iberia_tas")
y <- VALUE_Iberia_tas
spatialPlot(climatology(y), backdrop.theme = "countries", cex = 1.5,
                main = "Mean Winter daily precip (mm/day, 1983-2002")

Although the aim of this example is preparing only the predictors (the predictands are not manipulated), the information of the predictand is always required in order to ensure the spatio-temporal consistency of the experiment. The function handles internally non-overlapping temporal periods, ensuring that there is a perfect match between predictors and predictand prior to model calibration.

Worked examples

library(downscaleR)

Brief description of the output predictor data structure

In this section we briefly describe the main charateristics of the output object of prepareData. It is in essence a named list with different components, whose content varies depending on the predictor setup:

  • y: This is the predictand object. If required, it is a subset of the original one in order to ensure the temporal consistency with the predictors (this is achieved internally through the helper function getTemporalIntersection in transformeR).
  • x.global: Is the global predictor data matrix. In this example, it is a matrix in which rows correspond to times (days in this case) and the columns to locations, arranged via the internal helper transformeR::array3Dto2Dmat. If there is more than one variable as predictor, as in the example, the matrices for each variable are just binded by columns. In other cases, fopr instance when using PCs, this matrix corresponds to the selected combined PC (rows are times, and columns are PCs, in decreasing order of explained variance according to the user specifications).
  • x.local: in case local predictors are used, the local information is included here. This is a list of matrices, of the same longitude as the number of locations in the predictand, each one containing the local information that will be appended to the global matrix. Note that for extensibility to the definition of local newdata information for model prediction, it is structured as a nested list of the form sites --> members, although in the case of predictors, there is only one single member and this dimension in this case is not needed (it is necessary however in order to make predictions with multimember models, e.g. seasonal forecasts).
  • pca: This element stores the whole PCA (this is the output of the transformeR::prinComp function). It contains metadata required in subsequent steps.
  • In addition, several attributes are appended to the output to aid in the traceability of the predictor structure.

These elements will be next shown for case studies, building upon the example datasets descriibed in the previous section.

Case studies

Using the raw predictor variables

In this situation, the multigrid is directly passed to prepareData. Note that only x (predictors multigrid) and y (predictand, stations) are passed to the function, while the rest of arguments are left with their default value NULL (they could be omitted):

out <- prepareData(x = x,
                          y = y,
                          global.vars = NULL,
                          spatial.predictors = NULL,
                          local.predictors = NULL)
str(out)

## List of 4
##  $ y       :List of 5
##   ..$ Variable:List of 1
##   .. ..$ varName: chr "tmean"
##   .. ..- attr(*, "subset")= chr "time"
##   .. ..- attr(*, "time_subset")= chr "getTemporalIntersection"
##   ..$ Data    : num [1:1805, 1:11] 2.9 3.4 1 0.6 4.3 8 10.1 9.4 9.8 10.4 ...
##   .. ..- attr(*, "dimensions")= chr [1:2] "time" "loc"
##   ..$ xyCoords:'data.frame': 11 obs. of  2 variables:
##   .. ..$ x: num [1:11] -6.73 -9.15 -6.83 -4.49 -4.01 ...
##   .. ..$ y: num [1:11] 41.8 38.7 38.9 36.7 40.8 ...
##   .. ..- attr(*, "projection")= chr "+proj=longlat +init=epsg:4326 +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
##   .. ..- attr(*, "resX")= num 0
##   .. ..- attr(*, "resY")= num 0
##   ..$ Dates   :List of 2
##   .. ..$ start: chr [1:1805] "1982-12-01 00:00:00" "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" ...
##   .. ..$ end  : chr [1:1805] "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" "1982-12-05 00:00:00" ...
##   .. ..- attr(*, "season")= int [1:3] 12 1 2
##   ..$ Metadata:List of 4
##   .. ..$ station_id: chr [1:11] "000212" "000214" "000229" "000231" ...
##   .. ..$ name      : chr [1:11] "BRAGANCA" "LISBOA-GEOFISICA" "BADAJOZ-TALAVERALAREAL" "MALAGA" ...
##   .. ..$ altitude  : int [1:11] 690 77 185 7 1894 251 44 151 370 8 ...
##   .. ..$ source    : chr [1:11] "ECA&D" "ECA&D" "ECA&D" "ECA&D" ...
##  $ x.global: num [1:1805, 1:105] 0.00183 0.00418 0.00498 0.00504 0.00383 ...
##  $ x.local : NULL
##  $ pca     : NULL
##  - attr(*, "predictor.vars")= chr [1:3] "hus@850" "psl" "ta@850"
##  - attr(*, "nature")= chr "raw"
##  - attr(*, "globalPred.vars")= chr [1:3] "hus@850" "psl" "ta@850"
##  - attr(*, "dates")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##  - attr(*, "xyCoords")=List of 2
##   ..$ x: num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..$ y: num [1:5] 35 37.5 40 42.5 45
str(attributes(out))

## List of 6
##  $ names          : chr [1:4] "y" "x.global" "x.local" "pca"
##  $ predictor.vars : chr [1:3] "hus@850" "psl" "ta@850"
##  $ nature         : chr "raw"
##  $ globalPred.vars: chr [1:3] "hus@850" "psl" "ta@850"
##  $ dates          : chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##  $ xyCoords       :List of 2
##   ..$ x: num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..$ y: num [1:5] 35 37.5 40 42.5 45

Using PCs as predictors

In this example, instead of using the raw fields as predictors, we will use principal components. The tuning of the principal component analysis can be undertaken by passing the different possible arguments admitted by transformeR::prinComp, which are detailed in the help of the function to the argument PCA of prepareData, in the form of a named list.

Note that here we will use the first 5 PCs of the 3 input variables contained in the multigrid, which are:

getVarNames(x)

## [1] "hus@850" "psl"     "ta@850"

If we use the first 5 PCs of the 3 input variables, hence:

out <- prepareData(x = x,
                          y = y,
                          spatial.predictors = list(n.eofs = c(10,5,5))
)

In this case, the output element pca contains the full output of prinComp, that will be needed in subsequent steps of the downscaling. There is also a global attribute PCA.pars containing metadata of the PCA options chosen. Note that now, the x.global element of the output contains the PC matrix of all the variables in the input grid, and thus it has $10+5+5=20$ columns corresponding to the number of PCs for each variable indicated in n.

str(out)

## List of 4
##  $ y       :List of 5
##   ..$ Variable:List of 1
##   .. ..$ varName: chr "tmean"
##   .. ..- attr(*, "subset")= chr "time"
##   .. ..- attr(*, "time_subset")= chr "getTemporalIntersection"
##   ..$ Data    : num [1:1805, 1:11] 2.9 3.4 1 0.6 4.3 8 10.1 9.4 9.8 10.4 ...
##   .. ..- attr(*, "dimensions")= chr [1:2] "time" "loc"
##   ..$ xyCoords:'data.frame': 11 obs. of  2 variables:
##   .. ..$ x: num [1:11] -6.73 -9.15 -6.83 -4.49 -4.01 ...
##   .. ..$ y: num [1:11] 41.8 38.7 38.9 36.7 40.8 ...
##   .. ..- attr(*, "projection")= chr "+proj=longlat +init=epsg:4326 +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
##   .. ..- attr(*, "resX")= num 0
##   .. ..- attr(*, "resY")= num 0
##   ..$ Dates   :List of 2
##   .. ..$ start: chr [1:1805] "1982-12-01 00:00:00" "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" ...
##   .. ..$ end  : chr [1:1805] "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" "1982-12-05 00:00:00" ...
##   .. ..- attr(*, "season")= int [1:3] 12 1 2
##   ..$ Metadata:List of 4
##   .. ..$ station_id: chr [1:11] "000212" "000214" "000229" "000231" ...
##   .. ..$ name      : chr [1:11] "BRAGANCA" "LISBOA-GEOFISICA" "BADAJOZ-TALAVERALAREAL" "MALAGA" ...
##   .. ..$ altitude  : int [1:11] 690 77 185 7 1894 251 44 151 370 8 ...
##   .. ..$ source    : chr [1:11] "ECA&D" "ECA&D" "ECA&D" "ECA&D" ...
##  $ x.global: num [1:1805, 1:20] -0.148 0.679 1.757 2.195 4.994 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : NULL
##   .. ..$ : chr [1:20] "PC1" "PC2" "PC3" "PC4" ...
##  $ x.local : NULL
##  $ pca     :List of 3
##   ..$ hus@850:List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:10] -0.148 0.679 1.757 2.195 4.994 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:10] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ EOFs: num [1:35, 1:10] 0.129 0.156 0.168 0.151 0.103 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:10] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 0.00329 0.00323 0.00338 0.00343 0.00339 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 0.00148 0.0015 0.00154 0.00153 0.00148 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:10] 0.429 0.611 0.724 0.8 0.843 ...
##   ..$ psl    :List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:5] 0.299 -0.809 -2.795 -6.589 -9.13 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:5] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ EOFs: num [1:35, 1:5] -0.142 -0.16 -0.169 -0.165 -0.149 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:5] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 102167 102202 102168 102069 101910 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 714 818 898 991 1119 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:5] 0.822 0.912 0.979 0.986 0.991
##   ..$ ta@850 :List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:5] -4.54 -4.83 -4.32 -1.18 2.52 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:5] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ EOFs: num [1:35, 1:5] 0.154 0.157 0.154 0.149 0.136 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:5] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 280 279 277 277 276 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 3.4 3.27 3.21 3.33 3.53 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:5] 0.687 0.835 0.935 0.958 0.974
##   ..- attr(*, "level")= num [1:3] 850 NA 850
##   ..- attr(*, "dates_start")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##   ..- attr(*, "dates_end")= chr [1:1805] "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" "1982-12-05 GMT" ...
##   ..- attr(*, "season")= int [1:3] 12 1 2
##   ..- attr(*, "xCoords")= num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..- attr(*, "yCoords")= num [1:5] 35 37.5 40 42.5 45
##   ..- attr(*, "projection")= chr "LatLonProjection"
##  - attr(*, "spatialPred.pars")=List of 1
##   ..$ n.eofs: num [1:3] 10 5 5
##  - attr(*, "predictor.vars")= chr [1:3] "hus@850" "psl" "ta@850"
##  - attr(*, "nature")= chr "spatial"
##  - attr(*, "globalPred.vars")= chr [1:3] "hus@850" "psl" "ta@850"
##  - attr(*, "dates")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##  - attr(*, "xyCoords")=List of 2
##   ..$ x: num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..$ y: num [1:5] 35 37.5 40 42.5 45

Introducing local predictors

Finally, it is possible to specify local predictors using the corresponding argument. It is passed as a named list with the following elements:

  • vars: the names of the variables to be used as local predictors
  • n: the number of nearest points/grid-boxes to the predcitand location to be used
  • fun: the aggregation function of the selected neighbours (if any). If NULL (the default), the nearest neighbours are not aggregated but just appended to the predictor matrix.

TIP: In order to select variables, either for local predictors or for multigrid subsetting via global.vars, the helper getVarNames from transformeR may be useful:

getVarNames(x)

## [1] "hus@850" "psl"     "ta@850"

Next, we will use the raw fields of air temperature at 850mb and sea-level pressure as global predictors (global.vars = c("ta@850", "psl")). In addition, specific humidity at 850mb will be used as a local predictor (vars = "hus@850"). In this example, we will consider the 4 closest points to the predictand location (n =4), and no aggregation of the neighbours is undertaken (fun = NULL, this argument could be ommited as this is the default).

out <- prepareData(x = x,
                          y = y,
                          global.vars = c("ta@850", "psl"),
                          local.predictors = list(vars = "hus@850",
                                                  n = 4,
                                                  fun = NULL)
)
str(out)



## List of 4
##  $ y       :List of 5
##   ..$ Variable:List of 1
##   .. ..$ varName: chr "tmean"
##   .. ..- attr(*, "subset")= chr "time"
##   .. ..- attr(*, "time_subset")= chr "getTemporalIntersection"
##   ..$ Data    : num [1:1805, 1:11] 2.9 3.4 1 0.6 4.3 8 10.1 9.4 9.8 10.4 ...
##   .. ..- attr(*, "dimensions")= chr [1:2] "time" "loc"
##   ..$ xyCoords:'data.frame': 11 obs. of  2 variables:
##   .. ..$ x: num [1:11] -6.73 -9.15 -6.83 -4.49 -4.01 ...
##   .. ..$ y: num [1:11] 41.8 38.7 38.9 36.7 40.8 ...
##   .. ..- attr(*, "projection")= chr "+proj=longlat +init=epsg:4326 +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
##   .. ..- attr(*, "resX")= num 0
##   .. ..- attr(*, "resY")= num 0
##   ..$ Dates   :List of 2
##   .. ..$ start: chr [1:1805] "1982-12-01 00:00:00" "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" ...
##   .. ..$ end  : chr [1:1805] "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" "1982-12-05 00:00:00" ...
##   .. ..- attr(*, "season")= int [1:3] 12 1 2
##   ..$ Metadata:List of 4
##   .. ..$ station_id: chr [1:11] "000212" "000214" "000229" "000231" ...
##   .. ..$ name      : chr [1:11] "BRAGANCA" "LISBOA-GEOFISICA" "BADAJOZ-TALAVERALAREAL" "MALAGA" ...
##   .. ..$ altitude  : int [1:11] 690 77 185 7 1894 251 44 151 370 8 ...
##   .. ..$ source    : chr [1:11] "ECA&D" "ECA&D" "ECA&D" "ECA&D" ...
##  $ x.global: num [1:1805, 1:70] 102168 102320 102595 102930 103260 ...
##  $ x.local :List of 11
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00223 0.00293 0.00312 0.00389 0.00631 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00114 0.00337 0.00468 0.00554 0.00598 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.0019 0.00328 0.00385 0.0035 0.00416 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00287 0.00445 0.00462 0.00295 0.00245 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00264 0.00294 0.00254 0.00218 0.00408 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00401 0.00372 0.00401 0.00329 0.00464 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00378 0.00284 0.00342 0.00351 0.00349 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00391 0.00339 0.00382 0.00369 0.00337 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00262 0.00341 0.00342 0.0067 0.00797 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00378 0.00284 0.00342 0.00351 0.00349 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00264 0.00294 0.00254 0.00218 0.00408 ...
##   ..- attr(*, "local.index.list")=List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  $ pca     : NULL
##  - attr(*, "localPred.pars")=List of 4
##   ..$ vars            : chr "hus@850"
##   ..$ n               : num 4
##   ..$ fun             : NULL
##   ..$ local.index.list:List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  - attr(*, "predictor.vars")= chr [1:3] "ta@850" "psl" "hus@850"
##  - attr(*, "nature")= chr "local"
##  - attr(*, "globalPred.vars")= chr [1:2] "psl" "ta@850"
##  - attr(*, "dates")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##  - attr(*, "xyCoords")=List of 2
##   ..$ x: num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..$ y: num [1:5] 35 37.5 40 42.5 45

Instead of using all 4 neighbours sepparately, these can be aggregated, for instance using their average value as local predictor (fun = list(FUN = "mean")), or any other user-defined function, by adding all the additional arguments needed in the fun list (for instance, the 90th percentile value would be specified as fun = list(FUN = "quantile", prob = .9), etc).

out <- prepareData(x = x,
                          y = y,
                          global.vars = c("ta@850", "psl"),
                          local.predictors = list(vars = "hus@850",
                                                  n = 4,
                                                  fun = list(FUN = "mean"))
)
str(out)

## List of 4
##  $ y       :List of 5
##   ..$ Variable:List of 1
##   .. ..$ varName: chr "tmean"
##   .. ..- attr(*, "subset")= chr "time"
##   .. ..- attr(*, "time_subset")= chr "getTemporalIntersection"
##   ..$ Data    : num [1:1805, 1:11] 2.9 3.4 1 0.6 4.3 8 10.1 9.4 9.8 10.4 ...
##   .. ..- attr(*, "dimensions")= chr [1:2] "time" "loc"
##   ..$ xyCoords:'data.frame': 11 obs. of  2 variables:
##   .. ..$ x: num [1:11] -6.73 -9.15 -6.83 -4.49 -4.01 ...
##   .. ..$ y: num [1:11] 41.8 38.7 38.9 36.7 40.8 ...
##   .. ..- attr(*, "projection")= chr "+proj=longlat +init=epsg:4326 +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
##   .. ..- attr(*, "resX")= num 0
##   .. ..- attr(*, "resY")= num 0
##   ..$ Dates   :List of 2
##   .. ..$ start: chr [1:1805] "1982-12-01 00:00:00" "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" ...
##   .. ..$ end  : chr [1:1805] "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" "1982-12-05 00:00:00" ...
##   .. ..- attr(*, "season")= int [1:3] 12 1 2
##   ..$ Metadata:List of 4
##   .. ..$ station_id: chr [1:11] "000212" "000214" "000229" "000231" ...
##   .. ..$ name      : chr [1:11] "BRAGANCA" "LISBOA-GEOFISICA" "BADAJOZ-TALAVERALAREAL" "MALAGA" ...
##   .. ..$ altitude  : int [1:11] 690 77 185 7 1894 251 44 151 370 8 ...
##   .. ..$ source    : chr [1:11] "ECA&D" "ECA&D" "ECA&D" "ECA&D" ...
##  $ x.global: num [1:1805, 1:70] 102168 102320 102595 102930 103260 ...
##  $ x.local :List of 11
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00299 0.00311 0.00297 0.00353 0.00613 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00178 0.00318 0.00396 0.00478 0.00591 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00227 0.00314 0.00325 0.00298 0.00432 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00297 0.00393 0.00411 0.00295 0.00299 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00341 0.00324 0.00321 0.00288 0.00459 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00382 0.00386 0.00405 0.00332 0.00438 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00385 0.00311 0.00362 0.00386 0.00362 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00366 0.00356 0.00385 0.0037 0.00352 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00287 0.00348 0.00306 0.00572 0.00776 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00386 0.00302 0.00358 0.00382 0.00389 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1] 0.00341 0.00324 0.00321 0.00288 0.00459 ...
##   ..- attr(*, "local.index.list")=List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  $ pca     : NULL
##  - attr(*, "localPred.pars")=List of 4
##   ..$ vars            : chr "hus@850"
##   ..$ n               : num 4
##   ..$ fun             :List of 1
##   .. ..$ FUN: chr "mean"
##   ..$ local.index.list:List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  - attr(*, "predictor.vars")= chr [1:3] "ta@850" "psl" "hus@850"
##  - attr(*, "nature")= chr "local"
##  - attr(*, "globalPred.vars")= chr [1:2] "psl" "ta@850"
##  - attr(*, "dates")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##  - attr(*, "xyCoords")=List of 2
##   ..$ x: num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..$ y: num [1:5] 35 37.5 40 42.5 45

Combining PCs with local predictors

This is probably the most typical configuration of predictors. The global information of the PCs is complemented with local information using an additional variable. For instance, in this example we retain temperature and sea-level pressure as global predictors, using their PCs, and include local information for specific humnifity at 850 mb. In this case, we indicate that we want to keep the PCs explaining no less than 95% of the total variance for each global variable (v.exp = c(0.95, 0.95); note that in the previous PCA example we indicated the number of PCs (argument n.eofs), instead of the amount of explained variance):

out <- prepareData(x = x,
                          y = y,
                          global.vars = c("ta@850", "psl"),
                          spatial.predictors = list(v.exp = c(.95, .95)),
                          local.predictors = list(vars = "hus@850",
                                                  n = 4,
                                                  fun = NULL)
)
str(out)

## List of 4
##  $ y       :List of 5
##   ..$ Variable:List of 1
##   .. ..$ varName: chr "tmean"
##   .. ..- attr(*, "subset")= chr "time"
##   .. ..- attr(*, "time_subset")= chr "getTemporalIntersection"
##   ..$ Data    : num [1:1805, 1:11] 2.9 3.4 1 0.6 4.3 8 10.1 9.4 9.8 10.4 ...
##   .. ..- attr(*, "dimensions")= chr [1:2] "time" "loc"
##   ..$ xyCoords:'data.frame': 11 obs. of  2 variables:
##   .. ..$ x: num [1:11] -6.73 -9.15 -6.83 -4.49 -4.01 ...
##   .. ..$ y: num [1:11] 41.8 38.7 38.9 36.7 40.8 ...
##   .. ..- attr(*, "projection")= chr "+proj=longlat +init=epsg:4326 +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
##   .. ..- attr(*, "resX")= num 0
##   .. ..- attr(*, "resY")= num 0
##   ..$ Dates   :List of 2
##   .. ..$ start: chr [1:1805] "1982-12-01 00:00:00" "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" ...
##   .. ..$ end  : chr [1:1805] "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" "1982-12-05 00:00:00" ...
##   .. ..- attr(*, "season")= int [1:3] 12 1 2
##   ..$ Metadata:List of 4
##   .. ..$ station_id: chr [1:11] "000212" "000214" "000229" "000231" ...
##   .. ..$ name      : chr [1:11] "BRAGANCA" "LISBOA-GEOFISICA" "BADAJOZ-TALAVERALAREAL" "MALAGA" ...
##   .. ..$ altitude  : int [1:11] 690 77 185 7 1894 251 44 151 370 8 ...
##   .. ..$ source    : chr [1:11] "ECA&D" "ECA&D" "ECA&D" "ECA&D" ...
##  $ x.global: num [1:1805, 1:7] 0.299 -0.809 -2.795 -6.589 -9.13 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : NULL
##   .. ..$ : chr [1:7] "PC1" "PC2" "PC3" "PC1" ...
##  $ x.local :List of 11
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00223 0.00293 0.00312 0.00389 0.00631 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00114 0.00337 0.00468 0.00554 0.00598 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.0019 0.00328 0.00385 0.0035 0.00416 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00287 0.00445 0.00462 0.00295 0.00245 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00264 0.00294 0.00254 0.00218 0.00408 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00401 0.00372 0.00401 0.00329 0.00464 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00378 0.00284 0.00342 0.00351 0.00349 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00391 0.00339 0.00382 0.00369 0.00337 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00262 0.00341 0.00342 0.0067 0.00797 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00378 0.00284 0.00342 0.00351 0.00349 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00264 0.00294 0.00254 0.00218 0.00408 ...
##   ..- attr(*, "local.index.list")=List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  $ pca     :List of 2
##   ..$ psl   :List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:3] 0.299 -0.809 -2.795 -6.589 -9.13 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:3] "PC1" "PC2" "PC3"
##   .. .. ..$ EOFs: num [1:35, 1:3] -0.142 -0.16 -0.169 -0.165 -0.149 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:3] "PC1" "PC2" "PC3"
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 102167 102202 102168 102069 101910 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 714 818 898 991 1119 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:3] 0.822 0.912 0.979
##   ..$ ta@850:List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:4] -4.54 -4.83 -4.32 -1.18 2.52 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:4] "PC1" "PC2" "PC3" "PC4"
##   .. .. ..$ EOFs: num [1:35, 1:4] 0.154 0.157 0.154 0.149 0.136 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:4] "PC1" "PC2" "PC3" "PC4"
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 280 279 277 277 276 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 3.4 3.27 3.21 3.33 3.53 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:4] 0.687 0.835 0.935 0.958
##   ..- attr(*, "level")= num [1:2] NA 850
##   ..- attr(*, "dates_start")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##   ..- attr(*, "dates_end")= chr [1:1805] "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" "1982-12-05 GMT" ...
##   ..- attr(*, "season")= int [1:3] 12 1 2
##   ..- attr(*, "xCoords")= num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..- attr(*, "yCoords")= num [1:5] 35 37.5 40 42.5 45
##   ..- attr(*, "projection")= chr "LatLonProjection"
##  - attr(*, "spatialPred.pars")=List of 1
##   ..$ v.exp: num [1:2] 0.95 0.95
##  - attr(*, "localPred.pars")=List of 4
##   ..$ vars            : chr "hus@850"
##   ..$ n               : num 4
##   ..$ fun             : NULL
##   ..$ local.index.list:List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  - attr(*, "predictor.vars")= chr [1:3] "ta@850" "psl" "hus@850"
##  - attr(*, "nature")= chr "spatial+local"
##  - attr(*, "globalPred.vars")= chr [1:2] "psl" "ta@850"
##  - attr(*, "dates")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##  - attr(*, "xyCoords")=List of 2
##   ..$ x: num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..$ y: num [1:5] 35 37.5 40 42.5 45

The x.global matrix has now 7 columns, corresponding to 3 PCs retained for sea-level pressure plus 3 for air temperature.

Another option is to use the joint/combined PCs as predictors. To do so, we have to pass to the argument which.combine the variables we want to be joined when calculating PCs.

out <- prepareData(x = x,
                          y = y,
                          spatial.predictors = list(v.exp = 0.95, which.combine = getVarNames(x)),
                          local.predictors = list(vars = "hus@850",
                                                  n = 4,
                                                  fun = NULL)
)
str(out)

## List of 4
##  $ y       :List of 5
##   ..$ Variable:List of 1
##   .. ..$ varName: chr "tmean"
##   .. ..- attr(*, "subset")= chr "time"
##   .. ..- attr(*, "time_subset")= chr "getTemporalIntersection"
##   ..$ Data    : num [1:1805, 1:11] 2.9 3.4 1 0.6 4.3 8 10.1 9.4 9.8 10.4 ...
##   .. ..- attr(*, "dimensions")= chr [1:2] "time" "loc"
##   ..$ xyCoords:'data.frame': 11 obs. of  2 variables:
##   .. ..$ x: num [1:11] -6.73 -9.15 -6.83 -4.49 -4.01 ...
##   .. ..$ y: num [1:11] 41.8 38.7 38.9 36.7 40.8 ...
##   .. ..- attr(*, "projection")= chr "+proj=longlat +init=epsg:4326 +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
##   .. ..- attr(*, "resX")= num 0
##   .. ..- attr(*, "resY")= num 0
##   ..$ Dates   :List of 2
##   .. ..$ start: chr [1:1805] "1982-12-01 00:00:00" "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" ...
##   .. ..$ end  : chr [1:1805] "1982-12-02 00:00:00" "1982-12-03 00:00:00" "1982-12-04 00:00:00" "1982-12-05 00:00:00" ...
##   .. ..- attr(*, "season")= int [1:3] 12 1 2
##   ..$ Metadata:List of 4
##   .. ..$ station_id: chr [1:11] "000212" "000214" "000229" "000231" ...
##   .. ..$ name      : chr [1:11] "BRAGANCA" "LISBOA-GEOFISICA" "BADAJOZ-TALAVERALAREAL" "MALAGA" ...
##   .. ..$ altitude  : int [1:11] 690 77 185 7 1894 251 44 151 370 8 ...
##   .. ..$ source    : chr [1:11] "ECA&D" "ECA&D" "ECA&D" "ECA&D" ...
##  $ x.global: num [1:1805, 1:14] 1.764 1.307 -0.488 -5.388 -8.562 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : NULL
##   .. ..$ : chr [1:14] "PC1" "PC2" "PC3" "PC4" ...
##  $ x.local :List of 11
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00223 0.00293 0.00312 0.00389 0.00631 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00114 0.00337 0.00468 0.00554 0.00598 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.0019 0.00328 0.00385 0.0035 0.00416 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00287 0.00445 0.00462 0.00295 0.00245 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00264 0.00294 0.00254 0.00218 0.00408 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00401 0.00372 0.00401 0.00329 0.00464 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00378 0.00284 0.00342 0.00351 0.00349 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00391 0.00339 0.00382 0.00369 0.00337 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00262 0.00341 0.00342 0.0067 0.00797 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00378 0.00284 0.00342 0.00351 0.00349 ...
##   ..$ :List of 1
##   .. ..$ member_1: num [1:1805, 1:4] 0.00264 0.00294 0.00254 0.00218 0.00408 ...
##   ..- attr(*, "local.index.list")=List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  $ pca     :List of 4
##   ..$ hus@850 :List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:11] -0.148 0.679 1.757 2.195 4.994 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:11] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ EOFs: num [1:35, 1:11] 0.129 0.156 0.168 0.151 0.103 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:11] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 0.00329 0.00323 0.00338 0.00343 0.00339 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 0.00148 0.0015 0.00154 0.00153 0.00148 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:11] 0.429 0.611 0.724 0.8 0.843 ...
##   ..$ psl     :List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:3] 0.299 -0.809 -2.795 -6.589 -9.13 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:3] "PC1" "PC2" "PC3"
##   .. .. ..$ EOFs: num [1:35, 1:3] -0.142 -0.16 -0.169 -0.165 -0.149 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:3] "PC1" "PC2" "PC3"
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 102167 102202 102168 102069 101910 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 714 818 898 991 1119 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:3] 0.822 0.912 0.979
##   ..$ ta@850  :List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:4] -4.54 -4.83 -4.32 -1.18 2.52 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:4] "PC1" "PC2" "PC3" "PC4"
##   .. .. ..$ EOFs: num [1:35, 1:4] 0.154 0.157 0.154 0.149 0.136 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:4] "PC1" "PC2" "PC3" "PC4"
##   .. .. ..$ orig: atomic [1:1] NA
##   .. .. .. ..- attr(*, "scaled:center")= num [1:35] 280 279 277 277 276 ...
##   .. .. .. ..- attr(*, "scaled:scale")= num [1:35] 3.4 3.27 3.21 3.33 3.53 ...
##   .. .. .. ..- attr(*, "scaled:method")= chr "gridbox"
##   .. .. ..- attr(*, "explained_variance")= num [1:4] 0.687 0.835 0.935 0.958
##   ..$ COMBINED:List of 1
##   .. ..$ :List of 3
##   .. .. ..$ PCs : num [1:1805, 1:14] 1.764 1.307 -0.488 -5.388 -8.562 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:14] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ EOFs: num [1:105, 1:14] 0.0566 0.047 0.0332 0.012 -0.0113 ...
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : NULL
##   .. .. .. .. ..$ : chr [1:14] "PC1" "PC2" "PC3" "PC4" ...
##   .. .. ..$ orig: NULL
##   .. .. ..- attr(*, "explained_variance")= num [1:14] 0.354 0.622 0.689 0.751 0.794 ...
##   .. ..- attr(*, "combined_variables")= chr [1:3] "hus@850" "psl" "ta@850"
##   ..- attr(*, "level")= num [1:4] 850 NA 850 NA
##   ..- attr(*, "dates_start")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##   ..- attr(*, "dates_end")= chr [1:1805] "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" "1982-12-05 GMT" ...
##   ..- attr(*, "season")= int [1:3] 12 1 2
##   ..- attr(*, "xCoords")= num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..- attr(*, "yCoords")= num [1:5] 35 37.5 40 42.5 45
##   ..- attr(*, "projection")= chr "LatLonProjection"
##  - attr(*, "spatialPred.pars")=List of 2
##   ..$ v.exp        : num 0.95
##   ..$ which.combine: chr [1:3] "hus@850" "psl" "ta@850"
##  - attr(*, "localPred.pars")=List of 4
##   ..$ vars            : chr "hus@850"
##   ..$ n               : num 4
##   ..$ fun             : NULL
##   ..$ local.index.list:List of 1
##   .. ..$ hus@850: num [1:4, 1:11] 8 9 13 14 2 3 7 8 7 8 ...
##  - attr(*, "predictor.vars")= chr [1:3] "hus@850" "psl" "ta@850"
##  - attr(*, "nature")= chr "spatial+local"
##  - attr(*, "globalPred.vars")= chr [1:3] "hus@850" "psl" "ta@850"
##  - attr(*, "dates")= chr [1:1805] "1982-12-01 GMT" "1982-12-02 GMT" "1982-12-03 GMT" "1982-12-04 GMT" ...
##  - attr(*, "xyCoords")=List of 2
##   ..$ x: num [1:7] -10 -7.5 -5 -2.5 0 2.5 5
##   ..$ y: num [1:5] 35 37.5 40 42.5 45

References

  • Cofiño, A.S., Bedia, J., Iturbide, M., Vega, M., Herrera, S., Fernández, J., Frías, M.D., Manzanas, R., Gutiérrez, J.M., 2017. The ECOMS User Data Gateway: Towards seasonal forecast data provision and research reproducibility in the era of Climate Services. Climate Services. doi:10.1016/j.cliser.2017.07.001

  • Kalnay, E., Kanamitsu, M., Kistler, R., Collins, W., Deaven, D., Gandin, L., Iredell, M., Saha, S., White, G., Woollen, J., Zhu, Y., Leetmaa, A., Reynolds, R., Chelliah, M., Ebisuzaki, W., Higgins, W., Janowiak, J., Mo, K.C., Ropelewski, C., Wang, J., Jenne, R., Joseph, D., 1996. The NCEP/NCAR 40-Year Reanalysis Project. Bulletin of the American Meteorological Society 77, 437–471. doi:10.1175/1520-0477(1996)077<0437:TNYRP>2.0.CO;2

  • Maraun, D., Widmann, M., Gutiérrez, J.M., Kotlarski, S., Chandler, R.E., Hertig, E., Wibig, J., Huth, R., Wilcke, R.A.I., 2015. VALUE: A framework to validate downscaling approaches for climate change studies. Earth’s Future 3, 2014EF000259. doi:10.1002/2014EF000259


<-- Home page of the Wiki

Session info

print(sessionInfo(package = c("transformeR", "downscaleR")))

## R version 3.4.3 (2017-11-30)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.5 LTS
## 
## Matrix products: default
## BLAS: /usr/lib/libblas/libblas.so.3.0
## LAPACK: /usr/lib/lapack/liblapack.so.3.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=es_ES.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=es_ES.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=es_ES.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## character(0)
## 
## other attached packages:
## [1] transformeR_1.3.3 downscaleR_3.0.0 
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_0.12.15        compiler_3.4.3      highr_0.6          
##  [4] methods_3.4.3       bitops_1.0-6        iterators_1.0.8    
##  [7] utils_3.4.3         tools_3.4.3         grDevices_3.4.3    
## [10] deepnet_0.2         digest_0.6.13       dotCall64_0.9-5.2  
## [13] evd_2.3-2           gtable_0.2.0        evaluate_0.10.1    
## [16] lattice_0.20-35     Matrix_1.2-7.1      foreach_1.4.3      
## [19] yaml_2.1.16         parallel_3.4.3      spam_2.1-2         
## [22] akima_0.6-2         gridExtra_2.2.1     stringr_1.2.0      
## [25] knitr_1.18          raster_2.6-7        gridGraphics_0.2   
## [28] graphics_3.4.3      datasets_3.4.3      stats_3.4.3        
## [31] fields_9.6          maps_3.2.0          rprojroot_1.3-2    
## [34] grid_3.4.3          glmnet_2.0-13       base_3.4.3         
## [37] rmarkdown_1.8       sp_1.2-7            magrittr_1.5       
## [40] backports_1.1.2     codetools_0.2-15    htmltools_0.3.6    
## [43] MASS_7.3-44         abind_1.4-5         stringi_1.1.5      
## [46] RCurl_1.95-4.10     RcppEigen_0.3.3.3.1
Clone this wiki locally