Skip to content

Creating multi grids

miturbide edited this page Feb 18, 2016 · 5 revisions

###Creating a multifield from existing fields

An object formed by two or more variables sharing a common grid and time span is termed a multifield. The constructor makeMultiField allows creating a multifield from a collection of fields. The spatial and temporal consistency of the different fields must be checked by the user, which can resort to the interpGridData and getGrid methods to this aim. Otherwise, the function will stop raising an error.

# Path to the E-OBS dataset
dir.eobs <- "mydirectory/eobs.ncml"
# Definition of a common domain
lon = c(-12, 5)
lat = c(35,45)
# Definition of common time domain
seas = c(12,1,2)
yrs = 1990:1999
# Precipitation
pr <- loadGridData(dataset = dir.eobs, 
                   var = "pr", 
                   lonLim = lon, 
                   latLim = lat, 
                   season = seas, 
                   years = yrs)

## [2016-01-23 20:04:21] Defining homogeneization parameters for variable "pr"
## [2016-01-23 20:04:23] Defining geo-location parameters
## [2016-01-23 20:04:23] Defining time selection parameters
## [2016-01-23 20:04:24] Retrieving data subset ...
## [2016-01-23 20:04:35] Done

# Surface temperature
psl <- loadGridData(dataset = dir.eobs, 
                    var = "slp", 
                    lonLim = lon, 
                    latLim = lat, 
                    season = seas, 
                    years = yrs)

## [2016-01-23 20:04:35] Defining homogeneization parameters for variable "slp"
## [2016-01-23 20:04:37] Defining geo-location parameters
## [2016-01-23 20:04:37] Defining time selection parameters
## [2016-01-23 20:04:38] Retrieving data subset ...
## [2016-01-23 20:04:48] Done

example.mf <- makeMultiField(psl, pr)

Note the behaviour of plotMeanField when a multifield is given as input:

plotMeanField(example.mf)

The data structure of a multifield incorporates a new dimension in the Data array, labeled var, along which the different variables composing the multifield are stacked:

str(example.mf$Data)

##  num [1:2, 1:902, 1:41, 1:69] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
##  - attr(*, "dimensions")= chr [1:4] "var" "time" "lat" "lon"

<-- Home page of the Wiki

print(sessionInfo())

## R version 3.2.3 (2015-12-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.3 LTS
## 
## 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=es_ES.UTF-8          
##  [9] LC_ADDRESS=es_ES.UTF-8        LC_TELEPHONE=es_ES.UTF-8     
## [11] LC_MEASUREMENT=es_ES.UTF-8    LC_IDENTIFICATION=es_ES.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] loadeR_0.0-1      loadeR.java_1.0-0 rJava_0.9-8      
## 
## loaded via a namespace (and not attached):
##  [1] digest_0.6.8    bitops_1.0-6    grid_3.2.3      formatR_1.2    
##  [5] magrittr_1.5    spam_1.3-0      evaluate_0.7    stringi_0.4-1  
##  [9] rmarkdown_0.6.1 tools_3.2.3     stringr_1.0.0   RCurl_1.95-4.7 
## [13] maps_3.0.2      fields_8.3-6    yaml_2.1.13     abind_1.4-3    
## [17] htmltools_0.2.6 knitr_1.10.5