mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-15 14:56:41 +00:00
Added new applyWindConfidencefilter setting for polar data mining
This commit is contained in:
1 parent
fea30197a9
commit
4fbd47033a
8 files changed
+43
-26
No files matched your search
+2
@@ -561,6 +561,8 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c
|
||||
String polarSheetWindSteppingMaxDistanceTooltip();
|
||||
String polarSheetSplitByWindGauges();
|
||||
String polarSheetSplitByWindGaugesTooltip();
|
||||
String applyMinimumWindConfidence();
|
||||
String applyMinimumWindConfidenceTooltip();
|
||||
String pleaseSeeToolTips();
|
||||
String numberOfManeuversInRaceTooltip();
|
||||
String competitorColumnTooltip();
|
||||
|
||||
+2
@@ -555,6 +555,8 @@ polarSheetWindSteppingMaxDistance=Max. distance to wind level
|
||||
polarSheetWindSteppingMaxDistanceTooltip=Sets a max radius for which fixes will be assigned to the wind levels.
|
||||
polarSheetSplitByWindGauges=Split Windsources
|
||||
polarSheetSplitByWindGaugesTooltip=Splitting Windsources allows a better search for bad wind gauges.\nThe statistical correctness cannot be guaranteed. The same fix can\ncount into the resulting polar sheet multiple times (for different wind gauges).
|
||||
applyMinimumWindConfidence=Apply minimum wind confidence
|
||||
applyMinimumWindConfidenceTooltip=If checked the value in the box above will be used as the minimum valid wind confidence during generation.
|
||||
pleaseSeeToolTips=Please hover over the options to view tooltips where available.
|
||||
competitorColumnTooltip=Names of the members of this competitor.
|
||||
sailIdColumnTooltip=Shows the flag of the country and the sail number of the competitor.
|
||||
|
||||
+2
@@ -555,6 +555,8 @@ polarSheetWindSteppingMaxDistance=Max. Distanz zu den Windstufen
|
||||
polarSheetWindSteppingMaxDistanceTooltip=Stellt den maximales Radius um die Windstufen ein,\ndamit keine Fixes vollkommen entfernten Windgeschwindigkeiten\ndazugezogen werden.
|
||||
polarSheetSplitByWindGauges=Windquellen splitten
|
||||
polarSheetSplitByWindGaugesTooltip=Das Splitten der Windquellen erlaubt eine einfachere Suche nach Fehlern.\nEs werden für jeden Fix, für alle Windmesser, Daten zum Polardiagramm hinzugefügt.\nDiese Option garantiert keine statistische Aussagekraft.
|
||||
applyMinimumWindConfidence=Minimale Windkonfidenz anwenden
|
||||
applyMinimumWindConfidenceTooltip=Falls diese Box markiert ist, wird der Wert in der obigen Box als minimaler Windkonfidenzwert angewendet.
|
||||
pleaseSeeToolTips=Bitte den Mauszeiger über die Optionen halten um Tooltips zu sehen.
|
||||
competitorColumnTooltip=Namen der Segler dieses Teilnehmers
|
||||
sailIdColumnTooltip=Zeigt die Länderflagge und die Segelnummer des Teilnehmers
|
||||
|
||||
+21
-13
@@ -28,6 +28,7 @@ public class PolarDataMiningSettingsDialogComponent implements SettingsDialogCom
|
||||
private CheckBox useOnlyEstimationForWindDirectionBox;
|
||||
private WindSpeedSteppingConfiguratorPanel windSteppingBox;
|
||||
private DoubleBox windSteppingMaxDistanceBox;
|
||||
private CheckBox applyMinimumWindConfidenceBox;
|
||||
|
||||
public PolarDataMiningSettingsDialogComponent(PolarDataMiningSettings settings) {
|
||||
this.settings = settings;
|
||||
@@ -37,7 +38,7 @@ public class PolarDataMiningSettingsDialogComponent implements SettingsDialogCom
|
||||
@Override
|
||||
public Widget getAdditionalWidget(DataEntryDialog<?> dialog) {
|
||||
VerticalPanel vp = new VerticalPanel();
|
||||
Grid grid = new Grid(14, 2);
|
||||
Grid grid = new Grid(10, 2);
|
||||
grid.setCellPadding(5);
|
||||
vp.add(grid);
|
||||
setupGrid(grid, dialog);
|
||||
@@ -60,6 +61,12 @@ public class PolarDataMiningSettingsDialogComponent implements SettingsDialogCom
|
||||
grid.setWidget(2, 0, minimumWindConfidenceLabel);
|
||||
minimumWindConfidenceBox = dialog.createDoubleBox(settings.getMinimumWindConfidence(), 6);
|
||||
grid.setWidget(2, 1, minimumWindConfidenceBox);
|
||||
Label applyMinimumWindConfidenceLabel = new Label(stringMessages.applyMinimumWindConfidence() + ":");
|
||||
applyMinimumWindConfidenceLabel.setTitle(stringMessages.applyMinimumWindConfidenceTooltip());
|
||||
grid.setWidget(3, 0, applyMinimumWindConfidenceLabel);
|
||||
applyMinimumWindConfidenceBox = dialog.createCheckbox("");
|
||||
applyMinimumWindConfidenceBox.setValue(settings.useOnlyEstimatedForWindDirection());
|
||||
grid.setWidget(3, 1, applyMinimumWindConfidenceBox);
|
||||
Label useOnlyWindGaugesForWindSpeedLabel = new Label(stringMessages.polarSheetUseOnlyWindGaugeData() + ":");
|
||||
useOnlyWindGaugesForWindSpeedLabel.setTitle(stringMessages.polarSheetUseOnlyWindGaugeDataTooltip());
|
||||
grid.setWidget(4, 0, useOnlyWindGaugesForWindSpeedLabel);
|
||||
@@ -68,30 +75,31 @@ public class PolarDataMiningSettingsDialogComponent implements SettingsDialogCom
|
||||
grid.setWidget(4, 1, useOnlyWindGaugesForWindSpeedBox);
|
||||
Label useOnlyEstimationForWindDirectionLabel = new Label(stringMessages.polarSheetUseOnlyEstimationData() + ":");
|
||||
useOnlyEstimationForWindDirectionLabel.setTitle(stringMessages.polarSheetUseOnlyEstimationDataTooltip());
|
||||
grid.setWidget(6, 0, useOnlyEstimationForWindDirectionLabel);
|
||||
grid.setWidget(5, 0, useOnlyEstimationForWindDirectionLabel);
|
||||
useOnlyEstimationForWindDirectionBox = dialog.createCheckbox("");
|
||||
useOnlyEstimationForWindDirectionBox.setValue(settings.useOnlyEstimatedForWindDirection());
|
||||
grid.setWidget(6, 1, useOnlyEstimationForWindDirectionBox);
|
||||
grid.setWidget(10, 0, new Label(stringMessages.polarSheetNumberOfHistogramColumns() + ":"));
|
||||
grid.setWidget(5, 1, useOnlyEstimationForWindDirectionBox);
|
||||
grid.setWidget(6, 0, new Label(stringMessages.polarSheetNumberOfHistogramColumns() + ":"));
|
||||
numberOfHistogramColumnsBox = dialog.createIntegerBox(settings.getNumberOfHistogramColumns(), 3);
|
||||
grid.setWidget(10, 1, numberOfHistogramColumnsBox);
|
||||
grid.setWidget(11, 0, new Label(stringMessages.polarSheetWindSteppingInKnots() + ":"));
|
||||
grid.setWidget(6, 1, numberOfHistogramColumnsBox);
|
||||
grid.setWidget(7, 0, new Label(stringMessages.polarSheetWindSteppingInKnots() + ":"));
|
||||
windSteppingBox = new WindSpeedSteppingConfiguratorPanel(settings.getWindSpeedStepping());
|
||||
grid.setWidget(11, 1, windSteppingBox);
|
||||
grid.setWidget(7, 1, windSteppingBox);
|
||||
Label windSteppingMaxDistanceLabel = new Label(stringMessages.polarSheetWindSteppingMaxDistance() + ":");
|
||||
windSteppingMaxDistanceLabel.setTitle(stringMessages.polarSheetWindSteppingMaxDistanceTooltip());
|
||||
grid.setWidget(12, 0, windSteppingMaxDistanceLabel);
|
||||
grid.setWidget(8, 0, windSteppingMaxDistanceLabel);
|
||||
windSteppingMaxDistanceBox = dialog.createDoubleBox(settings.getWindSpeedStepping().getMaxDistance(), 6);
|
||||
grid.setWidget(12, 1, windSteppingMaxDistanceBox);
|
||||
grid.setWidget(13, 0, new Label(stringMessages.pleaseSeeToolTips()));
|
||||
grid.setWidget(8, 1, windSteppingMaxDistanceBox);
|
||||
grid.setWidget(9, 0, new Label(stringMessages.pleaseSeeToolTips()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PolarDataMiningSettings getResult() {
|
||||
return new PolarDataMiningSettingsImpl(minimumGraphDataSizeBox.getValue(), minimumWindConfidenceBox.getValue(),
|
||||
minimumDataCountPerAngleBox.getValue(), numberOfHistogramColumnsBox.getValue(),
|
||||
useOnlyWindGaugesForWindSpeedBox.getValue(), useOnlyEstimationForWindDirectionBox.getValue(),
|
||||
windSteppingBox.getStepping(windSteppingMaxDistanceBox.getValue()));
|
||||
applyMinimumWindConfidenceBox.getValue(), minimumDataCountPerAngleBox.getValue(),
|
||||
numberOfHistogramColumnsBox.getValue(), useOnlyWindGaugesForWindSpeedBox.getValue(),
|
||||
useOnlyEstimationForWindDirectionBox.getValue(), windSteppingBox.getStepping(windSteppingMaxDistanceBox
|
||||
.getValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
@@ -10,6 +10,8 @@ public abstract class PolarDataMiningSettings extends SerializableSettings {
|
||||
public abstract Integer getMinimumDataCountPerGraph();
|
||||
|
||||
public abstract double getMinimumWindConfidence();
|
||||
|
||||
public abstract boolean applyMinimumWindConfidence();
|
||||
|
||||
public abstract Integer getMinimumDataCountPerAngle();
|
||||
|
||||
|
||||
+14
-5
@@ -7,7 +7,7 @@ public class PolarDataMiningSettingsImpl extends PolarDataMiningSettings {
|
||||
public static PolarDataMiningSettingsImpl createStandardPolarSettings() {
|
||||
double[] levels = { 4., 6., 8., 10., 12., 14., 16., 20., 25., 30. };
|
||||
WindSpeedSteppingWithMaxDistance windStepping = new WindSpeedSteppingWithMaxDistance(levels, 2.5);
|
||||
return new PolarDataMiningSettingsImpl(50, 0.01, 20, 20, true, true, windStepping);
|
||||
return new PolarDataMiningSettingsImpl(50, 0.01, true, 20, 20, true, true, windStepping);
|
||||
}
|
||||
|
||||
private static final long serialVersionUID = 2731616509404813790L;
|
||||
@@ -18,16 +18,18 @@ public class PolarDataMiningSettingsImpl extends PolarDataMiningSettings {
|
||||
private boolean useOnlyWindGaugesForWindSpeed;
|
||||
private boolean useOnlyEstimationForWindDirection;
|
||||
private WindSpeedSteppingWithMaxDistance windStepping;
|
||||
private boolean applyMinimumWindConfidence;
|
||||
|
||||
//GWT
|
||||
PolarDataMiningSettingsImpl() {};
|
||||
|
||||
public PolarDataMiningSettingsImpl(Integer minimumDataCountPerGraph, double minimumWindConfidence,
|
||||
Integer minimumDataCountPerAngle, Integer numberOfHistogramColumns,
|
||||
boolean useOnlyWindGaugesForWindSpeed,
|
||||
boolean useOnlyEstimationForWindDirection, WindSpeedSteppingWithMaxDistance windStepping) {
|
||||
boolean applyMinimumWindConfidence, Integer minimumDataCountPerAngle, Integer numberOfHistogramColumns,
|
||||
boolean useOnlyWindGaugesForWindSpeed, boolean useOnlyEstimationForWindDirection,
|
||||
WindSpeedSteppingWithMaxDistance windStepping) {
|
||||
this.minimumDataCountPerGraph = minimumDataCountPerGraph;
|
||||
this.minimumWindConfidence = minimumWindConfidence;
|
||||
this.applyMinimumWindConfidence = applyMinimumWindConfidence;
|
||||
this.minimumDataCountPerAngle = minimumDataCountPerAngle;
|
||||
this.numberOfHistogramColumns = numberOfHistogramColumns;
|
||||
this.useOnlyWindGaugesForWindSpeed = useOnlyWindGaugesForWindSpeed;
|
||||
@@ -69,6 +71,11 @@ public class PolarDataMiningSettingsImpl extends PolarDataMiningSettings {
|
||||
public WindSpeedSteppingWithMaxDistance getWindSpeedStepping() {
|
||||
return windStepping;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean applyMinimumWindConfidence() {
|
||||
return applyMinimumWindConfidence;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean areDefault() {
|
||||
@@ -79,6 +86,7 @@ public class PolarDataMiningSettingsImpl extends PolarDataMiningSettings {
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + (applyMinimumWindConfidence ? 1231 : 1237);
|
||||
result = prime * result + ((minimumDataCountPerAngle == null) ? 0 : minimumDataCountPerAngle.hashCode());
|
||||
result = prime * result + ((minimumDataCountPerGraph == null) ? 0 : minimumDataCountPerGraph.hashCode());
|
||||
long temp;
|
||||
@@ -100,6 +108,8 @@ public class PolarDataMiningSettingsImpl extends PolarDataMiningSettings {
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
PolarDataMiningSettingsImpl other = (PolarDataMiningSettingsImpl) obj;
|
||||
if (applyMinimumWindConfidence != other.applyMinimumWindConfidence)
|
||||
return false;
|
||||
if (minimumDataCountPerAngle == null) {
|
||||
if (other.minimumDataCountPerAngle != null)
|
||||
return false;
|
||||
@@ -129,6 +139,5 @@ public class PolarDataMiningSettingsImpl extends PolarDataMiningSettings {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
-3
@@ -11,9 +11,6 @@ public interface HasGPSFixPolarContext {
|
||||
@Dimension(messageKey="WindRange")
|
||||
ClusterDTO getWindSpeedRange();
|
||||
|
||||
@Dimension(messageKey="WindIsConfident")
|
||||
Boolean windIsConfident();
|
||||
|
||||
@Statistic(messageKey="PolarData")
|
||||
PolarStatistic getPolarStatistics();
|
||||
|
||||
|
||||
-5
@@ -52,9 +52,4 @@ public class GPSFixWithPolarContext implements HasGPSFixPolarContext {
|
||||
return competitorPolarContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean windIsConfident() {
|
||||
return wind.getConfidence() >= settings.getMinimumWindConfidence();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user