diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py index 74f897da..a876f4a7 100644 --- a/src/Solver/Mage.py +++ b/src/Solver/Mage.py @@ -1083,7 +1083,7 @@ class Mage8(Mage): newline() reachs = [] - iprofiles = {} + iprofiles = [] profile_len = [] reach_offset = {} @@ -1099,14 +1099,14 @@ class Mage8(Mage): i2 = data[2*i+1] - 1 # Add profile id correspondance to reach - key = (i1, i2) - iprofiles[key] = r + for key in range(i1, i2 + 1): + iprofiles.append(i) # Profile ID offset reach_offset[r] = i1 profile_len.append(i2-i1+1) - logger.debug(f"read_bin: iprofiles = {iprofiles}") + logger.debug(f"read_bin: iprofiles = {len(iprofiles)}") endline() @@ -1124,18 +1124,6 @@ class Mage8(Mage): # Data newline() - @timer - def ip_to_r(i): return iprofiles[ - next( - filter( - lambda k: k[0] <= i <= k[1], - iprofiles - ) - ) - ] - @timer - def ip_to_ri(r, i): return i - reach_offset[r] - # check results and geometry consistency for i, r in enumerate(reachs): lp = len(r.profiles) @@ -1165,9 +1153,9 @@ class Mage8(Mage): if key in ["Z", "Q"]: for i, d in enumerate(data): # Get reach corresponding to profile ID - reach = ip_to_r(i) + reach = reachs[iprofiles[i]] # Get profile id in reach - ri = ip_to_ri(reach, i) + ri = i - reach_offset[reach] # Set data for profile RI reach.set(ri, timestamp, key, d)