changeset 5436:a65b0891e8fd marking-single-beam

Fixed SQL errors in ISR job.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 13 Jul 2021 11:27:17 +0200
parents 351d38269e4e
children 4d1b1df61f71
files pkg/imports/isr.go
diffstat 1 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/imports/isr.go	Tue Jul 13 10:59:22 2021 +0200
+++ b/pkg/imports/isr.go	Tue Jul 13 11:27:17 2021 +0200
@@ -65,7 +65,7 @@
 WHERE sounding_result_id = $1`
 
 	fetchMarkingPointsSQL = `
-SELECT ST_AsBinary(ST_Transform(points, 4326))
+SELECT ST_AsBinary(points::geometry(MULTIPOINTZ))
 FROM waterway.sounding_results_marking_points
 WHERE sounding_result_id = $1`
 
@@ -165,7 +165,8 @@
 		start := time.Now()
 		feedback.Info("Processing bottleneck '%s' ...", bns[i].bn)
 		err := isr.processBottleneck(
-			ctx, conn, isrs,
+			ctx, conn, feedback,
+			isrs,
 			heights,
 			&bns[i],
 		)
@@ -224,6 +225,7 @@
 func (isr *IsoRefresh) processBottleneck(
 	ctx context.Context,
 	conn *sql.Conn,
+	feedback Feedback,
 	isrs *isrStmts,
 	heights mesh.ClassBreaks,
 	bn *bottleneckSoundingResults,
@@ -243,10 +245,13 @@
 		insertMarkingPoints = tx.StmtContext(ctx, isrs.insertMarkingPoints)
 	)
 
+	var markings, beams int
+
 	// For all sounding results in bottleneck.
 	for _, sr := range bn.srs {
 		switch sr.surveyType {
 		case models.SurveyTypeMarking:
+			markings++
 
 			// Read all points back in.
 
@@ -297,6 +302,8 @@
 			}
 
 		case models.SurveyTypeMultiBeam, models.SurveyTypeSingleBeam:
+			beams++
+
 			tree, err := mesh.FetchMeshDirectly(ctx, tx, sr.id)
 			if err != nil {
 				return err
@@ -304,7 +311,7 @@
 			hs := heights.ExtrapolateClassBreaks(tree.Min().Z, tree.Max().Z).Dedup()
 
 			// Delete the old iso areas.
-			if _, err := deleteAreas.ExecContext(ctx, sr); err != nil {
+			if _, err := deleteAreas.ExecContext(ctx, sr.id); err != nil {
 				return err
 			}
 
@@ -326,7 +333,7 @@
 				}
 				if _, err := insertAreas.ExecContext(
 					ctx,
-					sr, hs[i], tree.EPSG(),
+					sr.id, hs[i], tree.EPSG(),
 					a.AsWKB(),
 					contourTolerance,
 				); err != nil {
@@ -337,6 +344,7 @@
 			log.Printf("error: unknown survey type '%s'\n", sr.surveyType)
 		}
 	}
+	feedback.Info("Scan types: Single/Multi: %d Marking: %d", beams, markings)
 
 	return tx.Commit()
 }