Mais

Como rasterizar um objeto da classe SpatialPolygonsDataframe em R

Como rasterizar um objeto da classe SpatialPolygonsDataframe em R


Quando li um shapefile de polígono em R usando rgdal, ele foi importado como um objeto de classeSpatialPolygonsDataframe.

Eu preciso rasterizar o polígono, mas orasterizar {raster}função requer que seja doSpatialPolygonsaula.

Como faço para convertê-lo do quadro de dados atual para oSpatialPolygonsaula?


Dê uma olhada na ajuda, orasterizarfunção raster irá, de fato, aceitar umSpatialPolygonsDataFrame.

Adaptado do segundo exemplo de polígono emrasterizarajuda.

Crie exemplos de polígonos

biblioteca (raster) polys <- spPolygons (rbind (c (-180, -20), c (-140,55), c (10, 0), c (-140, -60), c (-180, - 20)), rbind (c (-10,0), c (140,60), c (160,0), c (140, -55), c (-10,0)), rbind (c (- 125,0), c (0,60), c (40,5), c (15, -45), c (-125,0)), rbind (c (-180,10), c (0, 90), c (40,90), c (145, -10), c (-25, -15), c (-180,0), c (-180,10)))

Coerencie com SpatialPolygonsDataFrame e adicione dados

polys <- as (polys, "SpatialPolygonsDataFrame") polys @ data [, 1] <- runif (nrow (polys)) classe (polys)

Agora, rasterize os dados do polígono e plote. Orraster é o raster de referência para a função rasterizar.

r <- raster (ncol = 90, nrow = 45) r.polys <- rasterize (polys, r, field = polys @ data [, 1], fun = "mean", update = TRUE, updateValue = "NA") plot (r.polys)

Uma coisa que notei é que no raster 2.4-30 no windows com R 3.2.3 o argumento "campo" não está reconhecendo o índice da coluna (por exemplo, campo = 1). No entanto, se eu passar ao argumento o vetor real (como no meu exemplo), ele atribui os valores corretos ao raster resultante para todos os polígonos. Isso pode ser facilmente recriado, com o exemplo, usando a sintaxe:

r.polys <- rasterize (polys, r, field = 1, fun = "mean", update = TRUE, updateValue = "NA") '

Assista o vídeo: Pixel Value Extraction by Polygon in R