changeset 4578:c657dec6b0fa iso-areas

Removed old contours from backend and database.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 08 Oct 2019 12:10:55 +0200
parents 82029885c11b
children 4c56682f83f7
files pkg/controllers/diff.go pkg/imports/isr.go pkg/imports/sr.go schema/default_sysconfig.sql schema/gemma.sql schema/geoserver_views.sql schema/updates/1204/02.delete-contours.sql
diffstat 7 files changed, 10 insertions(+), 176 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/diff.go	Tue Oct 08 10:37:02 2019 +0200
+++ b/pkg/controllers/diff.go	Tue Oct 08 12:10:55 2019 +0200
@@ -63,29 +63,6 @@
 WHERE m.date_info = $2::date AND s.date_info = $3::date
 RETURNING id
 `
-	insertDiffContourSQL = `
-INSERT INTO caching.sounding_differences_contour_lines (
-  sounding_differences_id,
-  height,
-  lines
-)
-SELECT
-  $5,
-  $4,
-  ST_Transform(
-    ST_Multi(
-      ST_CollectionExtract(
-        ST_SimplifyPreserveTopology(
-          ST_Multi(ST_Collectionextract(
-            ST_MakeValid(ST_GeomFromWKB($1, $2::integer)), 2)),
-          $3
-        ),
-        2
-      )
-    ),
-    4326
-  )
-`
 	insertDiffIsoAreasQL = `
 INSERT INTO caching.sounding_differences_iso_areas (
   sounding_differences_id,
@@ -302,12 +279,6 @@
 
 	log.Printf("info: num heights: %d\n", len(heights))
 
-	var stmt *sql.Stmt
-	if stmt, err = tx.PrepareContext(ctx, insertDiffContourSQL); err != nil {
-		return
-	}
-	defer stmt.Close()
-
 	var isoStmt *sql.Stmt
 	if isoStmt, err = tx.PrepareContext(ctx, insertDiffIsoAreasQL); err != nil {
 		return
@@ -326,19 +297,6 @@
 
 	heights = common.DedupFloat64s(heights)
 
-	octree.DoContours(tree, heights, func(res *octree.ContourResult) {
-		if err == nil && len(res.Lines) > 0 {
-			_, err = stmt.ExecContext(
-				ctx,
-				res.Lines.AsWKB2D(),
-				minuendTree.EPSG,
-				contourTolerance,
-				res.Height,
-				id,
-			)
-		}
-	})
-
 	areas := tree.TraceAreas(heights, isoCellSize)
 
 	for i, a := range areas {
--- a/pkg/imports/isr.go	Tue Oct 08 10:37:02 2019 +0200
+++ b/pkg/imports/isr.go	Tue Oct 08 12:10:55 2019 +0200
@@ -53,10 +53,6 @@
 FROM waterway.sounding_results
 ORDER BY bottleneck_id
 `
-	deleteContourLinesSQL = `
-DELETE FROM waterway.sounding_results_contour_lines
-WHERE sounding_result_id = $1
-`
 	deleteIsoAreasSQL = `
 DELETE FROM waterway.sounding_results_iso_areas
 WHERE sounding_result_id = $1
@@ -167,12 +163,6 @@
 	}
 	defer tx.Rollback()
 
-	insertContoursStmt, err := tx.Prepare(insertContourSQL)
-	if err != nil {
-		return err
-	}
-	defer insertContoursStmt.Close()
-
 	insertAreasStmt, err := tx.Prepare(insertIsoAreasSQL)
 	if err != nil {
 		return err
@@ -188,29 +178,11 @@
 		hs := octree.ExtrapolateClassBreaks(heights, tree.Min.Z, tree.Max.Z)
 		hs = common.DedupFloat64s(hs)
 
-		// Delete the old contour lines.
-		if _, err := tx.ExecContext(ctx, deleteContourLinesSQL, sr); err != nil {
-			return err
-		}
-
 		// Delete the old iso areas.
 		if _, err := tx.ExecContext(ctx, deleteIsoAreasSQL, sr); err != nil {
 			return err
 		}
 
-		octree.DoContours(tree, hs, func(res *octree.ContourResult) {
-			if err == nil && len(res.Lines) > 0 {
-				_, err = insertContoursStmt.ExecContext(
-					ctx,
-					sr, res.Height, tree.EPSG,
-					res.Lines.AsWKB2D(),
-					contourTolerance)
-			}
-		})
-		if err != nil {
-			return err
-		}
-
 		// Calculate and store the iso areas.
 		areas := tree.TraceAreas(hs, isoCellSize)
 		for i, a := range areas {
--- a/pkg/imports/sr.go	Tue Oct 08 10:37:02 2019 +0200
+++ b/pkg/imports/sr.go	Tue Oct 08 12:10:55 2019 +0200
@@ -97,10 +97,7 @@
 
 func (srJobCreator) Depends() [2][]string {
 	return [2][]string{
-		{"sounding_results",
-			"sounding_results_contour_lines",
-			"sounding_results_iso_areas",
-		},
+		{"sounding_results", "sounding_results_iso_areas"},
 		{"bottlenecks"},
 	}
 }
@@ -164,32 +161,6 @@
   ST_AsBinary(ST_Buffer(ST_MakeValid(ST_GeomFromWKB($1, $2::integer)), 0.0)),
   ST_AsBinary(ST_Buffer(ST_MakeValid(ST_GeomFromWKB($1, $2::integer)), 0.1))`
 
-	insertContourSQL = `
-INSERT INTO waterway.sounding_results_contour_lines (
-  sounding_result_id,
-  height,
-  lines
-)
-SELECT
-  $1,
-  $2,
-  ST_Transform(
-    ST_Multi(
-      ST_CollectionExtract(
-        ST_SimplifyPreserveTopology(
-          ST_Multi(ST_Collectionextract(
-            ST_MakeValid(ST_GeomFromWKB($4, $3::integer)), 2)),
-          $5
-        ),
-        2
-      )
-    ),
-    4326
-  )
-FROM waterway.sounding_results sr
-WHERE id = $1
-`
-
 	insertIsoAreasSQL = `
 INSERT INTO waterway.sounding_results_iso_areas (
   sounding_result_id,
@@ -900,10 +871,6 @@
 
 	heights = common.DedupFloat64s(heights)
 
-	if err := generateContours(ctx, tx, feedback, tree, heights, id); err != nil {
-		return err
-	}
-
 	return generateIsoAreas(ctx, tx, feedback, tree, heights, id)
 }
 
@@ -967,37 +934,3 @@
 
 	return nil
 }
-
-func generateContours(
-	ctx context.Context,
-	tx *sql.Tx,
-	feedback Feedback,
-	tree *octree.Tree,
-	heights []float64,
-	id int64,
-) error {
-	feedback.Info("Generate contour lines")
-	start := time.Now()
-	defer func() {
-		feedback.Info("Generating contour lines took %v",
-			time.Since(start))
-	}()
-
-	stmt, err := tx.PrepareContext(ctx, insertContourSQL)
-	if err != nil {
-		return err
-	}
-	defer stmt.Close()
-
-	octree.DoContours(tree, heights, func(res *octree.ContourResult) {
-		if err == nil && len(res.Lines) > 0 {
-			_, err = stmt.ExecContext(
-				ctx,
-				id, res.Height, tree.EPSG,
-				res.Lines.AsWKB2D(),
-				contourTolerance)
-		}
-	})
-
-	return err
-}
--- a/schema/default_sysconfig.sql	Tue Oct 08 10:37:02 2019 +0200
+++ b/schema/default_sysconfig.sql	Tue Oct 08 12:10:55 2019 +0200
@@ -30,13 +30,11 @@
     ('waterway.gauges_geoserver'),
     ('waterway.distance_marks_ashore_geoserver'),
     ('waterway.distance_marks_geoserver'),
-    ('waterway.sounding_results_contour_lines_geoserver'),
     ('waterway.bottlenecks_geoserver'),
     ('waterway.bottleneck_overview'),
     ('waterway.waterway_axis'),
     ('waterway.waterway_area'),
-    ('waterway.waterway_profiles'),
-    ('waterway.sounding_differences');
+    ('waterway.waterway_profiles');
 
 --
 -- Settings
--- a/schema/gemma.sql	Tue Oct 08 10:37:02 2019 +0200
+++ b/schema/gemma.sql	Tue Oct 08 12:10:55 2019 +0200
@@ -894,14 +894,6 @@
         UNIQUE (minuend, subtrahend)
     )
 
-    CREATE TABLE sounding_differences_contour_lines (
-        sounding_differences_id int NOT NULL REFERENCES sounding_differences(id)
-                                    ON DELETE CASCADE,
-        height numeric NOT NULL,
-        lines  geography(multilinestring, 4326) NOT NULL,
-        PRIMARY KEY (sounding_differences_id, height)
-    )
-
     CREATE TABLE sounding_differences_iso_areas (
         sounding_differences_id int NOT NULL REFERENCES sounding_differences(id)
                                     ON DELETE CASCADE,
--- a/schema/geoserver_views.sql	Tue Oct 08 10:37:02 2019 +0200
+++ b/schema/geoserver_views.sql	Tue Oct 08 12:10:55 2019 +0200
@@ -182,14 +182,6 @@
             ON isrs_fromtext(g.isrs_code) <@ s.section
     GROUP BY s.id;
 
-CREATE OR REPLACE VIEW waterway.sounding_results_contour_lines_geoserver AS
-    SELECT bottleneck_id,
-        date_info,
-        height,
-        CAST(lines AS geometry(multilinestring, 4326)) AS lines
-    FROM waterway.sounding_results_contour_lines cl
-        JOIN waterway.sounding_results sr ON sr.id = cl.sounding_result_id;
-
 CREATE OR REPLACE VIEW waterway.bottleneck_overview AS
     SELECT
         objnam AS name,
@@ -204,22 +196,3 @@
             GROUP BY bottleneck_id) sr ON sr.bottleneck_id = bn.bottleneck_id
     WHERE bn.validity @> current_timestamp
     ORDER BY objnam;
-
-CREATE OR REPLACE VIEW waterway.sounding_differences AS
-    SELECT
-        sd.id           AS id,
-        bn.objnam       AS objnam,
-        srm.date_info   AS minuend,
-        srs.date_info   AS subtrahend,
-        sdcl.height     AS height,
-        CAST(sdcl.lines AS geometry(multilinestring, 4326)) AS lines
-    FROM caching.sounding_differences sd
-        JOIN caching.sounding_differences_contour_lines sdcl
-            ON sd.id = sdcl.sounding_differences_id
-        JOIN waterway.sounding_results srm
-            ON sd.minuend = srm.id
-        JOIN waterway.sounding_results srs
-            ON sd.subtrahend = srs.id
-        JOIN waterway.bottlenecks bn
-            ON srm.bottleneck_id = bn.bottleneck_id
-                AND srm.date_info::timestamptz <@ bn.validity;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schema/updates/1204/02.delete-contours.sql	Tue Oct 08 12:10:55 2019 +0200
@@ -0,0 +1,8 @@
+DELETE FROM sys_admin.published_services WHERE name = 'waterway.sounding_differences'::regclass;
+DELETE FROM sys_admin.published_services WHERE name = 'waterway.sounding_results_contour_lines_geoserver'::regclass;
+
+DROP VIEW waterway.sounding_results_contour_lines_geoserver;
+DROP VIEW waterway.sounding_differences;
+DROP TABLE caching.sounding_differences_contour_lines;
+DROP TABLE waterway.sounding_results_contour_lines;
+