Suite

Comparez deux rasters dans R avec la valeur de cellule de l'un remplaçant la valeur de la cellule d'un autre


J'essaie de créer un seul raster à partir de deux rasters. Le premier raster est composé de toutes les valeurs 0 et le second est composé de la valeur de date actuelle (formatée en jours de 001 à 365). Le problème est d'utiliser la superposition de trames, j'ai du mal à obtenir le résultat que je recherche. Je peux combiner l'utilisation des éléments suivants sans aucun problème :

zeroRaster <- overlay(changeDate, zeroRaster, fun=function(x,y){return(x+y)})

Cependant, lorsqu'une cellule spécifique change plusieurs fois, les deux dates sont additionnées, ce qui est évidemment incorrect (la fonction x + y étant à blâmer).

Comme j'ai du mal à expliquer, je vais essayer de représenter visuellement ce que j'essaie de réaliser ci-dessous :

Essentiellement, je veux juste remplacer n'importe quelle valeur de cellule dans le raster y par la nouvelle valeur de date du raster x sans exécuter de fonctions mathématiques.


Voici ce que Mikkel a suggéré (utilisation demax)

library(raster) cell100 <- raster(nr=3, nc=3, vals=c(100,0,0,0,100,0,0,0,100)) cell101 <- raster(nr=3, nc=3, vals =c(0,0,101,0,101,0,101,0,0)) r <- max(cell100, cell101) as.matrix(r) # [,1] [,2] [,3] #[1,] 100 0 101 #[2,] 0 101 0 #[3,] 101 0 100

Une autre approche (plus complexe) pourrait être

cell100 <- raster(nr=3, nc=3, vals=c(100,NA,NA,NA,100,NA,NA,NA,100)) cell101 <- raster(nr=3, nc=3, vals =c(NA,NA,101,NA,101,NA,101,NA,NA)) x <- cell101 x <- cover(x, cell100) x <- reclassify(x, cbind(NA, 0))