@@ -92,29 +92,27 @@ def get_group_array(results, nb_obs):
92
92
gr = empty (nb_obs .sum (), dtype = "u4" )
93
93
gr [:] = NOGROUP
94
94
95
- next_id_group = 1
96
- for i , j , i_ref , i_etu in results :
97
- sl_ref = slice (day_start [i ], day_start [i ] + nb_obs [i ])
98
- sl_etu = slice (day_start [j ], day_start [j ] + nb_obs [j ])
95
+ id_free = 1
96
+ for i , j , ii , ij in results :
97
+ gr_i = gr [ slice (day_start [i ], day_start [i ] + nb_obs [i ])]
98
+ gr_j = gr [ slice (day_start [j ], day_start [j ] + nb_obs [j ])]
99
99
# obs with no groups
100
- m = (gr [sl_ref ][i_ref ] == NOGROUP ) * (gr [sl_etu ][i_etu ] == NOGROUP )
101
- nb_no_groups = m .sum ()
102
- gr [sl_ref ][i_ref [m ]] = gr [sl_etu ][i_etu [m ]] = arange (
103
- next_id_group , next_id_group + nb_no_groups
104
- )
105
- next_id_group += nb_no_groups
100
+ m = (gr_i [ii ] == NOGROUP ) * (gr_j [ij ] == NOGROUP )
101
+ nb_new = m .sum ()
102
+ gr_i [ii [m ]] = gr_j [ij [m ]] = arange (id_free , id_free + nb_new )
103
+ id_free += nb_new
106
104
# associate obs with no group with obs with group
107
- m = (gr [ sl_ref ][ i_ref ] != NOGROUP ) * (gr [ sl_etu ][ i_etu ] == NOGROUP )
108
- gr [ sl_etu ][ i_etu [ m ]] = gr [ sl_ref ][ i_ref [m ]]
109
- m = (gr [ sl_ref ][ i_ref ] == NOGROUP ) * (gr [ sl_etu ][ i_etu ] != NOGROUP )
110
- gr [ sl_ref ][ i_ref [ m ]] = gr [ sl_etu ][ i_etu [m ]]
105
+ m = (gr_i [ ii ] != NOGROUP ) * (gr_j [ ij ] == NOGROUP )
106
+ gr_j [ ij [ m ]] = gr_i [ ii [m ]]
107
+ m = (gr_i [ ii ] == NOGROUP ) * (gr_j [ ij ] != NOGROUP )
108
+ gr_i [ ii [ m ]] = gr_j [ ij [m ]]
111
109
# case where 2 obs have a different group
112
- m = gr [ sl_ref ][ i_ref ] != gr [ sl_etu ][ i_etu ]
110
+ m = gr_i [ ii ] != gr_j [ ij ]
113
111
if m .any ():
114
112
# Merge of group, ref over etu
115
- for i_ , j_ in zip (i_ref [m ], i_etu [m ]):
116
- g_ref , g_etu = gr [ sl_ref ][ i_ ], gr [ sl_etu ] [j_ ]
117
- gr [gr == g_ref ] = g_etu
113
+ for i_ , j_ in zip (ii [m ], ij [m ]):
114
+ gr_i_ , gr_j_ = gr_i [ i_ ], gr_j [j_ ]
115
+ gr [gr == gr_i_ ] = gr_j_
118
116
return gr
119
117
120
118
@@ -161,7 +159,7 @@ def save(filenames, gr, out):
161
159
debug_active = logger .getEffectiveLevel () == logging .DEBUG
162
160
for filename in filenames :
163
161
if debug_active :
164
- print (f' Load { filename } to copy' , end = "\r " )
162
+ print (f" Load { filename } to copy" , end = "\r " )
165
163
with Dataset (filename ) as h_in :
166
164
stop = i + len (h_in .dimensions ["obs" ])
167
165
sl = slice (i , stop )
@@ -222,7 +220,7 @@ def network(regex, filename_out, window=1, intern=False):
222
220
debug_active = logger .getEffectiveLevel () == logging .DEBUG
223
221
for i , filename in enumerate (filenames ):
224
222
if debug_active :
225
- print (f' { filename } compared to { window } next' , end = "\r " )
223
+ print (f" { filename } compared to { window } next" , end = "\r " )
226
224
xi , yi = load_contour (filename , * coord )
227
225
nb_obs .append (xi .shape [0 ])
228
226
for j in range (i + 1 , min (window + i + 1 , nb_in )):
0 commit comments