I am trying to create Voronoi polygons (aka Dirichlet tessellations or Thiessen polygons) within a fixed geographic region for a set of points. However, I am having trouble finding a method in R that will bound the polygons within the map borders. My main goal is to get accurate area calculations (not simply to produce a visual plot). For example, the following visually communicates what I'm trying to achieve:
library(maps)
library(deldir)
data(countyMapEnv)
counties <- map('county', c('maryland,carroll','maryland,frederick', 'maryland,montgomery', 'maryland,howard'), interior=FALSE)
x <- c(-77.208703, -77.456582, -77.090600, -77.035668, -77.197144)
y <- c(39.188603, 39.347019, 39.672818, 39.501898, 39.389203)
points(x,y)
vt <- deldir(x, y, rw=counties$range)
plot(vt, wlines="tess", lty="solid", add=TRUE)
which produces the following:
Conceptually I want to intersect counties
with vt
which should provide a set of polygons bounded by the county borders and accurate area calculations for each. Right now, vt$summary
provides area calculations for each polygon, but they are obviously overstated for all but the one interior polygon, and deldir()
appears to only accept rectangular enclosings for its rw
argument. I am new to R's geospacial capabilities, so am open to other approaches beyond what I outlined above.
map
to aSpatialPolygon
from my answer. – Tropology