library(sf)
if(require(sp, quietly = TRUE)) {
data(meuse, package = "sp")
meuse <- st_as_sf(meuse, coords = c("x", "y"), crs = 28992,
agr = "constant")
spolys <- hexagons(meuse, res=100)
spolys$ID <- 1:nrow(spolys)
p <- st_as_sf(st_sample(spolys, 500))
p$PTID <- 1:nrow(p)
sf::st_geometry(p) <- "geometry"
plot(st_geometry(spolys), main="all data")
plot(st_geometry(p), pch=20, add=TRUE)
sub.int <- spatial.select(p, spolys, predicate = "intersect")
plot(st_geometry(sub.int), main="intersects")
plot(st_geometry(p), pch=20, add=TRUE)
sub.prox <- spatial.select(p, spolys, distance=100, predicate = "proximity")
plot(st_geometry(sub.int), main="intersects")
plot(st_geometry(p), pch=20, add=TRUE)
# For rook or queen polygon contingency
plot( spolys <- sf::st_make_grid(sf::st_sfc(sf::st_point(c(0,0)),
sf::st_point(c(3,3))), n = c(3,3)) )
spatial.select(x=spolys, predicate = "contingency")
spatial.select(spolys, predicate = "contingency", neighbors = "rook")
}
Run the code above in your browser using DataLab