diff --git a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889, Polar & Wind estimation Import from 8888).launch b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889, Polar & Wind estimation Import from 8888).launch
index 6f15ee687de..3d1efac2582 100755
--- a/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889, Polar & Wind estimation Import from 8888).launch
+++ b/java/com.sap.sailing.server/SailingServer (Proxy, Jetty on 8889, Polar & Wind estimation Import from 8888).launch
@@ -1,285 +1,280 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/datavisualization/SingleDimensionAggregatesPlottingFrame.java b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/datavisualization/SingleDimensionAggregatesPlottingFrame.java
index eb4abbeae26..8b30f903315 100644
--- a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/datavisualization/SingleDimensionAggregatesPlottingFrame.java
+++ b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/datavisualization/SingleDimensionAggregatesPlottingFrame.java
@@ -176,7 +176,8 @@ public class SingleDimensionAggregatesPlottingFrame extends JFrame {
dataset.addSeries(q3Series);
dataset.addSeries(p1Series);
dataset.addSeries(p99Series);
- dataset.addSeries(stdSeries);
+ // Uncomment the following to see the standard deviation; it overlaps the zeroMeanStdSeries, so usually we don't want to see it
+ // dataset.addSeries(stdSeries);
dataset.addSeries(zeroMeanStdSeries);
return dataset;
}
diff --git a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java
index 3305370a7dc..7dd82446112 100644
--- a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java
+++ b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java
@@ -122,7 +122,7 @@ public class SimpleModelsTrainingPart1 {
LoggingUtil.logInfo("Model training finished. You can upload the generated file to a server instance.");
}
- private static void enforceMonotonicZeroMeanSigmaGrowth(AggregatedSingleDimensionType dimensionType) throws UnknownHostException, JsonDeserializationException, ParseException {
+ static void enforceMonotonicZeroMeanSigmaGrowth(AggregatedSingleDimensionType dimensionType) throws UnknownHostException, JsonDeserializationException, ParseException {
final AggregatedSingleDimensionBasedTwdTransitionPersistenceManager persistenceManager = new AggregatedSingleDimensionBasedTwdTransitionPersistenceManager(dimensionType);
final List allAggregatedElements = persistenceManager.getAllElements();
Collections.sort(allAggregatedElements, (ae1, ae2)->Double.compare(ae1.getDimensionValue(), ae2.getDimensionValue()));
diff --git a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/ZeroMeanSigmaSmoothening.java b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/ZeroMeanSigmaSmoothening.java
new file mode 100644
index 00000000000..f212dfad6b6
--- /dev/null
+++ b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/ZeroMeanSigmaSmoothening.java
@@ -0,0 +1,15 @@
+package com.sap.sailing.windestimation.model;
+
+import java.net.UnknownHostException;
+
+import org.json.simple.parser.ParseException;
+
+import com.sap.sailing.windestimation.data.persistence.twdtransition.AggregatedSingleDimensionBasedTwdTransitionPersistenceManager.AggregatedSingleDimensionType;
+import com.sap.sse.shared.json.JsonDeserializationException;
+
+public class ZeroMeanSigmaSmoothening {
+ public static void main(String[] args) throws JsonDeserializationException, UnknownHostException, ParseException {
+ SimpleModelsTrainingPart1.enforceMonotonicZeroMeanSigmaGrowth(AggregatedSingleDimensionType.DISTANCE);
+ SimpleModelsTrainingPart1.enforceMonotonicZeroMeanSigmaGrowth(AggregatedSingleDimensionType.DURATION);
+ }
+}
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom0.0To10.0.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom0.0To10.0.clf
index c706c6bb99b..d168301e0a3 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom0.0To10.0.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom0.0To10.0.clf differ
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom10.0To912.0.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom10.0To912.0.clf
index ff164292d76..71ecc6f642b 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom10.0To912.0.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom10.0To912.0.clf differ
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom1368.0ToMaximum.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom1368.0ToMaximum.clf
index 449a6411f45..02c6b57e40e 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom1368.0ToMaximum.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom1368.0ToMaximum.clf differ
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom912.0To1368.0.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom912.0To1368.0.clf
index 9cc7936629b..07dbb46b5b3 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom912.0To1368.0.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDistanceBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DistanceBasedTwdTransitionRegressorFrom912.0To1368.0.clf differ
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom0.0To1.0.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom0.0To1.0.clf
index ed6d0bdb375..79888948b00 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom0.0To1.0.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom0.0To1.0.clf differ
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom1.0To140.0.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom1.0To140.0.clf
index 07c2c4d8af1..79dda0de4c1 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom1.0To140.0.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom1.0To140.0.clf differ
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom140.0To5394.0.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom140.0To5394.0.clf
index bd814a6a48f..9402edb5019 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom140.0To5394.0.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom140.0To5394.0.clf differ
diff --git a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom5394.0ToMaximum.clf b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom5394.0ToMaximum.clf
index 47f2e44ea5d..354ab2ab6b3 100644
Binary files a/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom5394.0ToMaximum.clf and b/java/com.sap.sailing.windestimation.test/resources/trained_wind_estimation_models/SERIALIZATION.modelForDurationBasedTwdDeltaStdRegressor.IncrementalSingleDimensionPolynomialRegressor.DurationBasedTwdTransitionRegressorFrom5394.0ToMaximum.clf differ