19 votos

Crear polígonos del límite de un Raster en R

Quiero crear dos polígonos.

  1. Una es de las extensiones rectangulares de mi trama. Sé que puedo obtener la extensión del raster utilizando r <- raster("band5.tif") e <- extent(r) plot(e) me da esto: enter image description here

  2. ¿Cómo puedo crear UN polígono del límite del raster como se muestra a continuación?

Este es el aspecto de mi trama: raster("band5.tif")

33voto

SteveBurkett Puntos 960

He aquí 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 rodee celdas que no sean 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)

Cinco años después: Hoy en día usaría terra que lo hace mucho más rápido.

library(terra)
z <- rast(system.file("external/test.grd", package="raster"))
pe <- as.polygons(ext(z))
pr <- as.polygons(z > -Inf)

plot(z)
plot(pe, lwd=5, border='red', add=TRUE)
plot(pr, lwd=3, border='blue', add=TRUE)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X