diff --git a/src/Model/D90AdisTS/D90AdisTS.py b/src/Model/D90AdisTS/D90AdisTS.py index f901bf01..80ac1267 100644 --- a/src/Model/D90AdisTS/D90AdisTS.py +++ b/src/Model/D90AdisTS/D90AdisTS.py @@ -305,7 +305,7 @@ class D90AdisTS(SQLSubModel): for new_reach, part_lower, part_upper in parts: clipped_lower = max(lower, part_lower) clipped_upper = min(upper, part_upper) - if clipped_lower > clipped_upper: + if clipped_lower >= clipped_upper: continue start_rk = clipped_upper if reverse else clipped_lower diff --git a/src/Model/DIFAdisTS/DIFAdisTS.py b/src/Model/DIFAdisTS/DIFAdisTS.py index 97c05064..f907a40e 100644 --- a/src/Model/DIFAdisTS/DIFAdisTS.py +++ b/src/Model/DIFAdisTS/DIFAdisTS.py @@ -359,7 +359,7 @@ class DIFAdisTS(SQLSubModel): for new_reach, part_lower, part_upper in parts: clipped_lower = max(lower, part_lower) clipped_upper = min(upper, part_upper) - if clipped_lower > clipped_upper: + if clipped_lower >= clipped_upper: continue start_rk = clipped_upper if reverse else clipped_lower diff --git a/src/Model/Friction/FrictionList.py b/src/Model/Friction/FrictionList.py index 963c3316..df4573b8 100644 --- a/src/Model/Friction/FrictionList.py +++ b/src/Model/Friction/FrictionList.py @@ -109,16 +109,22 @@ class FrictionList(PamhyrModelList): ((999 ** 100), -(999 ** 100)) ) - frictions = list( - filter( - lambda f: ((rk_min <= f.begin_rk <= rk_max) or - (rk_min <= f.end_rk <= rk_max)), - self._lst)) + for friction in self.lst: + lower, upper = sorted((friction.begin_rk, friction.end_rk)) + clipped_lower = max(lower, rk_min) + clipped_upper = min(upper, rk_max) + if clipped_lower >= clipped_upper: + continue - for ind, friction in enumerate(frictions): n = friction.cloned_for(reach) + if friction.begin_rk > friction.end_rk: + n.begin_rk = clipped_upper + n.end_rk = clipped_lower + else: + n.begin_rk = clipped_lower + n.end_rk = clipped_upper - new._lst.insert(ind, n) + new._lst.append(n) new._status.modified() return new diff --git a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py index 65a72e90..903fe877 100644 --- a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py +++ b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py @@ -391,7 +391,7 @@ class InitialConditionsAdisTS(SQLSubModel): for new_reach, part_lower, part_upper in parts: clipped_lower = max(lower, part_lower) clipped_upper = min(upper, part_upper) - if clipped_lower > clipped_upper: + if clipped_lower >= clipped_upper: continue start_rk = clipped_upper if reverse else clipped_lower diff --git a/src/Model/InitialConditionsTemperature/InitialConditionsTemperature.py b/src/Model/InitialConditionsTemperature/InitialConditionsTemperature.py index 33e2c99e..986e603e 100644 --- a/src/Model/InitialConditionsTemperature/InitialConditionsTemperature.py +++ b/src/Model/InitialConditionsTemperature/InitialConditionsTemperature.py @@ -254,7 +254,7 @@ class InitialConditionsTemperature(SQLSubModel): for new_reach, part_lower, part_upper in parts: clipped_lower = max(lower, part_lower) clipped_upper = min(upper, part_upper) - if clipped_lower > clipped_upper: + if clipped_lower >= clipped_upper: continue start_rk = clipped_upper if reverse else clipped_lower diff --git a/src/Model/LateralContribution/LateralContributionList.py b/src/Model/LateralContribution/LateralContributionList.py index c6aa7162..803d2c27 100644 --- a/src/Model/LateralContribution/LateralContributionList.py +++ b/src/Model/LateralContribution/LateralContributionList.py @@ -117,7 +117,7 @@ class LateralContributionList(PamhyrModelListWithTab): for new_reach, part_lower, part_upper, sections in parts: clipped_lower = max(lower, part_lower) clipped_upper = min(upper, part_upper) - if clipped_lower > clipped_upper: + if clipped_lower >= clipped_upper: continue begin_index = ( diff --git a/src/Model/LateralContributionsAdisTS/LateralContributionsAdisTSList.py b/src/Model/LateralContributionsAdisTS/LateralContributionsAdisTSList.py index ad9d2783..05bc07f1 100644 --- a/src/Model/LateralContributionsAdisTS/LateralContributionsAdisTSList.py +++ b/src/Model/LateralContributionsAdisTS/LateralContributionsAdisTSList.py @@ -95,7 +95,7 @@ class LateralContributionsAdisTSList(PamhyrModelList): for new_reach, part_lower, part_upper in parts: clipped_lower = max(lower, part_lower) clipped_upper = min(upper, part_upper) - if clipped_lower > clipped_upper: + if clipped_lower >= clipped_upper: continue begin_rk = clipped_upper if reverse else clipped_lower diff --git a/src/Model/WeatherParameters/WeatherParametersList.py b/src/Model/WeatherParameters/WeatherParametersList.py index 399308ff..8669e34f 100644 --- a/src/Model/WeatherParameters/WeatherParametersList.py +++ b/src/Model/WeatherParameters/WeatherParametersList.py @@ -204,7 +204,7 @@ class WeatherParametersList(PamhyrModelList): for new_reach, part_lower, part_upper, sections in parts: clipped_lower = max(lower, part_lower) clipped_upper = min(upper, part_upper) - if clipped_lower > clipped_upper: + if clipped_lower >= clipped_upper: continue begin_index = clipped_upper if reverse else clipped_lower