Level and contour plots of Raster objects.
Level and contour plots of Raster objects with lattice
methods
and marginal plots with grid
objects.
## S4 method for signature 'Raster,missing' levelplot(x, data = NULL, layers, margin = list(), maxpixels = 1e5, par.settings = rasterTheme(), between = list(x=0.5, y=0.2), as.table = TRUE, xlab=if(isLonLat(x)) 'Longitude' else NULL, ylab=if(isLonLat(x)) 'Latitude' else NULL, main=NULL, names.attr, scales =list(), xscale.components = xscale.raster, yscale.components = yscale.raster, zscaleLog = NULL, colorkey = list(space='right'), panel = panel.levelplot, pretty = FALSE, contour = FALSE, region = TRUE, labels = FALSE, FUN.margin = NULL, scales.margin = NULL, axis.margin = NULL, ..., att=1L) ## S4 method for signature 'SpatRaster,missing' levelplot(x, data = NULL, layers, margin = list(), maxpixels = 1e5, par.settings = rasterTheme(), between = list(x=0.5, y=0.2), as.table = TRUE, xlab=if(is.lonlat(x)) 'Longitude' else NULL, ylab=if(is.lonlat(x)) 'Latitude' else NULL, main=NULL, names.attr, scales =list(), xscale.components = xscale.raster, yscale.components = yscale.raster, zscaleLog = NULL, colorkey = list(space='right'), panel = panel.levelplot, pretty = FALSE, contour = FALSE, region = TRUE, labels = FALSE, FUN.margin = NULL, scales.margin = NULL, axis.margin = NULL, ..., att=1L) ## S4 method for signature 'Raster,missing' contourplot(x, data=NULL, layers, ...)
x |
A Raster or SpatRaster object. |
data |
Not used. |
layers |
A numeric or character which should indicate the layers to be displayed. |
maxpixels |
A positive integer giving the number of cells to
display, for |
margin |
A list or a logical. If it is TRUE, two marginal
graphics show the column (x) and row (y) summaries of the
|
FUN.margin, scales.margin, axis.margin |
Deprecated
arguments. Use |
att |
Integer or character to choose which variable (column) in the RAT table should be used. |
xlab, ylab, main |
A character string or expression describing
the axis and title labels. These arguments are used by the
underlying “ When
|
names.attr |
Character or expression, names to use in each
panel. If missing its default value is the result of |
xscale.components, yscale.components |
See
|
colorkey |
logical specifying whether a color key is to be drawn
alongside the plot (default is |
between, as.table, par.settings, scales, panel |
Graphical
parameters used by
|
pretty, contour, region, labels |
Graphical parameters
supplied to
|
zscaleLog |
Controls whether the Raster* will be log transformed
before being passed to the panel function. Defaults to |
... |
Additional arguments for
|
The result of the levelplot
method is similar to the
spplot
method for Raster
objects defined in the
raster
package. However, this method does not use the
spplot
of the sp
package and, therefore, no conversion
between classes is needed.
The contourplot
method is a wrapper for levelplot
with
the next additional default settings: cuts=7
,
labels=TRUE
, contour
=TRUE, pretty
=TRUE,
region=TRUE
and colorkey=TRUE
(see the help of
contourplot
for details.)
levelplot
displays categorical data with a convenient
legend. You should use ratify
to define a layer as a
categorical variable. It is able to display multilayer categorical
rasters only if they share the same RAT (Raster Attribute
Table). levelplot
is not able to display multilayer rasters
with factor and numeric layers. See ratify
and the
examples below for details.
Oscar Perpiñán Lamigueiro
f <- system.file("external/test.grd", package="raster") ## raster r <- raster(f) levelplot(r) ## terra rt <- rast(f) levelplot(rt) ## Change the color theme levelplot(r, par.settings=GrTheme()) ## Not run: myPal <- RColorBrewer::brewer.pal('Blues', n=9) myTheme <- rasterTheme(region = myPal) levelplot(r, par.settings = myTheme) ## End(Not run) ## Define the legend breaks my.at <- seq(100, 1850, 500) levelplot(rt, at=my.at) myColorkey <- list(at=my.at, ## where the colors change labels=list( at=my.at ## where to print labels )) levelplot(r, at=my.at, colorkey=myColorkey) ## Define the units of the color key levelplot(rt, margin = FALSE, colorkey = list(title = "[m]", title.gpar = list(cex = 1, font = 2, col = 'red') )) ## shrink and border color ## raster rCenter <- (maxValue(r) + minValue(r)) / 2 levelplot(r - rCenter, par.settings=RdBuTheme(), shrink=c(.8, 15), border='black') ## Not run: ## terra tCenter <- mean(minmax(rt)) levelplot(rt - tCenter, par.settings=RdBuTheme(), shrink=c(.8, 15), border='black') ## End(Not run) ## With subticks levelplot(r, xscale.components=xscale.raster.subticks, yscale.components=yscale.raster.subticks) ## Not run: levelplot(rt, xscale.components=xscale.raster.subticks, yscale.components=yscale.raster.subticks, scales=list(x=list(rot=30, cex=0.8))) ## End(Not run) ## log-scale levelplot(r^2, zscaleLog=TRUE, contour=TRUE) ## Customizing axis and title labels levelplot(rt, margin=FALSE, main=list('My plot', col='red'), xlab=c('This is the', 'X-Axis'), ylab=list('Y-Axis', rot=30, fontface='bold') ) ## xlim and ylim to display a smaller region levelplot(r, xlim=c(179000, 181000), ylim=c(329500, 334000)) ## RasterStacks s <- stack(r, r+500, r-500) levelplot(s, contour=TRUE) contourplot(s, labels=list(cex=0.4), cuts=12) ## Not run: ## Use of layout levelplot(s, layout=c(1, 3)) ## SpatRaster with several layers st <- c(rt, rt + 500, rt - 500) levelplot(st, contour=TRUE) contourplot(st, labels=list(cex=0.4), cuts=12) levelplot(st, layout=c(1, 1)) # useful for animations ## End(Not run) ## names.attr to change the labels of each panel levelplot(s, names.attr=c('R', 'R + 500', 'R - 500')) ## Defining the scales for the marginal plot levelplot(r, margin = list(axis = TRUE, scales = list(x=c(100, 600), y=c(100, 1000)))) ## if a component of the list is null, it is internally calculated levelplot(rt, margin=list(axis = TRUE, scales = list(x=c(100, 1000)))) ## Add a layer of sampling points ## and change the theme pts <- sampleRandom(r, size=20, sp=TRUE) ## Using +.trellis and layer from latticeExtra levelplot(r, par.settings = BTCTheme) + layer(sp.points(pts, col = 'red')) contourplot(r, labels = FALSE) + layer(sp.points(pts, col = 'red')) ## or with a custom panel function levelplot(r, par.settings=BTCTheme, panel=function(...){ panel.levelplot(...) sp.points(pts, col='red') }) ## Categorical data r <- raster(nrow=10, ncol=10) r[] = 1 r[51:100] = 3 r[3:6, 1:5] = 5 r <- ratify(r) rat <- levels(r)[[1]] rat$landcover <- c('Pine', 'Oak', 'Meadow') rat$class <- c('A1', 'B2', 'C3') levels(r) <- rat r levelplot(r, col.regions=c('palegreen', 'midnightblue', 'indianred1')) ## with 'att' you can choose another variable from the RAT levelplot(r, att=2, col.regions=c('palegreen', 'midnightblue', 'indianred1')) levelplot(r, att='class', col.regions=c('palegreen', 'midnightblue', 'indianred1')) r2 <- raster(r) r2[] = 3 r2[51:100] = 1 r2[3:6, 1:5] = 5 r3 <- init(r, function(n)sample(c(1, 3, 5), n, replace=TRUE)) ## Multilayer categorical Raster* are displayed only if their RATs are the same levels(r2) <- levels(r3) <- levels(r) s <- stack(r, r2, r3) names(s) <- c('A', 'B', 'C') levelplot(s) levelplot(s, att=2) ## Not run: dataURL <- "https://raw.github.com/oscarperpinan/bookvis/master/data/" ##Solar irradiation data from CMSAF http://dx.doi.org/10.5676/EUM_SAF_CM/RAD_MVIRI/V001 old <- setwd(tempdir()) download.file(paste0(dataURL, "SISmm2008_CMSAF.zip"), "SISmm2008_CMSAF.zip", method='wget') unzip("SISmm2008_CMSAF.zip") listFich <- dir(pattern='\\.nc') stackSIS <- stack(listFich) stackSIS <- stackSIS*24 ##from irradiance (W/m2) to irradiation Wh/m2 idx <- seq(as.Date('2008-01-15'), as.Date('2008-12-15'), 'month') SISmm <- setZ(stackSIS, idx) names(SISmm) <- month.abb levelplot(SISmm) levelplot(SISmm, layers=1, margin = list(FUN = 'median'), contour=TRUE) setwd(old) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.