raster (version 3.5-2)

area: Size of cells


Raster objects: Compute the approximate surface area of cells in an unprojected (longitude/latitude) Raster object. It is an approximation because area is computed as the height (latitudinal span) of a cell (which is constant among all cells) times the width (longitudinal span) in the (latitudinal) middle of a cell. The width is smaller at the poleward side than at the equator-ward side of a cell. This variation is greatest near the poles and the values are thus not very precise for very high latitudes.

SpatialPolygons: Compute the area of the spatial features. Works for both planar and angular (lon/lat) coordinate reference systems


# S4 method for RasterLayer
area(x, filename="", na.rm=FALSE, weights=FALSE, ...)

# S4 method for RasterStackBrick area(x, filename="", na.rm=FALSE, weights=FALSE, ...)

# S4 method for SpatialPolygons area(x, ...)



Raster* or SpatialPolygons object


character. Filename for the output Raster object (optional)


logical. If TRUE, cells that are NA are ignored


logical. If TRUE, the area of each cells is divided by the total area of all cells that are not NA


additional arguments as for writeRaster


If x is a Raster* object: RasterLayer or RasterBrick. Cell values represent the size of the cell in km2, or the relative size if weights=TRUE

If x is a SpatialPolygons* object: area if each spatial object in squared meters if the CRS is longitude/latitude, or in squared map units (typically meter)


If x is a RasterStack/Brick, a RasterBrick will be returned if na.rm=TRUE. However, if na.rm=FALSE, a RasterLayer is returned, because the values would be the same for all layers.


r <- raster(nrow=18, ncol=36)
a <- area(r)

if (require(rgdal) & require(rgeos)) {
	p <- shapefile(system.file("external/lux.shp", package="raster"))
	p$area <- round(area(p) / 10000000,1)
# }