mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
added smoothed speed as @Statistic on GPS fixes
This commit is contained in:
+2
-1
@@ -263,4 +263,5 @@ InRace=In race
|
||||
InTrackingInterval=In tracking interval
|
||||
NumberOfCompetitors=Number of Competitors
|
||||
CompetitorInLeaderboard=Competitor in Leaderboard
|
||||
CompetitorSailingDomainRetrieverChain=Competitors in Leaderboards
|
||||
CompetitorSailingDomainRetrieverChain=Competitors in Leaderboards
|
||||
SmoothedSpeed=Smoothed Speed
|
||||
+2
-1
@@ -266,4 +266,5 @@ InRace=In der Wettfahrt
|
||||
InTrackingInterval=Im Tracking-Zeitraum der Wettfahrt
|
||||
NumberOfCompetitors=Anzahl Teilnehmer
|
||||
CompetitorInLeaderboard=Teilnehmer aus Rangliste
|
||||
CompetitorSailingDomainRetrieverChain=Teilnehmer in Ranglisten
|
||||
CompetitorSailingDomainRetrieverChain=Teilnehmer in Ranglisten
|
||||
SmoothedSpeed=Geglättete Geschwindigkeit
|
||||
+6
-2
@@ -6,16 +6,17 @@ import com.sap.sailing.domain.common.TackType;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.common.Speed;
|
||||
import com.sap.sse.datamining.annotations.Connector;
|
||||
import com.sap.sse.datamining.annotations.Dimension;
|
||||
import com.sap.sse.datamining.annotations.Statistic;
|
||||
|
||||
public interface HasGPSFixContext {
|
||||
@Connector(scanForStatistics = false)
|
||||
public HasTrackedLegOfCompetitorContext getTrackedLegOfCompetitorContext();
|
||||
HasTrackedLegOfCompetitorContext getTrackedLegOfCompetitorContext();
|
||||
|
||||
@Connector(ordinal = 1)
|
||||
public GPSFixMoving getGPSFix();
|
||||
GPSFixMoving getGPSFix();
|
||||
|
||||
@Dimension(messageKey="TackType", ordinal=6)
|
||||
TackType getTackType() throws NoWindException;
|
||||
@@ -34,4 +35,7 @@ public interface HasGPSFixContext {
|
||||
|
||||
@Statistic(messageKey = "AbsoluteXTE", resultDecimals = 2)
|
||||
Distance getAbsoluteXTE();
|
||||
|
||||
@Statistic(messageKey = "SmoothedSpeed", resultDecimals = 2)
|
||||
Speed getSmoothedSpeed();
|
||||
}
|
||||
+3
-3
@@ -26,17 +26,17 @@ public class GPSFixRetrievalProcessor extends AbstractRetrievalProcessor<HasTrac
|
||||
|
||||
@Override
|
||||
protected Iterable<HasGPSFixContext> retrieveData(HasTrackedLegOfCompetitorContext element) {
|
||||
Collection<HasGPSFixContext> gpsFixesWithContext = new ArrayList<>();
|
||||
final Collection<HasGPSFixContext> gpsFixesWithContext = new ArrayList<>();
|
||||
final GPSFixTrack<Competitor, GPSFixMoving> competitorTrack = element.getTrackedLegContext().getTrackedRaceContext().getTrackedRace().getTrack(element.getCompetitor());
|
||||
competitorTrack.lockForRead();
|
||||
try {
|
||||
TrackedLegOfCompetitor trackedLegOfCompetitor = element.getTrackedLegOfCompetitor();
|
||||
final TrackedLegOfCompetitor trackedLegOfCompetitor = element.getTrackedLegOfCompetitor();
|
||||
if (trackedLegOfCompetitor.getStartTime() != null && trackedLegOfCompetitor.getFinishTime() != null) {
|
||||
for (GPSFixMoving gpsFix : competitorTrack.getFixes(trackedLegOfCompetitor.getStartTime(), true, trackedLegOfCompetitor.getFinishTime(), true)) {
|
||||
if (isAborted()) {
|
||||
break;
|
||||
}
|
||||
HasGPSFixContext gpsFixWithContext = new GPSFixWithContext(new TrackedLegOfCompetitorWithSpecificTimePointWithContext(
|
||||
final HasGPSFixContext gpsFixWithContext = new GPSFixWithContext(new TrackedLegOfCompetitorWithSpecificTimePointWithContext(
|
||||
element.getTrackedLegContext(), element.getTrackedLegOfCompetitor(), gpsFix.getTimePoint()), gpsFix);
|
||||
gpsFixesWithContext.add(gpsFixWithContext);
|
||||
}
|
||||
|
||||
+12
@@ -9,6 +9,7 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sse.common.Bearing;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.common.Speed;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
@@ -95,4 +96,15 @@ public class GPSFixWithContext implements HasGPSFixContext {
|
||||
public TackType getTackType() throws NoWindException {
|
||||
return getTrackedLegOfCompetitorContext().getTrackedLegOfCompetitor().getTackType(getTimePoint());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Speed getSmoothedSpeed() {
|
||||
final SpeedWithBearing result;
|
||||
if (getGPSFix().isEstimatedSpeedCached()) {
|
||||
result = getGPSFix().getCachedEstimatedSpeed();
|
||||
} else {
|
||||
result = getTrackedLegOfCompetitorContext().getTrackedRace().getTrack(getTrackedLegOfCompetitorContext().getCompetitor()).getEstimatedSpeed(getTimePoint());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user