Réponses:
Voici un exemple.
library(raster)
# example data
x <- raster(system.file("external/test.grd", package="raster"))
Pour obtenir l'étendue rectangulaire
e <- extent(x)
# coerce to a SpatialPolygons object
p <- as(e, 'SpatialPolygons')
Pour obtenir un polygone qui entoure des cellules qui ne sont pas NA
# make all values the same. Either do
r <- x > -Inf
# or alternatively
# r <- reclassify(x, cbind(-Inf, Inf, 1))
# convert to polygons (you need to have package 'rgeos' installed for this to work)
pp <- rasterToPolygons(r, dissolve=TRUE)
# look at the results
plot(x)
plot(p, lwd=5, border='red', add=TRUE)
plot(pp, lwd=3, border='blue', add=TRUE)
r > -Inf
est basique R
. Faites c(1,NA,3,NA) > -Inf
pour voir comment cela fonctionne. J'ai ajouté une alternative ( reclassify
). Votre alternative fonctionne mais elle n'est pas bonne pour les gros objets.
rasterToPolygons()
pièce, et ensuite j'évaluerai votre réponse. Merci pour le -Inf
peu que ça va être très utile!
aggregate
car vous ne verriez pas la différence de toute façon.
aggregate()
on r, il n'a pas été traité (ordinateur équipé de 16 Go de RAM). Le problème est que je dois garder la frontière aussi native que possible, car un DEM doit être extrait du polygone résultant. Si je sous-échantillonne davantage mon raster, je perdrai cette limite. Des travaux?
r <- r > -Inf
pièce. Que fait-il exactement? Et à quel point est-ce différentvalues(r)[!is.na(values(r))] <- 1
(qui définit tous les emplacements qui ne sont pas NA dans r à 1).