Обрезка растра с использованием шейп файла в R, но сохранение геометрии шейп файла
Я использую {raster} для клипа (или обрезки) растра на основе нерегулярного шейп файла (биома Amazon), но выход всегда имеет прямоугольную протяженность. Однако мне нужен вывод в той же самой геометрии шейп файла. Какие-нибудь советы? Приветствия.
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")
Ответы
Ответ 1
Один из вариантов - использовать 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)