Respostas:
Aqui está um exemplo.
library(raster)
# example data
x <- raster(system.file("external/test.grd", package="raster"))
Para obter a extensão retangular
e <- extent(x)
# coerce to a SpatialPolygons object
p <- as(e, 'SpatialPolygons')
Para obter um polígono que envolve células que não são 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
é básico R
. Faça c(1,NA,3,NA) > -Inf
para ver como funciona. Eu adicionei uma alternativa ( reclassify
). Sua alternativa funciona, mas não é boa para objetos grandes.
rasterToPolygons()
peça e, depois, avaliarei sua resposta. Obrigado pela parte que -Inf
vai ser muito útil!
aggregate
pois não veria a diferença de qualquer maneira.
aggregate()
on r, ele não foi processado (computador equipado com 16 GB de RAM). O problema é que preciso manter o limite o mais nativo possível, pois um DEM precisa ser extraído do polígono resultante. Se eu fizer uma amostragem mais baixa da minha varredura, perderei esse limite. Alguma solução?
r <- r > -Inf
peça. O que exatamente está fazendo? E quão diferente évalues(r)[!is.na(values(r))] <- 1
(que define todos os locais que não são NA em r para 1).