TransWikia.com

Assign raster values based on polygon intersection

Geographic Information Systems Asked by C. Ashley on December 16, 2020

I have a raster where every cell is a 1. I also have a polygon of buffer areas that fall within the raster. I want to assign all raster cells that intersect the polygon geometrics to NA. But the two files have different extents and origins. I don’t see a reason to share code, since I build the raster and polygons based on proprietary data. But I can illustrate it. The black grid represents my current raster, the blue cicle is the polygon:

Overlaid raster and grid

What function will allow me to reassign the raster value of all cells that intersect the polygon? The raster would become as follows:

enter image description here

One Answer

You may as well use the function mask; according to the function help: "You can use inverse=TRUE to set the cells that are not NA (or other maskvalue) in the mask"

library(raster)
library(sf)
m = matrix(rep(1,100), ncol = 10)
r = raster(m)

point = st_sfc(st_point(c(.8,.1))) # let's create a point and buffer it to have a polygon
pol = st_buffer(point,.1)
plot(pol, add = T)
r_masked = mask(r, as(pol, "Spatial"), inverse = T )

par(mfrow = c(1,2))
plot(r, axes = F, legend =F, bty = "n")
text(r)
plot(r_masked, axes = F, legend = F)
text(r_masked)
plot(pol, add = T)

enter image description here

Correct answer by Elio Diaz on December 16, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP