Mercurial > gemma
changeset 3201:d5294f1a4ad4
First fix for waterlevel classifications.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 08 May 2019 16:00:24 +0200 |
parents | f7d7fdc58cad |
children | 7c59955fbcca |
files | pkg/controllers/bottlenecks.go |
diffstat | 1 files changed, 24 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/controllers/bottlenecks.go Wed May 08 15:58:37 2019 +0200 +++ b/pkg/controllers/bottlenecks.go Wed May 08 16:00:24 2019 +0200 @@ -139,6 +139,7 @@ if len(measurements) == 0 || to.Before(measurements[0].when) || from.After(measurements[len(measurements)-1].when) { + log.Println("empty") return result } @@ -162,18 +163,21 @@ var start, end time.Time switch { - case !p2.when.After(p2.when): + case !p2.when.After(p1.when): // Segment invalid + // log.Println("invalid") continue pairs case p1.when.After(to) || p2.when.Before(from): // Segment complete outside. + // log.Println("complete outside") continue pairs case p1.when.After(from) && p2.when.Before(to): // (from-to) is complete inside segment. // invalid += p1.when.Sub(from) // invalid += to.Sub(p2.when) + // log.Println("complete inside") v := vbt(p1, p2) f, _ := v(from) t, _ := v(to) @@ -183,6 +187,7 @@ case p1.when.After(from): // from is inside segment // invalid += p1.when.Sub(from) + // log.Println("from is inside") f, _ := vbt(p1, p2)(from) classify(common.InterpolateTimeByValue( from, f, @@ -193,6 +198,7 @@ case p2.when.Before(to): // to is inside segment // invalid += to.Sub(p2.when) + // log.Println("to is inside") t, _ := vbt(p1, p2)(to) classify(common.InterpolateTimeByValue( p1.when, access(p1), @@ -202,6 +208,7 @@ case !p1.when.Before(from) && !to.After(p2.when): // Segment complete inside. + // log.Println("is complete inside") classify(common.InterpolateTimeByValue( p1.when, access(p1), p2.when, access(p2), @@ -551,8 +558,9 @@ return } } else { - from = time.Now().AddDate(-1, 0, 0).UTC() + from = time.Now().AddDate(-1, 0, 0) } + from = from.UTC() if t := req.FormValue("to"); t != "" { var err error @@ -563,8 +571,9 @@ return } } else { - to = from.AddDate(1, 0, 0).UTC() + to = from.AddDate(1, 0, 0) } + to = to.UTC() if to.Before(from) { to, from = from, to @@ -630,14 +639,25 @@ return } + // log.Println(len(ms)) + //for i := range ms { + // log.Println(ms[i].when, ms[i].depth) + //} + interval := intervals[mode](from, to) + //log.Printf("first: %v\n", ms[0].when) + //log.Printf("last: %v\n", ms[len(ms)-1].when) + for pfrom, pto, label := interval(); label != ""; pfrom, pto, label = interval() { + //log.Printf("pfrom: %v\n", pfrom) + // Find good starting point idx := sort.Search(len(ms), func(i int) bool { - return !ms[i].when.After(pfrom) + return !ms[i].when.Before(pfrom) }) + //log.Printf("%d\n", idx) if idx > 0 { idx-- }