PBSmapping (version 2.72.1)

calcVoronoi: Calculate the Voronoi (Dirichlet) Tesselation for a Set of Points

Description

Calculate the Voronoi (Dirichlet) tesselation for a set of points.

Usage

calcVoronoi (xydata, xlim = NULL, ylim = NULL, eps = 1e-09, frac = 0.0001)

Arguments

xydata

a data frame with columns X and Y containing the points.

xlim

range of X-coordinates; a bounding box for the coordinates.

ylim

range of Y-coordinates; a bounding box for the coordinates.

eps

the value of epsilon used in testing whether a quantity is zero.

frac

used to detect duplicate input points, which meet the condition \(\left | x1 - x2 \right | < \mbox{frac} \times (\mbox{xmax} - \mbox{xmin}) \mbox{and} \left | y1 - y2 \right | < \mbox{frac} \times (\mbox{ymax} - \mbox{ymin})\).

Value

PolySet with columns PID, POS, X, and Y.

Details

This routine ignores all columns other than X and Y.

If the user leaves xlim and ylim unspecified, the function defaults to the range of the data with each extent expanded by ten percent of the range.

This function sets the attribute projection to 1 and the attribute zone to NULL as it assumes this projection in its calculations.

See Also

addPoints, addPolys, calcArea, calcCentroid, calcConvexHull, calcMidRange, calcSummary, locateEvents, plotMap, plotPoints, plotPolys.

Examples

Run this code
# NOT RUN {
local(envir=.PBSmapEnv,expr={
  oldpar = par(no.readonly=TRUE)
  #--- create some EventData
  events <- as.EventData(data.frame(
    EID=1:200, X=rnorm(200), Y=rnorm(200)), projection=1)
  #--- calculate the Voronoi tesselation
  polys <- calcVoronoi(events)
  #--- create PolyData to color it based on area
  polyData <- calcArea(polys)
  names(polyData)[is.element(names(polyData), "area")] <- "Z"
  colSeq <- seq(0.4, 0.95, length=4)
  polyData <- makeProps(polyData,
    breaks=quantile(polyData$Z,c(0,.25,.5,.75,1)),
    propName="col", propVals=rgb(colSeq,colSeq,colSeq))
  #--- plot the tesselation
  plotMap(polys, polyProps=polyData)
  #--- plot the points
  addPoints(events, pch=19)
  par(oldpar)
})
# }

Run the code above in your browser using DataLab