Respuestas:
Aquí hay un ejemplo.
library(raster)
# example data
x <- raster(system.file("external/test.grd", package="raster"))
Para obtener la extensión rectangular
e <- extent(x)
# coerce to a SpatialPolygons object
p <- as(e, 'SpatialPolygons')
Para obtener un polígono que rodea las celdas que no son 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
es básico R
. Haz c(1,NA,3,NA) > -Inf
para ver cómo funciona. He agregado una alternativa ( reclassify
). Su alternativa funciona, pero no es buena para objetos grandes.
rasterToPolygons()
parte, y luego evaluaré su respuesta. ¡Gracias por el -Inf
bit, será muy útil!
aggregate
ya que de todos modos no vería la diferencia.
aggregate()
on r, no se ha procesado (computadora equipada con 16 GB de RAM). El problema es que necesito mantener el límite lo más nativo posible, ya que es necesario extraer un DEM del polígono resultante. Si sigo bajando la muestra de mi trama, perderé ese límite. Cualquier trabajo alrededor?
r <- r > -Inf
parte. ¿Qué está haciendo exactamente? Y qué tan diferente esvalues(r)[!is.na(values(r))] <- 1
(que establece todas las ubicaciones que no son NA en r en 1).