mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-28 14:57:12 +00:00
Merge remote-tracking branch 'server/master'
This commit is contained in:
commit
c81ca32c8c
44 files changed
+412
-252
No files matched your search
+1
-23
@@ -4,12 +4,9 @@ import java.util.List;
|
||||
|
||||
import org.moxieapps.gwt.highcharts.client.AxisTitle;
|
||||
import org.moxieapps.gwt.highcharts.client.Chart;
|
||||
import org.moxieapps.gwt.highcharts.client.PlotLine;
|
||||
import org.moxieapps.gwt.highcharts.client.Point;
|
||||
import org.moxieapps.gwt.highcharts.client.Series;
|
||||
import org.moxieapps.gwt.highcharts.client.Series.Type;
|
||||
import org.moxieapps.gwt.highcharts.client.plotOptions.Marker;
|
||||
import org.moxieapps.gwt.highcharts.client.plotOptions.SplinePlotOptions;
|
||||
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
@@ -58,33 +55,14 @@ public class PolarSheetsXYDiagramPopupPanel extends DialogBox {
|
||||
}
|
||||
|
||||
private void addSpeedAndConfidenceSeriesForTackAndLegType(PolarSheetsXYDiagramData result, Tack tack, LegType legType, boolean showByDefault) {
|
||||
Point[] pointsForUpwindStarboardAverageSpeedMovingAverage = toPointArray(result.getPointsForAverageSpeedMovingAverage(tack, legType));
|
||||
Series speedSeriesMovingAverage = chart.createSeries();
|
||||
speedSeriesMovingAverage.setName(tack + " " + legType + " Speed - MovingAverage");
|
||||
speedSeriesMovingAverage.setPoints(pointsForUpwindStarboardAverageSpeedMovingAverage);
|
||||
chart.addSeries(speedSeriesMovingAverage, false, false);
|
||||
|
||||
Point[] pointsForUpwindStarboardAverageSpeedRegression = toPointArray(result.getPointsForAverageSpeedRegression(tack, legType));
|
||||
Series speedSeriesRegression = chart.createSeries();
|
||||
speedSeriesRegression.setName(tack + " " + legType + " Speed - Regression");
|
||||
speedSeriesRegression.setPoints(pointsForUpwindStarboardAverageSpeedRegression);
|
||||
chart.addSeries(speedSeriesRegression, false, false);
|
||||
|
||||
Point[] pointsForUpwindStarboardAverageConfidence = toPointArray(result.getPointsForAverageConfidence(tack, legType));
|
||||
Series confidenceSeries = chart
|
||||
.createSeries()
|
||||
.setYAxis(1)
|
||||
.setType(Series.Type.SPLINE)
|
||||
.setPlotOptions(
|
||||
new SplinePlotOptions().setColor("#AA4643").setMarker(new Marker().setEnabled(false))
|
||||
.setDashStyle(PlotLine.DashStyle.SHORT_DOT));
|
||||
confidenceSeries.setName(tack + " " + legType + " Confidence");
|
||||
confidenceSeries.setPoints(pointsForUpwindStarboardAverageConfidence);
|
||||
chart.addSeries(confidenceSeries, false, false);
|
||||
|
||||
|
||||
if (!showByDefault) {
|
||||
speedSeriesRegression.setVisible(false, false);
|
||||
confidenceSeries.setVisible(false, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-30
@@ -61,10 +61,10 @@ import com.sap.sailing.domain.abstractlog.AbstractLog;
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.MultiLogAnalyzer;
|
||||
import com.sap.sailing.domain.abstractlog.impl.AllEventsOfTypeFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogFixedMarkPassingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEventFactory;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogFixedMarkPassingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogFlagEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogSuppressedMarkPassingsEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.AbortingFlagFinder;
|
||||
@@ -5585,45 +5585,20 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
@Override
|
||||
public PolarSheetsXYDiagramData createXYDiagramForBoatClass(String boatClassName) {
|
||||
BoatClass boatClass = getService().getBaseDomainFactory().getOrCreateBoatClass(boatClassName);
|
||||
Map<Pair<LegType, Tack>, List<Pair<Double, Double>>> movingAverageSpeedDataLists = new HashMap<>();
|
||||
Map<Pair<LegType, Tack>, List<Pair<Double, Double>>> regressionSpeedDataLists = new HashMap<>();
|
||||
Map<Pair<LegType, Tack>, List<Pair<Double, Double>>> averageConfidenceDataLists = new HashMap<>();
|
||||
for (LegType legType : new LegType[] { LegType.UPWIND, LegType.DOWNWIND }) {
|
||||
for (Tack tack : new Tack[] { Tack.PORT, Tack.STARBOARD }) {
|
||||
movingAverageSpeedDataLists.put(new Pair<LegType, Tack>(legType, tack),
|
||||
new ArrayList<Pair<Double, Double>>());
|
||||
regressionSpeedDataLists.put(new Pair<LegType, Tack>(legType, tack),
|
||||
new ArrayList<Pair<Double, Double>>());
|
||||
averageConfidenceDataLists.put(new Pair<LegType, Tack>(legType, tack),
|
||||
new ArrayList<Pair<Double, Double>>());
|
||||
}
|
||||
}
|
||||
for (double windInKnots = 0.1; windInKnots < 30; windInKnots = windInKnots + 0.1) {
|
||||
for (LegType legType : new LegType[] { LegType.UPWIND, LegType.DOWNWIND }) {
|
||||
for (Tack tack : new Tack[] { Tack.PORT, Tack.STARBOARD }) {
|
||||
|
||||
try {
|
||||
SpeedWithBearingWithConfidence<Void> averageUpwindStarboardMovingAverage = getService()
|
||||
.getPolarDataService().getAverageSpeedWithBearing(boatClass,
|
||||
new KnotSpeedImpl(windInKnots), legType, tack, false);
|
||||
|
||||
movingAverageSpeedDataLists.get(new Pair<LegType, Tack>(legType, tack)).add(
|
||||
new Pair<Double, Double>(windInKnots, averageUpwindStarboardMovingAverage.getObject()
|
||||
.getKnots()));
|
||||
|
||||
|
||||
averageConfidenceDataLists.get(new Pair<LegType, Tack>(legType, tack)).add(
|
||||
new Pair<Double, Double>(windInKnots, averageUpwindStarboardMovingAverage
|
||||
.getConfidence()));
|
||||
|
||||
} catch (NotEnoughDataHasBeenAddedException e) {
|
||||
// Do not add a point to the result
|
||||
}
|
||||
|
||||
for (Tack tack : new Tack[] { Tack.PORT, Tack.STARBOARD }) {
|
||||
try {
|
||||
SpeedWithBearingWithConfidence<Void> averageUpwindStarboardRegression = getService()
|
||||
.getPolarDataService().getAverageSpeedWithBearing(boatClass,
|
||||
new KnotSpeedImpl(windInKnots), legType, tack, true);
|
||||
new KnotSpeedImpl(windInKnots), legType, tack);
|
||||
|
||||
regressionSpeedDataLists.get(new Pair<LegType, Tack>(legType, tack)).add(
|
||||
new Pair<Double, Double>(windInKnots, averageUpwindStarboardRegression.getObject()
|
||||
@@ -5635,8 +5610,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
}
|
||||
|
||||
PolarSheetsXYDiagramData data = new PolarSheetsXYDiagramDataImpl(movingAverageSpeedDataLists,
|
||||
regressionSpeedDataLists, averageConfidenceDataLists);
|
||||
PolarSheetsXYDiagramData data = new PolarSheetsXYDiagramDataImpl(regressionSpeedDataLists);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user