Um Rasterwerte unter SpatialPoints
zu ändern, können Sie einfach [
verwenden. JetztÄndern von Rasterwerten mit räumlichen Polygonen
r <- raster(system.file("external/test.grd", package="raster"))
rTp <- rasterToPoints(r, spatial = T)
set.seed(666)
rTpS <- rTp[sample(1:length(rTp), 500),]
plot(r)
plot(rTpS, add = TRUE, pch = ".")
werden die Rasterwerte unter den räumlichen Punkten geändert wie folgt aus:
r1 <- r
r1[rTpS] <- 99999
plot(r1)
Raster mit SpatialPoints (links) und Raster mit geänderten Werten (rechts):
Also nahm ich an, dass Polygone auf die gleiche Weise arbeiten. erzeugen daher einige Polygone aus diesem Raster Datensatz:
rst <- as.integer(stretch(r, 0, 10))
rTpol <- rasterToPolygons(rst, dissolve = T)
rTpol <- rTpol[rTpol$layer > 3,]
plot(r)
plot(rTpol, add = T)
rst[rTpol[,]] <- 100
plot(rst)
# also tried
# rst[rTpol] <- 100
Allerdings, wenn ich unten einige SpatialPolygons
die Rasterwerte versuchen zu ändern, irgendwie die ID (oder etwas) der Polygone. Doch sollte es 100.
Raster mit SpatialPolygons sein (links) und Raster mit seltsam veränderten Werte (rechts):
Daher meine Frage, wie Raster-Werte innerhalb von Polygonen zu ändern.
Das ist eine gute Lösung, aber Ihre ursprüngliche Lösung war elegantere --- und sollte gearbeitet haben. Dieser Fehler wurde in der (kommenden) Raster-Version 2.5-16 behoben. – RobertH
@RobertH: Weißt du, ob die Aktualisierung des Raster-Pakets bereits auf dem Weg ist? – loki