Mercurial > gemma
comparison pkg/controllers/gauges.go @ 3099:f516ac26f4db direct-match-nash-sutcliffe
"Sharp" match for predicted and measured values in nash sutcliffe.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 24 Apr 2019 22:26:16 +0200 |
parents | e6ba32b060df |
children | 41ed69dbf9bb |
comparison
equal
deleted
inserted
replaced
3098:8f2ac24b0cb3 | 3099:f516ac26f4db |
---|---|
489 when: measureDate, | 489 when: measureDate, |
490 } | 490 } |
491 } | 491 } |
492 | 492 |
493 if predicted { | 493 if predicted { |
494 // current prediction same as last two? | 494 current.predicted = append( |
495 if l := len(current.predicted); l > 1 && current.predicted[l-1].Value == value && current.predicted[l-2].Value == value { | 495 current.predicted, |
496 // only update last time. | 496 common.TimedValue{When: issueDate, Value: value}, |
497 current.predicted[l-1].When = issueDate | 497 ) |
498 } else { | 498 /* |
499 current.predicted = append( | 499 // current prediction same as last two? |
500 current.predicted, | 500 if l := len(current.predicted); l > 1 && current.predicted[l-1].Value == value && current.predicted[l-2].Value == value { |
501 common.TimedValue{When: issueDate, Value: value}, | 501 // only update last time. |
502 ) | 502 current.predicted[l-1].When = issueDate |
503 } | 503 } else { |
504 current.predicted = append( | |
505 current.predicted, | |
506 common.TimedValue{When: issueDate, Value: value}, | |
507 ) | |
508 } | |
509 */ | |
504 } else { | 510 } else { |
505 current.observed = value | 511 current.observed = value |
506 } | 512 } |
507 } | 513 } |
508 | 514 |
580 cs[i].Hours = (i + 1) * 24 | 586 cs[i].Hours = (i + 1) * 24 |
581 delta := -time.Duration(cs[i].Hours) * time.Hour | 587 delta := -time.Duration(cs[i].Hours) * time.Hour |
582 | 588 |
583 for j := range values { | 589 for j := range values { |
584 when := values[j].when.Add(delta) | 590 when := values[j].when.Add(delta) |
585 if p, ok := values[j].predicted.Interpolate(when); ok { | 591 if p, ok := values[j].predicted.Find(when); ok { |
586 predicted = append(predicted, p) | 592 predicted = append(predicted, p) |
587 observed = append(observed, values[j].observed) | 593 observed = append(observed, values[j].observed) |
588 } | 594 } |
589 } | 595 } |
590 | 596 |