Merge remote-tracking branch 'origin/master' into bug4134_2

This commit is contained in:
Alessandro Stoltenberg
2018-08-21 13:24:12 +02:00
2 changed files with 4 additions and 6 deletions
@@ -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;
}
@@ -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();