Risposte:
Ecco un esempio
library(raster)
# example data
x <- raster(system.file("external/test.grd", package="raster"))
Per ottenere l'estensione rettangolare
e <- extent(x)
# coerce to a SpatialPolygons object
p <- as(e, 'SpatialPolygons')
Per ottenere un poligono che circonda le celle che non sono 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
è di base R
. Fai c(1,NA,3,NA) > -Inf
per vedere come funziona. Ho aggiunto un'alternativa ( reclassify
). La tua alternativa funziona ma non è buona per oggetti di grandi dimensioni.
rasterToPolygons()
parte e quindi valuterò la tua risposta. Grazie per il -Inf
bit sarà molto utile!
aggregate
poiché non vedresti comunque la differenza.
aggregate()
on, non è stato elaborato (computer dotato di 16 GB di RAM). Il problema è che devo mantenere il confine il più nativo possibile, poiché un DEM deve essere estratto dal poligono risultante. Se campiono ulteriormente il mio raster perderò quel limite. Qualche soluzione?
r <- r > -Inf
parte. Cosa sta facendo esattamente? E quanto è diverso davalues(r)[!is.na(values(r))] <- 1
(che imposta tutte le posizioni che non sono NA in r su 1).