I am using {raster} to clip (or crop) a raster based on an irregular shapefile (the Amazon biome) but the output always has a rectangular extent. However, I need the output in the exact same geometry of the shapefile. Any tips? Cheers.
library(raster) library(rgdal) myshp <- readOGR("Amazon.shp", layer="Amazon") e <- extent(myshp) myraster <- raster("Temperature.tif") myraster.crop <- crop(myraster, e, snap="out", filename="myoutput.tif")
The Clip button on the Image Analysis window provides the functionality to clip any raster including a grid using a selected polygon feature within a feature class layer.
An existing raster or vector layer can be used as the clip extent. If you are using a feature class as the output extent, you can clip the raster by the minimum bounding rectangle of the feature class or by the polygon geometry of the features.
One option is to use raster::mask()
library(maptools) ## For wrld_simpl library(raster) ## Example SpatialPolygonsDataFrame data(wrld_simpl) SPDF <- subset(wrld_simpl, NAME=="Brazil") ## Example RasterLayer r <- raster(nrow=1e3, ncol=1e3, crs=proj4string(SPDF)) r[] <- 1:length(r) ## crop and mask r2 <- crop(r, extent(SPDF)) r3 <- mask(r2, SPDF) ## Check that it worked plot(r3) plot(SPDF, add=TRUE, lwd=2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With