Source code for abm_colony_collection.calculate_distance_measures
from __future__ import annotations
import networkx as nx
import pandas as pd
[docs]def calculate_distance_measures(network: nx.Graph) -> pd.DataFrame:
"""
Calculate distance measures for each node in network.
Measures include:
- Eccentricity = maximum distance from node to all other nodes
Parameters
----------
network
The network object.
Returns
-------
:
Distance measures for each node in the network.
"""
measures: list[dict[str, int | float]] = []
for component in nx.connected_components(network):
# Calculate eccentricity for connected subnetwork.
eccentricity = nx.eccentricity(network.subgraph(component))
# Extract distance measures for each node in subnetwork.
measures = measures + [
{
"ID": node,
"ECCENTRICITY": eccentricity[node],
}
for node in component
]
return pd.DataFrame(measures)