web-dev-qa-db-fra.com

Découpage du raster à l'aide du fichier de formes dans R, mais en conservant la géométrie du fichier de formes

J'utilise {raster} pour découper (ou recadrer) un raster basé sur un fichier de formes irrégulier (le biome Amazon) mais la sortie a toujours une étendue rectangulaire. Cependant, j'ai besoin de la sortie dans la même géométrie exacte du fichier de formes. Des conseils? À votre santé.

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")
18
ALS.Meyer

Une option consiste à utiliser 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)

enter image description here

33
Josh O'Brien