mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-15 06:49:56 +00:00
Merge branch 'master' into translation
This commit is contained in:
commit
605030e2fc
21 files changed
+52
-13
No files matched your search
Executable → Regular
+7
-1
@@ -36,7 +36,13 @@
|
||||
#Define ARCHIVE_IP 172.31.21.139
|
||||
#Define ARCHIVE_IP 172.31.23.47
|
||||
#Define ARCHIVE_IP 172.31.20.62
|
||||
Define ARCHIVE_IP 172.31.20.131
|
||||
#Define ARCHIVE_IP 172.31.20.131
|
||||
#Define ARCHIVE_IP 172.31.47.208
|
||||
#Define ARCHIVE_IP 172.31.41.14
|
||||
#Define ARCHIVE_IP 172.31.34.59
|
||||
#Define ARCHIVE_IP 172.31.46.41
|
||||
#Define ARCHIVE_IP 172.31.44.232
|
||||
Define ARCHIVE_IP 172.31.46.28
|
||||
|
||||
<Macro ArchiveRewrite>
|
||||
Use Rewrite ${ARCHIVE_IP} 8888
|
||||
|
||||
@@ -17,12 +17,16 @@
|
||||
|
||||
## SERVER STATUS
|
||||
Use Status ec2-54-229-94-254.eu-west-1.compute.amazonaws.com internal-server-status
|
||||
Use Status 172.31.16.242 internal-server-status
|
||||
Use Status 172.31.42.171 internal-server-status
|
||||
Use Status 127.0.0.1 internal-server-status
|
||||
|
||||
# Uncomment the following and update the internal IP to what your Archive server candidate is
|
||||
#Use Plain archive-failover.sapsailing.com 172.31.23.135 8888
|
||||
Use Plain archive-candidate.sapsailing.com 172.31.20.131 8888
|
||||
Use Plain archive-failover.sapsailing.com 172.31.46.41 8888
|
||||
Use Plain archive-candidate.sapsailing.com 172.31.46.41 8888
|
||||
|
||||
Use Plain paris2024-candidate.sapsailing.com 172.31.15.188 8888
|
||||
|
||||
Use Plain kw2023-master.sapsailing.com 172.31.43.163 8896
|
||||
|
||||
Use Plain my-master.sapsailing.com 172.31.24.34 8888
|
||||
|
||||
@@ -47,7 +51,7 @@ Use Event-ARCHIVE birthday10.sapsailing.com c45be9c1-7324-4524-8843-4746ab5e7c2a
|
||||
Use Series-ARCHIVE austrianleague2021.sapsailing.com e7d48cfd-591e-45c3-afeb-7f32f0a7bbb5
|
||||
|
||||
# SCL 2021
|
||||
Use Event-ARCHIVE scl2021.sapasiling.com f98b7dc9-1d54-4c14-a07d-85c4cb1533ba
|
||||
Use Event-ARCHIVE scl2021.sapsailing.com f98b7dc9-1d54-4c14-a07d-85c4cb1533ba
|
||||
|
||||
# French League 2021
|
||||
Use Series-ARCHIVE frenchleague2021.sapsailing.com 5164ba5f-6f3b-4190-9a88-e3de1995dc53
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Use Home-ARCHIVE SRV.sapsailing.com
|
||||
@@ -0,0 +1 @@
|
||||
Use Event-ARCHIVE allianzregatta2023.sapsailing.com cd2b4bf8-cca4-4653-9ef0-763c7891dccf
|
||||
@@ -0,0 +1 @@
|
||||
Use Event-ARCHIVE helgacup2023.sapsailing.com c8c6c1a8-048f-49a0-b5b9-c713d80e96cb
|
||||
@@ -0,0 +1 @@
|
||||
Use Event-ARCHIVE kw2023.sapsailing.com ce287433-1c18-4215-92ae-32c741229f07
|
||||
@@ -0,0 +1 @@
|
||||
Use Event-ARCHIVE paris2024.sapsailing.com b8220cee-9ec7-4640-b8d8-f40e079456d5
|
||||
@@ -0,0 +1 @@
|
||||
Use Event-ARCHIVE pohodovaregata-23.sapsailing.com fce723aa-f356-4c2f-8f2d-c34588ef91c4
|
||||
@@ -0,0 +1 @@
|
||||
Use Home-ARCHIVE rheinwoche2019.sapsailing.com
|
||||
@@ -0,0 +1 @@
|
||||
Use Event-ARCHIVE sof2023.sapsailing.com 67cea8b6-6f56-4d73-949e-383aeffa12f7
|
||||
@@ -0,0 +1 @@
|
||||
Use Event-ARCHIVE tor2023.sapsailing.com f8d71906-72c5-468a-a001-1aa9c756af40
|
||||
@@ -13,4 +13,4 @@ RUN wget -O /tmp/rds.pem https://s3.amazonaws.com/rds-downloads/rds-combined-ca-
|
||||
&& /opt/sapjvm_8/bin/keytool -importcert -alias AWSRDS -file /tmp/rds.pem -keystore /opt/sapjvm_8/jre/lib/security/cacerts -noprompt -storepass changeit \
|
||||
&& rm /tmp/rds.pem
|
||||
RUN wget -O /home/sailing/WindEstimationModelsTraining.jar https://static.sapsailing.com/WindEstimationModelsTraining.jar
|
||||
CMD exec java "${MEMORY}" -Dmongo.uri="${MONGODB_URI}" -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump/ -Xlog:gc*=info,gc+region*=info,gc+ergo*=info,gc+humongous*=info,gc+liveness=trace:file=logs/gc.log:time,level,tags:filecount=10,filesize=100000000 -jar WindEstimationModelsTraining.jar "${BEARER_TOKEN}" ${TRAINING_DATA_PERCENT}
|
||||
CMD exec java "${MEMORY}" -Dmongo.uri="${MONGODB_URI}" -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump/ -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -jar WindEstimationModelsTraining.jar "${BEARER_TOKEN}" ${TRAINING_DATA_PERCENT}
|
||||
@@ -1,3 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//resources/stringmessages/Sailing_StringMessages.properties=UTF-8
|
||||
encoding//resources/stringmessages/Sailing_StringMessages_de.properties=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
+1
@@ -133,6 +133,7 @@ RelativeDistanceToAdvantageousEndOfLineAtStartOfRace=Relative Distance to Advant
|
||||
windFrom=True Wind Direction (TWD)
|
||||
windSpeedKnots=True Wind Speed (kts)
|
||||
speedInKnots=Speed (kts)
|
||||
speedInFullKnots=Speed in Full Knots (kts)
|
||||
bearing=Direction (°T)
|
||||
WindTrack=Wind Track
|
||||
timeSpentFoiling=Time spent foiling
|
||||
|
||||
+1
@@ -131,6 +131,7 @@ WindSourceName=Name der Windmessreihe
|
||||
windFrom=Wind aus Richtung (TWD)
|
||||
windSpeedKnots=Wahre Windgeschwindigkeit (kn)
|
||||
speedInKnots=Fahrt (kn)
|
||||
speedInFullKnots=Fahrt in ganzen Knoten (kn)
|
||||
bearing=Richtung (°)
|
||||
WindTrack=Windmessreihe
|
||||
timeSpentFoiling=Zeit auf Foils
|
||||
|
||||
@@ -90,7 +90,6 @@ public interface ScoringScheme extends Serializable {
|
||||
* may be required in case a "penalty" such as a redress needs to inspect the scores of other race
|
||||
* columns as well; implementations need to take great care not to cause endless recursions by
|
||||
* naively asking the leaderboard for scores which would recurse into this method
|
||||
* @param uncorrectedScoreProvider TODO
|
||||
*/
|
||||
Double getPenaltyScore(RaceColumn raceColumn, Competitor competitor, MaxPointsReason maxPointsReason,
|
||||
Integer numberOfCompetitorsInRace, NumberOfCompetitorsInLeaderboardFetcher numberOfCompetitorsInLeaderboardFetcher,
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public class LowPoint extends AbstractScoringSchemeImpl {
|
||||
NumberOfCompetitorsInLeaderboardFetcher numberOfCompetitorsInLeaderboardFetcher, TimePoint timePoint,
|
||||
Leaderboard leaderboard, Supplier<Double> uncorrectedScoreProvider) {
|
||||
Double result;
|
||||
if (maxPointsReason == MaxPointsReason.STP) {
|
||||
if (maxPointsReason == MaxPointsReason.STP) { // TODO bug5873: this is where other incremental IRMs need to be considered, too, with configurable increments
|
||||
final Double uncorrectedScore = uncorrectedScoreProvider.get();
|
||||
result = uncorrectedScore == null ? null : uncorrectedScore + 1.0;
|
||||
} else if (numberOfCompetitorsInRace == null || raceColumn.hasSplitFleetContiguousScoring()) {
|
||||
|
||||
+11
-1
@@ -14,6 +14,7 @@ import java.util.logging.Logger;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Course;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.NumberOfCompetitorsInLeaderboardFetcher;
|
||||
@@ -470,7 +471,16 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection {
|
||||
Integer result;
|
||||
final TrackedRace trackedRace = raceColumn.getTrackedRace(competitor);
|
||||
if (trackedRace == null) {
|
||||
result = numberOfCompetitorsInLeaderboardFetcher.getNumberOfCompetitorsInLeaderboard();
|
||||
final int estimatedSizeOfLargestFleet;
|
||||
final int numberOfCompetitorsInLeaderboard = numberOfCompetitorsInLeaderboardFetcher.getNumberOfCompetitorsInLeaderboard();
|
||||
if (raceColumn instanceof RaceColumnInSeries) {
|
||||
final int numberOfFleets = Util.size(((RaceColumnInSeries) raceColumn).getSeries().getFleets());
|
||||
estimatedSizeOfLargestFleet = numberOfCompetitorsInLeaderboard / numberOfFleets
|
||||
+ (int) Math.signum(numberOfCompetitorsInLeaderboard % numberOfFleets); // round up
|
||||
} else {
|
||||
estimatedSizeOfLargestFleet = numberOfCompetitorsInLeaderboard;
|
||||
}
|
||||
result = estimatedSizeOfLargestFleet;
|
||||
} else {
|
||||
result = Util.size(trackedRace.getRace().getCompetitors());
|
||||
}
|
||||
|
||||
+2
@@ -15,6 +15,8 @@
|
||||
<li>Bug fix: tracked races connected to more than one leaderboard column at the same time
|
||||
will now send their competitor and race status updates to all those column's race logs.
|
||||
This in particular fixes the special iQFOil set-up with their marathon races.</li>
|
||||
<li>Added speed in full knots (rounded) as a dimension to the GPS fixes in Data Mining.
|
||||
This can be used, e.g., to filter for outliers such as capsized or towed boats.</li>
|
||||
</ul>
|
||||
<h5 class="articleSubheadline">June 2023</h5>
|
||||
<ul class="bulletList">
|
||||
|
||||
+4
-4
@@ -175,8 +175,8 @@ public class ManeuverAndWindImporter {
|
||||
+ " competitor tracks\n\t" + importStatistics.maneuversCount
|
||||
+ " complete maneuver curves with estimation data\n\t" + importStatistics.racesWithHighQualityWindData
|
||||
+ " races with high quality wind data\n\t" + importStatistics.ignoredRegattas
|
||||
+ " ignored regatta due to error\n\t" + importStatistics.ingoredRaces
|
||||
+ " ingored races due to error\n--------------------------------------------\nTime passed: "
|
||||
+ " ignored regatta due to error\n\t" + importStatistics.ignoredRaces
|
||||
+ " ignored races due to error\n--------------------------------------------\nTime passed: "
|
||||
+ duration.toHours() + "h " + (duration.toMinutes() - duration.toHours() * 60) + "m "
|
||||
+ (duration.get(ChronoUnit.SECONDS) % 60) + "s");
|
||||
}
|
||||
@@ -216,7 +216,7 @@ public class ManeuverAndWindImporter {
|
||||
importRace(regattaName, trackedRaceName, importStatistics, bearerToken);
|
||||
} catch (Exception e) {
|
||||
synchronized (importStatistics) {
|
||||
importStatistics.ingoredRaces += 1;
|
||||
importStatistics.ignoredRaces += 1;
|
||||
}
|
||||
String extraLog = "";
|
||||
if (e instanceof HttpClientException) {
|
||||
@@ -415,7 +415,7 @@ public class ManeuverAndWindImporter {
|
||||
private int competitorTracksCount = 0;
|
||||
private int maneuversCount = 0;
|
||||
private int ignoredRegattas = 0;
|
||||
private int ingoredRaces = 0;
|
||||
private int ignoredRaces = 0;
|
||||
private int racesWithHighQualityWindData = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.sap.sse.common;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sse.datamining.annotations.Dimension;
|
||||
import com.sap.sse.datamining.annotations.Statistic;
|
||||
|
||||
/**
|
||||
@@ -77,6 +78,11 @@ public interface Speed extends Comparable<Speed>, Serializable {
|
||||
|
||||
@Statistic(messageKey="speedInKnots", resultDecimals=2)
|
||||
double getKnots();
|
||||
|
||||
@Dimension(messageKey="speedInFullKnots")
|
||||
default int getKnotsFloored() {
|
||||
return (int) Math.round(getKnots());
|
||||
}
|
||||
|
||||
double getMetersPerSecond();
|
||||
|
||||
|
||||
Reference in new issue
Block a user