@@ -92,29 +92,27 @@ def get_group_array(results, nb_obs):
9292 gr = empty (nb_obs .sum (), dtype = "u4" )
9393 gr [:] = NOGROUP
9494
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 ])]
9999 # 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
106104 # 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 ]]
111109 # 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 ]
113111 if m .any ():
114112 # 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_
118116 return gr
119117
120118
@@ -161,7 +159,7 @@ def save(filenames, gr, out):
161159 debug_active = logger .getEffectiveLevel () == logging .DEBUG
162160 for filename in filenames :
163161 if debug_active :
164- print (f' Load { filename } to copy' , end = "\r " )
162+ print (f" Load { filename } to copy" , end = "\r " )
165163 with Dataset (filename ) as h_in :
166164 stop = i + len (h_in .dimensions ["obs" ])
167165 sl = slice (i , stop )
@@ -222,7 +220,7 @@ def network(regex, filename_out, window=1, intern=False):
222220 debug_active = logger .getEffectiveLevel () == logging .DEBUG
223221 for i , filename in enumerate (filenames ):
224222 if debug_active :
225- print (f' { filename } compared to { window } next' , end = "\r " )
223+ print (f" { filename } compared to { window } next" , end = "\r " )
226224 xi , yi = load_contour (filename , * coord )
227225 nb_obs .append (xi .shape [0 ])
228226 for j in range (i + 1 , min (window + i + 1 , nb_in )):
0 commit comments