@@ -99,9 +99,13 @@ def split(g):
99
99
100
100
def convert_nx (g ):
101
101
102
+ orders = algo .orders (g )
103
+ g .properties ()['root_degree' ] = orders
102
104
max_scale = g .max_scale ()
103
105
root_id = next (g .component_roots_at_scale_iter (g .root , scale = max_scale ))
104
106
107
+ root_coord = [g .node (root_id ).x , g .node (root_id ).y ]
108
+
105
109
edge_list = []
106
110
nodes = list (traversal .pre_order2 (g , vtx_id = root_id ))
107
111
for v in nodes :
@@ -113,16 +117,35 @@ def convert_nx(g):
113
117
114
118
g_nx = nx .from_edgelist (edge_list , create_using = nx .DiGraph )
115
119
116
- props = ['x' , 'y' , 'time' , 'time_hours' , 'diameters' , 'label' , 'diameter' ]
120
+ props = ['x' , 'y' , 'time' , 'time_hours' , 'diameters' , 'label' , 'diameter' , 'root_degree' ]
117
121
for node in nodes :
118
122
for prop in props :
119
123
_prop = g .property (prop )
120
124
if node in _prop :
121
125
g_nx .nodes [node ][prop ] = _prop .get (node )
122
126
123
- return g_nx
127
+ # Adaptater to Ariadne
128
+ # Compute LR_index
129
+ axis_root = g .complex (root_id )
130
+ lr_index = dict ((vid , i ) for i , vid in enumerate (traversal .pre_order2 (g , vtx_id = axis_root )))
131
+
132
+ for node in nodes :
133
+ g_nx .nodes [node ]['LR_index' ] = lr_index [g .complex (node )] if lr_index [g .complex (node )] else None
134
+
135
+ for node in g_nx .nodes :
136
+ x = g_nx .nodes [node ]['x' ]- root_coord [0 ]
137
+ y = g_nx .nodes [node ]['y' ]- root_coord [1 ]
138
+ g_nx .nodes [node ]['pos' ] = [x , y ]
139
+
140
+ tree_nx = nx .convert_node_labels_to_integers (g_nx )
141
+ return tree_nx
142
+
143
+
144
+
145
+
146
+
147
+
124
148
125
-
126
149
127
150
def test_all ():
128
151
"""
0 commit comments