# Changes between Version 7 and Version 8 of udg/ecoms/RPackage/examples/continentalSelection

Ignore:
Timestamp:
Jun 17, 2014 4:45:27 PM (7 years ago)
Comment:

--

### Legend:

Unmodified
 v7 [[Image(image-20140617-130616.png)]] 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) }}} [[Image(image-20140617-163609.png)]] Note that WFDEI provides data for land areas only. {{{#!comment = Alternative visualization tools: Monsoon in the Indian subcontinent So far we have shown plotting examples using the trellis plots generated by the spplot method. In this examples we show alternative plotting options using more standard R plotting functions for gridded data. To this aim, we load the precipitation data of 1997 for the lead month 1 forecast over the Indian subcontinent, considering the monsoon season from June to September: {{{ monsoon <- loadSeasonalForecast("CFS", var="tp", members=16, lonLim=c(65,92), latLim=c(5,37), season=6:9, years=1997) }}} The georeferencing of the data is stored as a SpatialGrid, which has several convenient attributes for an effective description of a gridded field, including the possibility of defining a coordinate reference system, highly useful -sometimes indispensable- for many geospatial operations. Plotting objects inheriting from this class or related classes (e.g. SpatialGridDataFrame) is straightforward using the spplot methods, as described in [wiki:../Trellis the previous example], but it is not directly usable as input for other plotting methods in R. Next, we present some typical plotting functions and how to extract the spatial coordinates in a suitable format for plotting. The total precipitation field is calculated as the total accumulated precipitation during the selected period for each model grid cell: {{{ tp <- colSums(monsoon$MemberData$Member_16) }}} And this is the classical way of displaying the data using the spplot method: {{{ sgdf <- SpatialGridDataFrame(monsoon$LonLatCoords, as.data.frame(tp)) data(world_map) wl <- as(world_map, "SpatialLines") wlines <- list("sp.lines", wl) spplot(sgdf, scales = list(draw = TRUE), sp.layout = list(wlines), col.regions = rev(topo.colors(41))) }}} [[Image(spplot.png)]] It is also straightforward to represent the precipitation using contour lines: {{{ spplot(sgdf, scales = list(draw = TRUE), contour = TRUE, col = "red", col.regions = rev(topo.colors(41))) }}} [[Image(spplot_contour.png)]] The help files of functions image and contour for instance, indicate the type of data structure required for displaying three-dimensional or spatial data (''images'') by many R standard functions. Essentially, this is a list of elements specifying the x and y positions of the elements to be displayed as a grid, being the field z a matrix of values whose positions coincide with those of the x and y elements. As an illustration, the following function produces such a list from an input SpatialGridDataFrame, by indicating also the corresponding data column to be represented, as in the argument zcol of spplot. This function takes care of the appropriate ordering of the data for spatial consistency. Note that by default, if zcol is omitted, the function will represent the first column of the data slot. {{{ sgdf2xyz <- function(sgdf, zcol = 1) { coords <- coordinates(sgdf) z <- slot(sgdf, "data")[ ,zcol] aux <- cbind(coords, z) aux.ordered <- aux[order(aux[ ,2], aux[ ,1]), ] x <- unique(aux.ordered[ ,1]) y <- unique(aux.ordered[ ,2]) z <- t(matrix(aux.ordered[ ,3], nrow = length(y), ncol = length(x), byrow = TRUE)) xyz.list <- list("x" = x, "y" = y, "z" = z) return(xyz.list) } }}} We create the xyz object for data visualization using several basic R functions: {{{ xyz <- sgdf2xyz(sgdf) }}} == image function {{{ image(xyz, asp = 1, col = rev(topo.colors(21))) lines(wl) }}} [[Image(image.png)]] == contour function contour can be used alone or in combination with other plots by setting the argument add = TRUE {{{ par(mfrow = c(1,2)) contour(xyz, levels=seq(0,4000,200), labcex = 1.2) image(xyz, col = terrain.colors(21)) contour(xyz, col = "blue", add = TRUE) # Use dev.off() To restore the original par settings }}} [[Image(contour.png)]] == filled.contour function Filled contour produces a nice output with a graduated colorbar, but placing lines or other elements on the plot is not straightforward... [[Image(filled_contour.png)]]