Learn R Programming

rasterVis (version 0.51.6)

horizonplot-methods: Horizon plots of Raster objects.

Description

This method draws horizon graphs for each zone as calculated with zonal from the directions defined by xyLayer

Usage

# S4 method for RasterStackBrick,missing
horizonplot(x, data = NULL,
    dirXY = y, stat = 'mean', digits = 0,
    origin = mean, 
    xlab = 'Time', ylab = 'direction',
    colorkey = TRUE, colorkey.digits = 1,
    scales=list(y = list(relation = "same")),
    ...)

# S4 method for SpatRaster,missing horizonplot(x, data = NULL, dirXY = y, stat = 'mean', digits = 0, origin = mean, xlab = 'Time', ylab = 'direction', colorkey = TRUE, colorkey.digits = 1, scales=list(y = list(relation = "same")), ...)

Arguments

x

A RasterStackBrick object or a SpatRaster object.

data

Not used.

dirXY

A direction as a function of the coordinates (see xyLayer).

stat

a function to be applied to summarize the values by zone. See zonal for details.

digits

An integer, number of digits for zonal.

origin

From the latticeExtra help page: "the baseline y value for the first (positive) segment (i.e. the value at which red changes to blue)." It can be: a number, used acrros all panels, or a function (or a character defining a function), evaluated with the values in each panel. The default is the mean function.

xlab, ylab

Labels of the axis.

colorkey

If colorkey = TRUE a suitable color scale bar is constructed using the values of origin and horizonscale (see below). For additional information see levelplot.

colorkey.digits

Digits for rounding values in colorkey labels

scales

From the lattice::xyplot help page: "A list determining how the x- and y-axes (tick marks and labels) are drawn. The list contains parameters in name=value form, and may also contain two other lists called x and y of the same form. Components of x and y affect the respective axes only, while those in scales affect both. When parameters are specified in both lists, the values in x or y are used." In horizonplot the most interesting component is relation, a character string that determines how axis limits are calculated for each panel. Possible values are "same" (default), "free" and "sliced". "For ‘relation="same"’, the same limits, usually large enough to encompass all the data, are used for all the panels. For ‘relation="free"’, limits for each panel is determined by just the points in that panel. Behavior for ‘relation="sliced"’ is similar, except that the length (max - min) of the scales are constrained to remain the same across panels."

...

Additional arguments for the horizonplot function. horizonscale is the most interesting, being (from the latticeExtra help page) "the scale of each color segment. There are 3 positive segments and 3 negative segments. If this is a given as a number then all panels will have comparable distances, though not necessarily the same actual values (similar in concept to ‘scales$relation = "sliced"’)". On the other hand, col.regions is used to choose the color scale.

Details

(Extracted from the reference): "The horizon graph allows to examine how a large number of items changed through time, to spot extraordinary behaviors and predominant patterns, view each of the items independently from the others when they wish, make comparisons between the items, and view changes that occurred with enough precision to determine if further examination is required."

References

http://vis.berkeley.edu/papers/horizon/2009-TimeSeries-CHI.pdf

See Also

horizonplot, xyplot, levelplot.

Examples

Run this code
if (FALSE) {
library(raster)
library(terra)
library(zoo)

url <- "ftp://ftp.wiley.com/public/sci_tech_med/spatio_temporal_data/"
sst.dat = read.table(paste(url, "SST011970_032003.dat", sep=''), header = FALSE) 
sst.ll = read.table(paste(url, "SSTlonlat.dat", sep=''), header = FALSE)

spSST <- SpatialPointsDataFrame(sst.ll, sst.dat)
gridded(spSST) <- TRUE
proj4string(spSST) = "+proj=longlat +datum=WGS84"
SST <- brick(spSST)

idx <- seq(as.Date('1970-01-01'), as.Date('2003-03-01'), by='month')
idx <- as.yearmon(idx)
SST <- setZ(SST, idx)
names(SST) <- as.character(idx)

horizonplot(SST)

horizonplot(SST, stat='sd')

## Different scales for each panel, with colors representing deviations
## from the origin in *that* panel
horizonplot(SST, scales=list('free'))

## origin may be a function...
horizonplot(SST, origin=mean)
## ...or a number
horizonplot(SST, origin=0)

## A different color palette
pal <- RColorBrewer::brewer.pal(n=6, 'PuOr')
horizonplot(SST, origin = 0, col.regions = pal)

## The width of each color segment can be defined with horizonscale
horizonplot(SST, horizonscale=1, origin=0)
}

if (FALSE) {

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
setwd(old)

idx <- seq(as.Date('2008-01-15'), as.Date('2008-12-15'), 'month')

SISmm <- setZ(stackSIS, idx)
names(SISmm) <- month.abb

horizonplot(SISmm)
}


Run the code above in your browser using DataLab