changeset 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 6c3e5dd2b596
children 1f8a89954bc3
files pkg/imports/gm.go
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/imports/gm.go	Fri Jul 05 14:00:23 2019 +0200
+++ b/pkg/imports/gm.go	Mon Jul 08 10:54:51 2019 +0200
@@ -383,6 +383,7 @@
 				referenceCode = string(*wrm.Reference_code)
 			}
 
+			badValue := 0
 			newM, newP := 0, 0
 			for _, measure := range wrm.Measure {
 				var unit string
@@ -405,6 +406,12 @@
 				convert(measure.Value_min)
 				convert(measure.Value_max)
 
+				// -99999 is used by some gauges to signal an error
+				if *measure.Value == -99999 {
+					badValue++
+					continue
+				}
+
 				var dummy int
 				if measure.Predicted {
 					confInterval := pgtype.Numrange{
@@ -486,6 +493,10 @@
 					}
 				}
 			}
+			if badValue > 0 {
+				feedback.Warn("Ignored %d measurements with value -99999",
+					badValue)
+			}
 			feedback.Info("Inserted %d measurements for %s",
 				newM, curr)
 			feedback.Info("Inserted %d predictions for %s",