diff cmd/octreediff/main.go @ 2574:2833ff156cb2

Morphological differences: Moved loading of clipping polygon into octree package.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 11 Mar 2019 14:36:34 +0100
parents 7686c7c23506
children 59e7a011d347
line wrap: on
line diff
--- a/cmd/octreediff/main.go	Mon Mar 11 14:18:14 2019 +0100
+++ b/cmd/octreediff/main.go	Mon Mar 11 14:36:34 2019 +0100
@@ -65,22 +65,6 @@
     4326
   )
 `
-	clippingPolygonSQL = `
-WITH joined AS (
-  SELECT
-    sr.area      AS area,
-    sr.date_info AS date_info
-  FROM waterway.sounding_results sr JOIN
-     waterway.bottlenecks bn ON sr.bottleneck_id = bn.id
-  WHERE bn.bottleneck_id = $1
-)
-SELECT ST_AsBinary(
-  ST_intersection(
-    (SELECT ST_Transform(area::geometry, $2::int) FROM joined WHERE date_info = $3::date),
-    (SELECT ST_Transform(area::geometry, $2::int) FROM joined WHERE date_info = $4::date)
-  )
-  ) AS area
-`
 	insertContourSQLClipped = `
 WITH joined AS (
   SELECT
@@ -226,23 +210,17 @@
 		last = now
 		log.Printf("num points: %d\n", len(result))
 
-		var clip []byte
-
-		if err := tx.QueryRowContext(
-			ctx, clippingPolygonSQL,
+		clippingPolygon, err := octree.LoadClippingPolygon(
+			ctx,
+			conn,
+			first.EPSG,
 			bottleneck,
-			first.EPSG,
 			firstDate, secondDate,
-		).Scan(&clip); err != nil {
+		)
+		if err != nil {
 			return err
 		}
 
-		var clippingPolygon octree.Polygon
-		if err := clippingPolygon.FromWKB(clip); err != nil {
-			return err
-		}
-		clippingPolygon.Indexify()
-
 		now = time.Now()
 		log.Printf("loading clipping polygon took %v\n", now.Sub(last))
 		last = now
@@ -266,7 +244,7 @@
 		log.Printf("building STR tree took %v\n", now.Sub(last))
 		last = now
 
-		removed := str.Clip(&clippingPolygon)
+		removed := str.Clip(clippingPolygon)
 		now = time.Now()
 		log.Printf("clipping STR tree took %v\n", now.Sub(last))
 		last = now