crop returns a geographic subset of an object as specified by an Extent object (or object from which an extent object can be extracted/created). If x is a Raster* object, the Extent is aligned to x. Areas included in y but outside the extent of x are ignored (see extend if you want a larger area).
## S4 method for signature 'Raster'crop(x, y, filename="", snap='near', datatype=NULL,...)## S4 method for signature 'Spatial'crop(x, y,...)
Arguments
x: Raster* object or SpatialPolygons*, SpatialLines*, or SpatialPoints* object
y: Extent object, or any object from which an Extent object can be extracted (see Details)
filename: Character, output filename. Optional
snap: Character. One of 'near', 'in', or 'out', for use with alignExtent
datatype: Character. Output dataType (by default it is the same as the input datatype)
...: Additional arguments as for writeRaster
Note
values within the extent of a Raster* object can be set to NA with mask
Details
Objects from which an Extent can be extracted/created include RasterLayer, RasterStack, RasterBrick and objects of the Spatial* classes from the sp package. You can check this with the extent function. New Extent objects can also be created with function extent and drawExtent by clicking twice on a plot.
To crop by row and column numbers you can create an extent like this (for Raster x, row 5 to 10, column 7 to 12) crop(x, extent(x, 5, 10, 7, 12))
Returns
RasterLayer or RasterBrick object; or SpatialLines or SpatialPolygons object.
See Also
extend, merge
Examples
r <- raster(nrow=45, ncol=90)values(r)<-1:ncell(r)e <- extent(-160,10,30,60)rc <- crop(r, e)# use row and column numbers:rc2 <- crop(r, extent(r,5,10,7,15))# crop Raster* with Spatial* objectb <- as(extent(6,6.4,49.75,50),'SpatialPolygons')crs(b)<- crs(r)rb <- crop(r, b)# crop a SpatialPolygon* object with another onep <- shapefile(system.file("external/lux.shp", package="raster"))pb <- crop(p, b)