comparison pkg/imports/gm.go @ 3847:d7b9d5c0ebad

gm import: Ignore (and warn for) water levels of -99999. This value is used by some gauges to signal errors and should never be valid.
author Sascha Wilde <wilde@intevation.de>
date Mon, 08 Jul 2019 10:54:51 +0200
parents 9759355d7b90
children 0b65915757c8 6c5c15b2fb64
comparison
equal deleted inserted replaced
3824:6c3e5dd2b596 3847:d7b9d5c0ebad
381 referenceCode = "ZPG" 381 referenceCode = "ZPG"
382 } else { 382 } else {
383 referenceCode = string(*wrm.Reference_code) 383 referenceCode = string(*wrm.Reference_code)
384 } 384 }
385 385
386 badValue := 0
386 newM, newP := 0, 0 387 newM, newP := 0, 0
387 for _, measure := range wrm.Measure { 388 for _, measure := range wrm.Measure {
388 var unit string 389 var unit string
389 if *measure.Measure_code != nts.Measure_code_enumWAL { 390 if *measure.Measure_code != nts.Measure_code_enumWAL {
390 feedback.Warn("Ignored message with measure_code %s", 391 feedback.Warn("Ignored message with measure_code %s",
402 return nil, err 403 return nil, err
403 } 404 }
404 convert(measure.Value) 405 convert(measure.Value)
405 convert(measure.Value_min) 406 convert(measure.Value_min)
406 convert(measure.Value_max) 407 convert(measure.Value_max)
408
409 // -99999 is used by some gauges to signal an error
410 if *measure.Value == -99999 {
411 badValue++
412 continue
413 }
407 414
408 var dummy int 415 var dummy int
409 if measure.Predicted { 416 if measure.Predicted {
410 confInterval := pgtype.Numrange{ 417 confInterval := pgtype.Numrange{
411 Lower: pgtype.Numeric{Status: pgtype.Null}, 418 Lower: pgtype.Numeric{Status: pgtype.Null},
484 default: 491 default:
485 newM++ 492 newM++
486 } 493 }
487 } 494 }
488 } 495 }
496 if badValue > 0 {
497 feedback.Warn("Ignored %d measurements with value -99999",
498 badValue)
499 }
489 feedback.Info("Inserted %d measurements for %s", 500 feedback.Info("Inserted %d measurements for %s",
490 newM, curr) 501 newM, curr)
491 feedback.Info("Inserted %d predictions for %s", 502 feedback.Info("Inserted %d predictions for %s",
492 newP, curr) 503 newP, curr)
493 gids = append(gids, curr) 504 gids = append(gids, curr)