mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-24 14:38:45 +00:00
Merge remote-tracking branch 'origin/master' into bug4134_2
This commit is contained in:
+2
-2
@@ -2684,11 +2684,11 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
|
||||
|
||||
private List<Maneuver> computeManeuvers(Competitor competitor, ManeuverDetector maneuverDetector)
|
||||
throws NoWindException {
|
||||
logger.info("computeManeuvers(" + competitor.getName() + ") called in tracked race " + this);
|
||||
logger.finest("computeManeuvers(" + competitor.getName() + ") called in tracked race " + this);
|
||||
long startedAt = System.currentTimeMillis();
|
||||
// compute the maneuvers for competitor
|
||||
List<Maneuver> result = maneuverDetector.detectManeuvers();
|
||||
logger.info("computeManeuvers(" + competitor.getName() + ") called in tracked race " + this + " took "
|
||||
logger.finest("computeManeuvers(" + competitor.getName() + ") called in tracked race " + this + " took "
|
||||
+ (System.currentTimeMillis() - startedAt) + "ms");
|
||||
return result;
|
||||
}
|
||||
|
||||
+2
-4
@@ -156,7 +156,7 @@ public class ManeuverBasedWindEstimationTrackImpl extends WindTrackImpl {
|
||||
this.weightedAverageMiddleCOGForManeuverType = new HashMap<>();
|
||||
long start = System.currentTimeMillis();
|
||||
Triple<Set<Cluster<ManeuverClassification, Pair<ScalableBearing, ScalableDouble>, Pair<Bearing, Double>, ScalableBearingAndScalableDouble>>, List<Cluster<ManeuverClassification, Pair<ScalableBearing, ScalableDouble>, Pair<Bearing, Double>, ScalableBearingAndScalableDouble>>, List<Cluster<ManeuverClassification, Pair<ScalableBearing, ScalableDouble>, Pair<Bearing, Double>, ScalableBearingAndScalableDouble>>> clusterStructure = analyzeRace(waitForLatest);
|
||||
logger.info("Computed virtual wind fixes from maneuvers for race " + trackedRace.getRace().getName() + " in "
|
||||
logger.fine("Computed virtual wind fixes from maneuvers for race " + trackedRace.getRace().getName() + " in "
|
||||
+ (System.currentTimeMillis() - start) + "ms");
|
||||
clusters = clusterStructure.getA();
|
||||
tackClusters = clusterStructure.getB();
|
||||
@@ -387,9 +387,7 @@ public class ManeuverBasedWindEstimationTrackImpl extends WindTrackImpl {
|
||||
*/
|
||||
private Triple<Set<Cluster<ManeuverClassification, Pair<ScalableBearing, ScalableDouble>, Pair<Bearing, Double>, ScalableBearingAndScalableDouble>>, List<Cluster<ManeuverClassification, Pair<ScalableBearing, ScalableDouble>, Pair<Bearing, Double>, ScalableBearingAndScalableDouble>>, List<Cluster<ManeuverClassification, Pair<ScalableBearing, ScalableDouble>, Pair<Bearing, Double>, ScalableBearingAndScalableDouble>>> analyzeRace(
|
||||
boolean waitForLatest) throws NotEnoughDataHasBeenAddedException {
|
||||
logger.info("Starting wind estimation");
|
||||
final Map<Maneuver, CompetitorAndBoat> maneuvers = getAllManeuvers(waitForLatest);
|
||||
logger.info("Maneuvers fixed have been queried");
|
||||
// cluster into eight clusters by middle COG first, then aggregate tack likelihoods for each, and jibe
|
||||
// likelihoods for opposite cluster
|
||||
final int numberOfClusters = 16;
|
||||
@@ -405,7 +403,7 @@ public class ManeuverBasedWindEstimationTrackImpl extends WindTrackImpl {
|
||||
IntStream.range(0, numberOfClusters / 2).mapToObj(
|
||||
(i) -> new Pair<>(new DegreeBearingImpl(((double) i) * 360. / (double) numberOfClusters
|
||||
/ 2), -45.))));
|
||||
logger.info("K-Means maneuver clusterer for wind estimation took " + clusterer.getNumberOfIterations()
|
||||
logger.fine("K-Means maneuver clusterer for wind estimation took " + clusterer.getNumberOfIterations()
|
||||
+ " iterations");
|
||||
final Set<Cluster<ManeuverClassification, Pair<ScalableBearing, ScalableDouble>, Pair<Bearing, Double>, ScalableBearingAndScalableDouble>> clusters = clusterer
|
||||
.getClusters();
|
||||
|
||||
Reference in New Issue
Block a user