changeset 4685:7a9388943840

morphology: Clip class breaks again Z min and max of the the height model.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 16 Oct 2019 11:07:59 +0200
parents 00a2c761493e
children 1d6f28e45696 cad2b264542e
files pkg/controllers/diff.go pkg/octree/classbreaks.go
diffstat 2 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/diff.go	Wed Oct 16 10:52:43 2019 +0200
+++ b/pkg/controllers/diff.go	Wed Oct 16 11:07:59 2019 +0200
@@ -285,6 +285,8 @@
 		// heights = octree.InBetweenClassBreaks(heights, 0.05, 2)
 	}
 
+	log.Printf("info: z range: %.3f - %.3f\n", tin.Min.Z, tin.Max.Z)
+
 	log.Printf("info: num heights: %d\n", len(heights))
 
 	var isoStmt *sql.Stmt
--- a/pkg/octree/classbreaks.go	Wed Oct 16 10:52:43 2019 +0200
+++ b/pkg/octree/classbreaks.go	Wed Oct 16 11:07:59 2019 +0200
@@ -115,6 +115,22 @@
 	copy(n, cbs)
 	sort.Float64s(n)
 
+	for len(n) > 0 && n[0] < min {
+		n = n[1:]
+	}
+
+	if len(n) == 0 {
+		return n
+	}
+
+	for len(n) > 0 && n[len(n)-1] > max {
+		n = n[:len(n)-1]
+	}
+
+	if len(n) == 0 {
+		return n
+	}
+
 	for min < n[0] {
 		diff := n[1] - n[0]
 		if diff == 0 {