Ich bin relativ neu zu verwenden R
und arbeiten mit GIS-Daten.Overlay-Raster auf einen bestimmten Wert
Ich versuche, eine Funktion zu erstellen, um zwei Raster
Ebenen zu überlagern, nur wenn eines der Raster (in diesem Fall raster1
) auf einem bestimmten Wert (in diesem Fall 0) ist. Ich habe verschiedene Möglichkeiten ausprobiert, aber sie scheinen nicht zu funktionieren. Mein letzter Versuch ist unten zur Verfügung gestellt, und es läuft, aber die Ausgabe sagt nur NULL
und es plottet nicht.
library(raster)
raster1 <- raster(ncols=10,nrows=10)
raster2 <- raster(ncols=10,nrows=10)
values(raster1) <- round(runif(ncell(raster1)))
values(raster2) <- round(runif(ncell(raster2)))
plot(raster1)
plot(raster2)
overlay_zero <- function (x, y) {
if (isTRUE(x == 0)) {
overlay(x, y, fun=function(x,y) {return(x+y)})}
}
z <- overlay_zero(raster1, raster2)
z
plot(z)
Also, wenn ich richtig verstanden, bei Wert '0' für' Raster1' möchten Sie die Werte von 'Raster2' hinzufügen? – Val
ja, das ist richtig. – DFinch