J'ai deux grandes images raster (30 000 x 30 000), une pour l'année 2000 et une autre pour 2005. Je veux remplacer les pixels par NA dans le raster 2000 par leurs valeurs non-NA respectives du raster 2005. Voici un exemple:Comment remplacer NA dans un grand raster avec des valeurs d'un autre raster dans R?
r1 <- raster(ncols=36, nrows=18)
r1[] <- 1:ncell(r1)
plot(r1)
r2 <- raster(ncols=36, nrows=18)
r2[] <- 1:ncell(r2)
r2[r2<300] <- NA
plot(r2)
Dans cet exemple, je voudrais remplacer des AN dans « r2 » par leurs valeurs respetive dans « r1 ». J'ai essayé la commande « couverture() » dans R, mais que l'on ne complète pas « r2, » plutôt retourne l'info qui manque dans « r2 » mais présent dans « r1 »:
r2.fix <- cover(r2, r1)
plot(r2.fix)
Toutes les idées sur comment le travail est-il fait? Merci d'avance.
MISE À JOUR: Le problème avec cette solution:
r2[is.na(r2)] <- r1[is.na(r2)]
Est-ce qu'il ne fonctionne pas avec de grandes rasters. R renvoie l'erreur suivante:
Error: cannot allocate vector of size 2.6 Gb
In addition: Warning messages:
1: In order(cells[, 2]) :
Reached total allocation of 16080Mb: see help(memory.size)
Si vos rasters sont trop gros, consultez ce [Guide] (https://cran.r-project.org/web/packages/raster/vignettes/functions.pdf) sur fonctions d'écriture pour les grands rasters, en particulier le traitement en bloc – Val