Mercurial > gemma
changeset 3370:ac630f0f5dbf
Waterlevel classification: Handle case of same values in adjoint meassure dates correctly.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 22 May 2019 12:33:59 +0200 |
parents | 33c398df5cb5 |
children | f76a694f7f7b |
files | pkg/controllers/bottlenecks.go |
diffstat | 1 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/controllers/bottlenecks.go Wed May 22 11:56:52 2019 +0200 +++ b/pkg/controllers/bottlenecks.go Wed May 22 12:33:59 2019 +0200 @@ -157,9 +157,22 @@ continue } + lo, hi := maxTime(p1.when, from), minTime(p2.when, to) + + m1, m2 := access(p1), access(p2) + if m1 == m2 { // The whole interval is in only one class. + for j := 0; j < len(classes)-1; j++ { + if classes[j] <= m1 && m1 <= classes[j+1] { + result[j] += hi.Sub(lo) + break + } + } + continue + } + f := common.InterpolateTime( - p1.when, access(p1), - p2.when, access(p2), + p1.when, m1, + p2.when, m2, ) for j, c := range classes { @@ -169,8 +182,6 @@ for j := 0; j < len(values)-1; j++ { start, end := orderTime(values[j], values[j+1]) - lo, hi := maxTime(p1.when, from), minTime(p2.when, to) - if start.After(hi) || end.Before(lo) { continue }