momepy.cyclomatic#
- momepy.cyclomatic(graph, radius=5, name='cyclomatic', distance=None, verbose=True)[source]#
Calculates cyclomatic complexity for subgraph around each node if radius is set, or for whole graph, if
radius=None
. A subgraph is generated around each node within set radius. Ifdistance=None
, radius will define topological distance, otherwise it uses values indistance
attribute.\[\alpha=e-v+1\]where \(e\) is the number of edges in subgraph and \(v\) is the number of nodes in subgraph.
Adapted from [Bourdic et al., 2012].
- Parameters:
- graphnetworkx.Graph
A Graph representing a street network. Ideally generated from GeoDataFrame using
momepy.gdf_to_nx()
.- radius: int
Include all neighbors of distance <= radius from
n
.- namestr, optional
The calculated attribute name.
- distancestr, optional
Use specified edge data key as distance. For example, setting
distance=’weight’
will use the edgeweight
to measure the distance from the noden
.- verbosebool (default True)
If
True
, shows progress bars in loops and indication of steps.
- Returns:
- netxGraph
A networkx.Graph object if
radius
is set.- float
The cyclomatic complexity for the graph if
radius=None
.
Examples
>>> network_graph = mm.cyclomatic(network_graph, radius=3)