mirror of https://gitlab.com/pamhyr/pamhyr2
Split reach: handling the case where the reach is split on a data used to define a data (an initial condition for example)
parent
3d467c9620
commit
dd31ffc5a2
|
|
@ -305,7 +305,7 @@ class D90AdisTS(SQLSubModel):
|
||||||
for new_reach, part_lower, part_upper in parts:
|
for new_reach, part_lower, part_upper in parts:
|
||||||
clipped_lower = max(lower, part_lower)
|
clipped_lower = max(lower, part_lower)
|
||||||
clipped_upper = min(upper, part_upper)
|
clipped_upper = min(upper, part_upper)
|
||||||
if clipped_lower > clipped_upper:
|
if clipped_lower >= clipped_upper:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
start_rk = clipped_upper if reverse else clipped_lower
|
start_rk = clipped_upper if reverse else clipped_lower
|
||||||
|
|
|
||||||
|
|
@ -359,7 +359,7 @@ class DIFAdisTS(SQLSubModel):
|
||||||
for new_reach, part_lower, part_upper in parts:
|
for new_reach, part_lower, part_upper in parts:
|
||||||
clipped_lower = max(lower, part_lower)
|
clipped_lower = max(lower, part_lower)
|
||||||
clipped_upper = min(upper, part_upper)
|
clipped_upper = min(upper, part_upper)
|
||||||
if clipped_lower > clipped_upper:
|
if clipped_lower >= clipped_upper:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
start_rk = clipped_upper if reverse else clipped_lower
|
start_rk = clipped_upper if reverse else clipped_lower
|
||||||
|
|
|
||||||
|
|
@ -109,16 +109,22 @@ class FrictionList(PamhyrModelList):
|
||||||
((999 ** 100), -(999 ** 100))
|
((999 ** 100), -(999 ** 100))
|
||||||
)
|
)
|
||||||
|
|
||||||
frictions = list(
|
for friction in self.lst:
|
||||||
filter(
|
lower, upper = sorted((friction.begin_rk, friction.end_rk))
|
||||||
lambda f: ((rk_min <= f.begin_rk <= rk_max) or
|
clipped_lower = max(lower, rk_min)
|
||||||
(rk_min <= f.end_rk <= rk_max)),
|
clipped_upper = min(upper, rk_max)
|
||||||
self._lst))
|
if clipped_lower >= clipped_upper:
|
||||||
|
continue
|
||||||
|
|
||||||
for ind, friction in enumerate(frictions):
|
|
||||||
n = friction.cloned_for(reach)
|
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()
|
new._status.modified()
|
||||||
|
|
||||||
return new
|
return new
|
||||||
|
|
|
||||||
|
|
@ -391,7 +391,7 @@ class InitialConditionsAdisTS(SQLSubModel):
|
||||||
for new_reach, part_lower, part_upper in parts:
|
for new_reach, part_lower, part_upper in parts:
|
||||||
clipped_lower = max(lower, part_lower)
|
clipped_lower = max(lower, part_lower)
|
||||||
clipped_upper = min(upper, part_upper)
|
clipped_upper = min(upper, part_upper)
|
||||||
if clipped_lower > clipped_upper:
|
if clipped_lower >= clipped_upper:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
start_rk = clipped_upper if reverse else clipped_lower
|
start_rk = clipped_upper if reverse else clipped_lower
|
||||||
|
|
|
||||||
|
|
@ -254,7 +254,7 @@ class InitialConditionsTemperature(SQLSubModel):
|
||||||
for new_reach, part_lower, part_upper in parts:
|
for new_reach, part_lower, part_upper in parts:
|
||||||
clipped_lower = max(lower, part_lower)
|
clipped_lower = max(lower, part_lower)
|
||||||
clipped_upper = min(upper, part_upper)
|
clipped_upper = min(upper, part_upper)
|
||||||
if clipped_lower > clipped_upper:
|
if clipped_lower >= clipped_upper:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
start_rk = clipped_upper if reverse else clipped_lower
|
start_rk = clipped_upper if reverse else clipped_lower
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ class LateralContributionList(PamhyrModelListWithTab):
|
||||||
for new_reach, part_lower, part_upper, sections in parts:
|
for new_reach, part_lower, part_upper, sections in parts:
|
||||||
clipped_lower = max(lower, part_lower)
|
clipped_lower = max(lower, part_lower)
|
||||||
clipped_upper = min(upper, part_upper)
|
clipped_upper = min(upper, part_upper)
|
||||||
if clipped_lower > clipped_upper:
|
if clipped_lower >= clipped_upper:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
begin_index = (
|
begin_index = (
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ class LateralContributionsAdisTSList(PamhyrModelList):
|
||||||
for new_reach, part_lower, part_upper in parts:
|
for new_reach, part_lower, part_upper in parts:
|
||||||
clipped_lower = max(lower, part_lower)
|
clipped_lower = max(lower, part_lower)
|
||||||
clipped_upper = min(upper, part_upper)
|
clipped_upper = min(upper, part_upper)
|
||||||
if clipped_lower > clipped_upper:
|
if clipped_lower >= clipped_upper:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
begin_rk = clipped_upper if reverse else clipped_lower
|
begin_rk = clipped_upper if reverse else clipped_lower
|
||||||
|
|
|
||||||
|
|
@ -204,7 +204,7 @@ class WeatherParametersList(PamhyrModelList):
|
||||||
for new_reach, part_lower, part_upper, sections in parts:
|
for new_reach, part_lower, part_upper, sections in parts:
|
||||||
clipped_lower = max(lower, part_lower)
|
clipped_lower = max(lower, part_lower)
|
||||||
clipped_upper = min(upper, part_upper)
|
clipped_upper = min(upper, part_upper)
|
||||||
if clipped_lower > clipped_upper:
|
if clipped_lower >= clipped_upper:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
begin_index = clipped_upper if reverse else clipped_lower
|
begin_index = clipped_upper if reverse else clipped_lower
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue