Hi all,
If I have two graphs g and h with internal edge property maps, how can I make these the layers of a graph i?
g = Graph(directed=False)
g.add_vertex(4)
g_weight = g.new_ep('int')
g_layer = g.new_ep('int')
g.add_edge_list([[0, 1, 2, 0], [2, 3, 2, 0]], eprops=[g_weight, g_layer])
g.edge_properties['weight'] = g_weight
g.edge_properties['layer'] = g_layer
h = Graph(directed=False)
h.add_vertex(4)
h_weight = h.new_ep('int')
h_layer = h.new_ep('int')
h.add_edge_list([[1, 2, 1, 1]], eprops=[h_weight, h_layer])
h.edge_properties['weight'] = h_weight
h.edge_properties['layer'] = h_layer
This works but is not nice and gets lengthy when layers are many:
i = g.copy() # make deep copy
i.add_edge_list(h.edges()) # this does not add the edge properties
i.ep.weight.a[-h.num_edges():] = h.ep.weight.a # manually add the edge weight
i.ep.layer.a[-h.num_edges():] = h.ep.weight.a # manually add the edge layer
Is there a better way?
I'm using gt 2.29 from conda-ostrokach.
Many thanks
Haiko
attachment.html (3.5 KB)