Class representing connected components of a metric graph.
Object of R6Class
for creating metric graph components.
graphs
List of the graphs representing the connected components.
n
The number of graphs.
sizes
Number of vertices for each of the graphs.
lengths
Total edge lengths for each of the graphs. Create metric graphs for connected components
new()
graph_components$new(
edges = NULL,
V = NULL,
E = NULL,
by_length = TRUE,
edge_weights = NULL,
...,
lines = deprecated()
)
edges
A list containing coordinates as m x 2
matrices (that is, of matrix
type) or m x 2 data frames (data.frame
type) of sequence of points connected by straightlines. Alternatively, you can also prove an object of type SpatialLinesDataFrame
or SpatialLines
(from sp
package) or MULTILINESTRING
(from sf
package).
V
n x 2 matrix with Euclidean coordinates of the n vertices.
E
m x 2 matrix where each row represents an edge.
by_length
Sort the components by total edge length? If FALSE
,
the components are sorted by the number of vertices.
edge_weights
Either a number, a numerical vector with length given by the number of edges, providing the edge weights, or a data.frame
with the number of rows being equal to the number of edges, where
...
Additional arguments used when specifying the graphs
lines
vertex_unit
The unit in which the vertices are specified. The options are 'degree' (the great circle distance in km), 'km', 'm' and 'miles'. The default is NULL
, which means no unit. However, if you set length_unit
, you need to set vertex_unit
.
length_unit
The unit in which the lengths will be computed. The options are 'km', 'm' and 'miles'. The default is vertex_unit
. Observe that if vertex_unit
is NULL
, length_unit
can only be NULL
.
If vertex_unit
is 'degree', then the default value for length_unit
is 'km'.
longlat
If TRUE, then it is assumed that the coordinates are given.
in Longitude/Latitude and that distances should be computed in meters. It takes precedence over
vertex_unit
and length_unit
, and is equivalent to vertex_unit = 'degree'
and length_unit = 'm'
.
tolerance
Vertices that are closer than this number are merged when
constructing the graph (default = 1e-10). If longlat = TRUE
, the
tolerance is given in km.
A graph_components
object.
get_largest()
Returns the largest component in the graph.
graph_components$get_largest()
A metric_graph
object.
plot()
Plots all components.
graph_components$plot(edge_colors = NULL, vertex_colors = NULL, ...)
edge_colors
A 3 x nc matrix with RGB values for the edge colors to be used when plotting each graph.
vertex_colors
A 3 x nc matrix with RGB values for the edge colors to be used when plotting each graph.
...
Additional arguments for plotting the individual graphs.
A ggplot
object.
clone()
The objects of this class are cloneable with this method.
graph_components$clone(deep = FALSE)
deep
Whether to make a deep clone.
A list of metric_graph
objects (representing the different
connected components in the full graph) created from vertex and edge matrices,
or from an sp::SpatialLines object where each line is representing and edge.
For more details, see the vignette:
vignette("metric_graph", package = "MetricGraph")
library(sp)
edge1 <- rbind(c(0, 0), c(1, 0))
edge2 <- rbind(c(1, 0), c(2, 0))
edge3 <- rbind(c(1, 1), c(2, 1))
edges <- list(edge1, edge2, edge3)
graphs <- graph_components$new(edges)
graphs$plot()
Run the code above in your browser using DataLab