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.
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.
Author(s)
Oscar Perpiñán Lamigueiro
See Also
levelplot, zonal, panel.2dsmoother
References
Hovmoller, E. 1949. The trough and ridge diagram. Tellus 1, 62–66.
## Not run: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/V001old <- 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/m2idx <- 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 defaulthovmoller(SISmm, xlab='Latitude')hovmoller(SISmmt, xlab ='Latitude')## With contour lines and labelshovmoller(SISmm, labels=TRUE, add.contour=TRUE, xlab='Latitude')## Smooth color regions with latticeExtra::panel.2dsmootherlibrary(latticeExtra)hovmoller(SISmm, panel=panel.2dsmoother, n=1000, labels=FALSE, add.contour=TRUE, xlab='Latitude')## Using a function of coordinateshovmoller(SISmm, dirXY=sqrt(x^2+y^2))## End(Not run)## Not run: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 objectmonth <-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 calcSSTanom <- calc(SST, anomaly)SSTanom <- setZ(SSTanom, tt)## Ok, let's see the resulthovmoller(SSTanom, at = seq(-3,3,.25), panel = panel.levelplot.raster, interpolate =TRUE, yscale.components = yscale.raster.subticks, par.settings = BuRdTheme)## End(Not run)