View source: R/add_spatial_relations.R
| add_spatial_queen | R Documentation |
Build and register a queen adjacency relation from planning-unit polygons.
Two planning units are queen-adjacent if their boundaries touch, either along a shared edge or at a shared vertex.
add_spatial_queen(x, geometry = NULL, name = "queen", weight = 1)
x |
A |
geometry |
Optional |
name |
Character string giving the key under which the relation is stored. |
weight |
Numeric scalar giving the edge weight assigned to each queen adjacency. |
Use this function when neighbourhood should include both shared edges and corner-touching polygon contacts.
This constructor derives an adjacency graph from polygon geometry using a
queen criterion. If planning units i and j touch at any boundary
point, then an edge (i,j) is added to the relation.
Let G = (\mathcal{I}, E) denote the resulting graph. Then:
(i,j) \in E \quad \Longleftrightarrow \quad
\partial i \cap \partial j \neq \varnothing.
Thus, queen adjacency includes all rook neighbours plus corner-touching neighbours.
All edges receive the same user-supplied weight.
The resulting relation is stored as an undirected spatial relation.
An updated Problem object.
add_spatial_rook,
add_spatial_boundary
# Load a complete simulated planning problem.
example_data <- load_sim_multiaction()
p <- create_problem(
pu = example_data$planning_units,
features = example_data$features,
dist_features = example_data$dist_features,
cost = "cost"
)
p <- add_spatial_queen(
x = p,
geometry = example_data$planning_units,
name = "queen",
weight = 1
)
head(p$data$spatial_relations$queen)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.