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)