Calculate a buffer around all cells that are not NA or around SpatialPoints, Lines, or Polygons.

Note that the distance unit of the buffer width parameter is meters if the RasterLayer is not projected (+proj=longlat), and in map units (typically also meters) when it is projected.

# S4 method for RasterLayer
buffer(x, width=0, filename='', doEdge=FALSE, ...)

# S4 method for Spatial
buffer(x, width=1, dissolve=TRUE, ...)



RasterLayer or Spatial* object


numeric > 0. Unit is meter if x has a longitude/latitude CRS, or mapunits in other cases


character. Filename for the output RasterLayer (optional)


logical. If TRUE, the boundaries function is called first. This may be efficient in cases where you compute a buffer around very large areas because boundaries determines the edge cells that matter for distance computation


logical. If TRUE, buffer geometries of overlapping polygons are dissolved and all geometries are aggregated and attributes (the data.frame) are dropped


Additional arguments as for writeRaster


RasterLayer or SpatialPolygons* object


r <- raster(ncol=36,nrow=18)
values(r) <- NA
r[500] <- 1
b <- buffer(r, width=5000000)