changeset 3412:5e284f39a081

fairway availibility: Reduce defaults to 230 and 250 as class breaks.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 23 May 2019 15:25:24 +0200
parents c0f5f62343c9
children 44574af7e3d3
files pkg/controllers/bottlenecks.go
diffstat 1 files changed, 9 insertions(+), 73 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/bottlenecks.go	Thu May 23 14:47:33 2019 +0200
+++ b/pkg/controllers/bottlenecks.go	Thu May 23 15:25:24 2019 +0200
@@ -117,9 +117,8 @@
 
 // afdRefs are the typical available fairway depth reference values.
 var afdRefs = []referenceValue{
-	{0, 200},
-	{1, 230},
-	{2, 250},
+	{0, 230},
+	{1, 250},
 }
 
 func (measurement *availMeasurement) getDepth() float64 {
@@ -343,60 +342,6 @@
 	return []referenceValue{{0, value}}, nil
 }
 
-func loadLNWLReferenceValues(
-	ctx context.Context,
-	conn *sql.Conn,
-	bottleneck string,
-) ([]referenceValue, error) {
-	rows, err := conn.QueryContext(ctx, selectGaugeLevelsSQL, bottleneck)
-	if err != nil {
-		return nil, err
-	}
-	defer rows.Close()
-
-	var levels []referenceValue
-
-loop:
-	for rows.Next() {
-		var what string
-		var value int
-		if err := rows.Scan(&what, &value); err != nil {
-			return nil, err
-		}
-		var level int
-		switch {
-		case strings.HasPrefix(what, "LDC"):
-			level = 0
-		case strings.HasPrefix(what, "MW"):
-			level = 1
-		case strings.HasPrefix(what, "HDC"):
-			level = 2
-		default:
-			return nil, fmt.Errorf("Unexpected reference level type '%s'", what)
-		}
-		for i := range levels {
-			if levels[i].level == level {
-				levels[i].value = float64(value)
-				continue loop
-			}
-		}
-		levels = append(levels, referenceValue{
-			level: level,
-			value: float64(value),
-		})
-	}
-
-	if err := rows.Err(); err != nil {
-		return nil, err
-	}
-
-	sort.Slice(levels, func(i, j int) bool {
-		return levels[i].level < levels[j].level
-	})
-
-	return levels, nil
-}
-
 func breaksToReferenceValue(breaks string) []referenceValue {
 	parts := strings.Split(breaks, ",")
 	values := map[float64]struct{}{}
@@ -478,12 +423,12 @@
 
 	ctx := req.Context()
 
-	var lnwlRefs []referenceValue
-	if lnwlRefs, err = loadLNWLReferenceValues(ctx, conn, bn); err != nil {
+	var ldcRefs []referenceValue
+	if ldcRefs, err = loadLDCReferenceValue(ctx, conn, bn); err != nil {
 		return
 	}
 
-	if len(lnwlRefs) == 0 {
+	if len(ldcRefs) == 0 {
 		err = JSONError{
 			Code:    http.StatusNotFound,
 			Message: "No gauge reference values found for bottleneck",
@@ -506,7 +451,7 @@
 
 	lnwl := ms.classify(
 		from, to,
-		lnwlRefs,
+		ldcRefs,
 		(*availMeasurement).getValue,
 	)
 
@@ -537,19 +482,10 @@
 
 	out := output{}
 
-	for i := range lnwlRefs {
-		var level string
-		switch lnwlRefs[i].level {
-		case 0:
-			level = "LDC"
-		case 1:
-			level = "MW"
-		case 2:
-			level = "HDC"
-		}
+	for i := range ldcRefs {
 		out.LNWL = append(out.LNWL, lnwlOutput{
-			Level:   level,
-			Value:   lnwlRefs[i].value,
+			Level:   "LDC",
+			Value:   ldcRefs[i].value,
 			Percent: lnwlPercents[i],
 		})
 	}