The goal of visor is to provide a set of tools for visibility analysis.
You can install the released version of visor from CRAN with:
install.packages("visor")
You can install the development version of visor from GitHub with:
# install.packages("pak")
::pak("CityRiverSpaces/visor") pak
This is a basic example which shows you how to use visor to calculate the isovist for view points on an arbitrary geometry (a line) and a set of occluders:
library(visor)
library(sf)
# Define occluder geoemtries
<- st_sfc(
occluders create_occluder(1, 1, 1, 0.5),
create_occluder(4, 1, 1.5, 0.7),
create_occluder(7, 1, 0.8, 0.8),
create_occluder(2, 5, 2, 1),
create_occluder(5, 5, 1, 1.5),
create_occluder(1, 7, 1.2, 0.6),
create_occluder(7, 7, 1.8, 0.9)
)
# Define the viewpoint source geometry
<- st_sfc(
line st_linestring(matrix(c(0, 3, 9, 3), ncol = 2, byrow = TRUE))
)
# Generate viewpoints
<- get_viewpoints(line, density = 1)
vpoints
# Calculate isovist
<- get_isovist(vpoints, occluders, ray_num = 160, ray_length = 5,
isovist remove_holes = FALSE)
plot(isovist, col = "blue")
plot(occluders, col = "grey", add = TRUE)
plot(line, col = "lightblue", add = TRUE)
plot(vpoints, col = "red", add = TRUE)