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