wiki:udg/ecoms/RPackage/examples/continentalSelection

Version 12 (modified by juaco, 7 years ago) (diff)

--

Regional-Continental domain selections

In this example we will load data for Europe for the variable surface (2m) minimum temperature (var = tasmin), for the first two members (members = 1:2) of the CFSv2 hindcast (dataset = CFSv2_seasonal_16), considering the wintertime (DJF, season = c(12,1,2)) for the 10-year period 2001-2010 (years = 2001:2010), according to the forecast of previous September (leadMonth = 3). The original variable is stored as 6-hourly data for this particular dataset. We will retrieve the daily mean values, by setting the argument time = "DD", that internally computes the daily minimum from the 6-hourly instantaneous values (see the NOTE below when executing the command):

> ex2 <- loadECOMS(dataset = "CFSv2_seasonal_16", var = "tasmin", members = 1:2, lonLim = c(-15,35), latLim = c(32, 75), season = c(12,1,2), years = 2001:2010, leadMonth = 3, time = "DD")
[2014-09-02 16:45:58] Defining homogeneization parameters for variable "tasmin"
NOTE: daily minimum will be calculated from the 6-h model output
[2014-09-02 16:45:58] Defining geo-location parameters
[2014-09-02 16:45:58] Defining initialization time parameters
[2014-09-02 16:46:03] Retrieving data subset ...
[2014-09-02 16:52:57] Done
> print(object.size(ex2), units = "Mb")
35 Mb

In this case, the data are stored in a 4D-array, with the dimensions indicated by the dimensionsattribute, always following the canonical ordering of dimensions:

> str(ex2$Data)
 num [1:2, 1:902, 1:47, 1:54] 17.4 17.2 16.4 18.7 17.4 ...
 - attr(*, "dimensions")= chr [1:4] "member" "time" "lat" "lon"

Members can be plottede individually by setting multimember = TRUE in the plotMeanField function of the downscaleRpackage:

plotMeanField(ex2, multi.member = TRUE)

No image "image-20140617-130616.png" attached to udg/ecoms/RPackage/examples/continentalSelection

It is possible to load now the reference observations for the spatio-temporal domain selected, using the same values in the corresponding arguments:

> ex2.obs <- loadECOMS(dataset = "WFDEI", var = "tasmin", lonLim = c(-15,35), latLim = c(32, 75), season = c(12,1,2), years = 2001:2010)
[2014-06-17 16:28:13] Defining homogeneization parameters for variable "tasmin"
[2014-06-17 16:28:13] Defining geo-location parameters
[2014-06-17 16:28:13] Defining time selection parameters
[2014-06-17 16:28:32] Done
> print(object.size(ex2.obs), units = "Mb")
60.6 Mb

This is the map of the observed mean minimum surface temperature observed for DJF 2001-2010:

> observed <- apply(ex2.obs$Data, FUN = mean, MARGIN = c(1,2))
> x.obs <- ex2.obs$xyCoords$x
> y.obs <- ex2.obs$xyCoords$y
> image.plot(x.obs, y.obs, observed, asp = 1, xlab = "", ylab = "", main = "Mean minimum surface temp observed")
> world(add=TRUE)

No image "image-20140617-163609.png" attached to udg/ecoms/RPackage/examples/continentalSelection

Note that WFDEI provides data for land areas only, and its spatial resolution is much higher that CFS (1º vs 0.5º). In order to compare both datasets, it is first necessary to put them in the same grid (i.e., to interpolate). We use the bilinear interpolation algorithm of package fields to this aim, included in the function interp.surface.grid:

> obs.regridded <- interp.surface.grid(obj = list(x = x.obs, y = y.obs, z = observed), grid.list = list(x = x, y = y))
> par(mfrow = c(1,2))
> image.plot(member1 - obs.regridded$z, asp = 1, main = "Bias Member 1")
> image.plot(member2 - obs.regridded$z, asp = 1, main = "Bias Member 2")

No image "image-20140617-170438.png" attached to udg/ecoms/RPackage/examples/continentalSelection

Attachments (1)

Download all attachments as: .zip