diff pkg/imports/sr.go @ 3659:66f2cb789905 single-beam

Merged default into single-beam branch.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 14 Jun 2019 12:02:58 +0200
parents 1c3df921361d 2a079d0a71c1
children 58508f50d192
line wrap: on
line diff
--- a/pkg/imports/sr.go	Fri Jun 14 11:59:14 2019 +0200
+++ b/pkg/imports/sr.go	Fri Jun 14 12:02:58 2019 +0200
@@ -114,11 +114,13 @@
 	insertHullSQL = `
 INSERT INTO waterway.sounding_results (
   bottleneck_id,
+  bottleneck_validity,
   date_info,
   depth_reference,
   area
 ) SELECT
-  (SELECT id from waterway.bottlenecks where objnam = $1),
+  bottleneck_id,
+  validity,
   $2::date,
   $3,
   (SELECT
@@ -127,6 +129,8 @@
     ELSE
       ST_MakeValid(ST_Transform(ST_GeomFromWKB($5, $6::integer), 4326))::geography
     END)
+FROM waterway.bottlenecks
+WHERE objnam = $1 AND validity @> CAST($2 AS timestamptz)
 RETURNING
   id,
   ST_X(ST_Centroid(area::geometry)),
@@ -188,7 +192,9 @@
   JOIN waterway.bottlenecks bns
     ON grwl.location = bns.gauge_location
       AND grwl.validity = bns.gauge_validity
-WHERE bns.objnam = $1 AND grwl.depth_reference like 'LDC%'
+WHERE bns.objnam = $1
+  AND bns.validity @> CAST($2 AS timestamptz)
+  AND grwl.depth_reference like 'LDC%'
 `
 
 	reprojectPointsSingleBeamSQL = `
@@ -242,7 +248,11 @@
 		feedback.Info("Found ZPG as reference system -> translating Z values to LDC")
 		var ldc float64
 		var depthReference string
-		err := conn.QueryRowContext(ctx, selectGaugeLDCSQL, m.Bottleneck).Scan(
+		err := conn.QueryRowContext(ctx,
+			selectGaugeLDCSQL,
+			m.Bottleneck,
+			m.Date.Time,
+		).Scan(
 			&ldc,
 			&depthReference,
 		)
@@ -643,7 +653,11 @@
 	)
 	xyz, boundary = nil, nil // not need from now on.
 	feedback.Info("Calculating hull took %s.", time.Since(start))
-	if err != nil {
+	switch {
+	case err == sql.ErrNoRows:
+		return nil, fmt.Errorf(
+			"No bottleneck matching given name and time available")
+	case err != nil:
 		return nil, err
 	}
 	feedback.Info("Best suited UTM EPSG: %d", epsg)