2014-04-15 15 views
13

Ich verwende {Raster}, um ein Raster auf Basis eines unregelmäßigen Shapefiles (Amazon-Biom) zu schneiden (oder auszuschneiden), aber die Ausgabe hat immer eine rechteckige Ausdehnung. Allerdings brauche ich die Ausgabe in der exakt gleichen Geometrie des Shapefiles. Irgendwelche Tipps? Prost.Clipping-Raster mit Shapefile in R, aber unter Beibehaltung der Geometrie des Shapefiles

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") 

Antwort

20

Eine Option ist 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

+0

Arbeitete perfekt nutzen zu können! Vielen Dank. –