Mercurial > gemma
diff pkg/imports/sr.go @ 3645:02951a62e8c6
'Historicise' bottlenecks on import
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 12 Jun 2019 17:11:15 +0200 |
parents | e1021fd60190 |
children | 2a079d0a71c1 |
line wrap: on
line diff
--- a/pkg/imports/sr.go Wed Jun 12 17:10:49 2019 +0200 +++ b/pkg/imports/sr.go Wed Jun 12 17:11:15 2019 +0200 @@ -32,6 +32,7 @@ "strings" "time" + "github.com/jackc/pgx" shp "github.com/jonas-p/go-shp" "gemma.intevation.de/gemma/pkg/common" @@ -113,7 +114,8 @@ depth_reference, area ) SELECT - (SELECT id from waterway.bottlenecks where objnam = $1), + (SELECT id FROM waterway.bottlenecks WHERE objnam = $1 + AND validity @> CAST($2 AS timestamptz)), $2::date, $3, (SELECT @@ -172,7 +174,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 = ` @@ -226,7 +230,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, ) @@ -412,6 +420,14 @@ xyz, boundary = nil, nil // not need from now on. feedback.Info("Calculating hull took %s.", time.Since(start)) if err != nil { + if e, isPgErr := err.(pgx.PgError); isPgErr && + e.Code == notNullViolation && + e.SchemaName == "waterway" && + e.TableName == "sounding_results" && + e.ColumnName == "bottleneck_id" { + return nil, fmt.Errorf( + "No bottleneck matching given name and time available") + } return nil, err } feedback.Info("Best suited UTM EPSG: %d", epsg)