Je veux masquer un raster en fonction des valeurs d'un polygone: c'est-à-dire définir à NA toutes les valeurs du raster qui ne sont pas couvertes par les polygones. Cependant, il semble que raster::mask()
les cellules soient masquées (c'est-à-dire qu'elles soient définies sur NA) même si elles sont partiellement couvertes?
Ceci est similaire à la question: Recadrer un raster par un polygone - les cellules manquantes qui sont partiellement en dehors du polygone , mais contrairement à crop()
, mask()
n'ont pas l' snap="out"
option.
Vérifiez: ici le point droit du triangle touche une cellule, mais cette cellule est masquée.
library(raster)
library(sp)
r <- raster(xmn=1, xmx=5, ymn=1, ymx=5, nrows=4, ncols=4)
r[] <- 1:length(r)
Sr1 = Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))
Sr2 = Polygon(cbind(c(4.1,4,2),c(2,3,2)))
SpP = SpatialPolygons(list(Polygons(list(Sr1), "s1"), Polygons(list(Sr2), "s2")), 1:2)
plot(mask(r, SpP))
plot(SpP, add=TRUE)