Network creation

[1]:

def create_graph( output=[], directed=False, attributes=False, derived_attr=False, sheet=None, actual_pos=False, cd=False ): if not output: output = get_graph(sheet=sheet) if directed: G = nx.OrderedDiGraph() else: G = nx.OrderedGraph() G.add_edges_from(output['ed_ls']) if 'xyz' in output: nodes = list(sorted(G.nodes())) assert(nodes == output['nodes']) if actual_pos: pos = OrderedDict(zip(nodes, output['xyz_actual'])) else: pos = OrderedDict(zip(nodes, output['xyz'])) nx.set_node_attributes(G, pos, 'pos') else: # pseudo positions logging.warning("Coordinate positions assigned from networkx's layout ...") pos = nx.random_layout(G, dim=3, seed=1) nx.set_node_attributes(G, pos, 'pos') if attributes: # edges = sorted(G.edges) # assert(edges == list(zip(list(output['tail']), list(output['head'])))) edges = list(zip(list(output['tail']), list(output['head']))) d = OrderedDict(zip(edges, output['d'])) nx.set_edge_attributes(G, d, 'd') if cd: l = OrderedDict(zip(edges, output['cd'])) else: l = OrderedDict(zip(edges, output['l'])) nx.set_edge_attributes(G, l, 'l') if derived_attr: node_r = OrderedDict(zip(nodes, output['node_r'])) nx.set_node_attributes(G, node_r, 'node_r') node_l = OrderedDict(zip(nodes, output['node_l'])) nx.set_node_attributes(G, node_l, 'node_l') return G

[ ]: