Produces a raster of random polygons. These are built with the spread function internally.

Produces a SpatialPolygons object with 1 feature that will have approximately an area equal to hectares, and a centre at approximately x

randomPolygons(ras = raster(extent(0, 15, 0, 15), res = 1, vals = 0),
  numTypes = 2, ...)

randomPolygon(x, hectares)



A raster that whose extent will be used for the randomPolygons


Numeric value. The number of unique polygon types to use.


Other arguments passed to spread. No known uses currently.


Either a SpatialPoints or matrix with 2 dimensions, 1 row, with with the approximate centre of the new random polygon to create. If matrix, then longitude and latitude are assumed (epsg:4326)


A numeric, the approximate area in hectares of the random polygon


A map of extent ext with random polygons.

A SpatialPolygons object, with approximately the area request, centred approximately at the coordinates requested

See also

spread, raster, randomPolygons gaussMap and randomPolygons


library(quickPlot) set.seed(1234) Ras <- randomPolygons(numTypes = 5) if (interactive()) { clearPlot() Plot(Ras, cols = c("yellow", "dark green", "blue", "dark red")) }
library(raster) # more complex patterning, with a range of patch sizes a <- randomPolygons(numTypes = 400, raster(extent(0, 50, 0, 50), res = 1, vals = 0)) a[a<320] <- 0 a[a>=320] <- 1 suppressWarnings(clumped <- clump(a)) # warning sometimes occurs, but not important aHist <- hist(table(getValues(clumped)), plot = FALSE) if (interactive()) { clearPlot() Plot(a) Plot(aHist) }
library(sp) b <- SpatialPoints(cbind(-110, 59)); a <- randomPolygon(b, 1e4); plot(a);
points(b, pch=19)