Learn R Programming

rasterVis (version 0.51.6)

hovmoller-methods: Hovmoller plots

Description

Hovmoller plots of Raster objects.

Usage

# S4 method for RasterStackBrick
hovmoller(object, dirXY=y, FUN=mean, 
digits=2, xlab='Direction', ylab='Time',
par.settings=rasterTheme(), xscale.components=xscale.raster,
add.contour=FALSE, labels=FALSE, region=TRUE, ...)

# S4 method for SpatRaster hovmoller(object, dirXY=y, FUN=mean, digits=2, xlab='Direction', ylab='Time', par.settings=rasterTheme(), xscale.components=xscale.raster, add.contour=FALSE, labels=FALSE, region=TRUE, ...)

Arguments

object

A RasterStackBrick with a non-empty z slot, or a SpatRaster with a time index.

dirXY

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

FUN

A function to be applied to the zones calculated with dirXY and zonal.

digits

An integer, number of digits for zonal.

xlab, ylab

Labels of the axis.

par.settings

Customization of lattice. See levelplot and rasterTheme for details.

xscale.components

See xscale.raster.

labels, region

Customization of contourplot when add.contour is TRUE.

add.contour

Logical, if TRUE a contourplot with filled regions is drawn.

...

Additional arguments for the contourplot and levelplot functions.

Author

Oscar Perpiñán Lamigueiro

Details

Extracted from wikipedia: "A Hovmöller diagram is a commonly used way of plotting meteorological data to highlight the role of waves. The axes of a Hovmöller diagram are typically longitude or latitude (abscissa or x-axis) and time (ordinate or y-axis) with the value of some field represented through color or shading." The direction defined by dirXY and the function FUN allows for a variety of diagrams with this method.

References

See Also

levelplot, zonal, panel.2dsmoother

Examples

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

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

SISmmt <- rast(SISmm)
time(SISmmt) <- getZ(SISmm)

## Latitude as default
hovmoller(SISmm, xlab='Latitude')
hovmoller(SISmmt, xlab = 'Latitude')

## With contour lines and labels
hovmoller(SISmm, labels=TRUE, add.contour=TRUE,
          xlab='Latitude')

## Smooth color regions with latticeExtra::panel.2dsmoother
library(latticeExtra)

hovmoller(SISmm, panel=panel.2dsmoother, n=1000,
          labels=FALSE, add.contour=TRUE,
          xlab='Latitude')

## Using a function of coordinates
hovmoller(SISmm, dirXY=sqrt(x^2+y^2))
}

if (FALSE) {
library(zoo)

## DESCRIPTION: http://iridl.ldeo.columbia.edu/SOURCES/.CAC/.sst/
setwd(tempdir())
download.file('http://iridl.ldeo.columbia.edu/SOURCES/.CAC/.sst/data.nc', destfile = 'SST.nc')
SST <- stack('SST.nc')
idx <- seq(as.Date('1970-01-01'), as.Date('2003-03-01'), by='month')
tt <- as.yearmon(idx)
SST <- setZ(SST, tt)
names(SST) <- as.character(tt)

## Extract month value from a Date or yearmon object
month <- function(x)format(x, '%m')
## Compute anomaly using monthly grouping with ave  
anomaly <- function(x){
    ## Monthly means
    mm <- ave(x, month(tt), FUN = mean)
    ## Monthly standard deviation
    msd <- ave(x, month(tt), FUN = sd)
    ## anomaly
    (x - mm)/msd
}
## Use anomaly with calc
SSTanom <- calc(SST, anomaly)
SSTanom <- setZ(SSTanom, tt)

## Ok, let's see the result
hovmoller(SSTanom,
          at = seq(-3, 3, .25),
          panel = panel.levelplot.raster,
          interpolate = TRUE,
          yscale.components = yscale.raster.subticks,
          par.settings = BuRdTheme)
}

Run the code above in your browser using DataLab