diff --git a/java/com.sap.sailing.windestimation.lab/ManeuverAndWindImporter.launch b/java/com.sap.sailing.windestimation.lab/ManeuverAndWindImporter.launch
deleted file mode 100644
index 49c1b7115d1..00000000000
--- a/java/com.sap.sailing.windestimation.lab/ManeuverAndWindImporter.launch
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/RaceWithWindSourcesPersistenceManager.java b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/RaceWithWindSourcesPersistenceManager.java
index 297e09ca2de..724c9f3472a 100644
--- a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/RaceWithWindSourcesPersistenceManager.java
+++ b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/RaceWithWindSourcesPersistenceManager.java
@@ -17,20 +17,16 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
import com.sap.sailing.server.gateway.serialization.impl.RaceWindJsonSerializer;
import com.sap.sailing.windestimation.data.RaceWithWindSources;
import com.sap.sailing.windestimation.data.persistence.maneuver.AbstractPersistenceManager;
-import com.sap.sailing.windestimation.data.persistence.maneuver.PersistedElementsIterator;
import com.sap.sailing.windestimation.data.serialization.RaceWithEstimationDataDeserializer;
import com.sap.sailing.windestimation.data.serialization.RaceWithWindSourcesDeserializer;
-import com.sap.sse.common.TimePoint;
public class RaceWithWindSourcesPersistenceManager extends AbstractPersistenceManager {
- private static final String COLLECTION_NAME = "racesWithWind";
- private static final String WIND_SOURCES_COLLECTION_NAME = "windSources";
+ static final String COLLECTION_NAME = "racesWithWind";
+ private final WindSourcesPersistenceManager windSourcesPersistenceManager;
public RaceWithWindSourcesPersistenceManager() throws UnknownHostException {
- Document indexes = new Document(RaceWindJsonSerializer.START_TIME_POINT, 1);
- indexes.put(RaceWindJsonSerializer.END_TIME_POINT, -1);
- getDb().getCollection(getWindSourcesCollectionName()).createIndex(indexes);
+ windSourcesPersistenceManager = new WindSourcesPersistenceManager();
}
@Override
@@ -41,7 +37,7 @@ public class RaceWithWindSourcesPersistenceManager extends AbstractPersistenceMa
@Override
public void dropCollection() {
super.dropCollection();
- getDb().getCollection(getWindSourcesCollectionName()).drop();
+ windSourcesPersistenceManager.dropCollection();
}
@Override
@@ -52,7 +48,7 @@ public class RaceWithWindSourcesPersistenceManager extends AbstractPersistenceMa
JSONArray windSourceIdsJson = (JSONArray) raceJson
.get(RaceWithEstimationDataDeserializer.COMPETITOR_TRACKS);
JSONArray windSourcesJson = new JSONArray();
- MongoCollection windSourcesCollection = getDb().getCollection(getWindSourcesCollectionName());
+ MongoCollection windSourcesCollection = windSourcesPersistenceManager.getCollection();
for (Object idObject : windSourceIdsJson) {
Document dbWindSource = windSourcesCollection
.find(new Document(FIELD_DB_ID, new ObjectId((String) idObject))).first();
@@ -69,10 +65,6 @@ public class RaceWithWindSourcesPersistenceManager extends AbstractPersistenceMa
};
}
- public static String getWindSourcesCollectionName() {
- return COLLECTION_NAME + "." + WIND_SOURCES_COLLECTION_NAME;
- }
-
public void add(String regattaName, String raceName, JSONObject raceWithWindSourcesJson) {
JSONArray windSourcesJson = (JSONArray) raceWithWindSourcesJson.get(RaceWindJsonSerializer.WIND_SOURCES);
@@ -81,7 +73,7 @@ public class RaceWithWindSourcesPersistenceManager extends AbstractPersistenceMa
Document entry = parseJsonString(windSourceObj.toString());
dbWindSources.add(entry);
}
- MongoCollection windSourcesCollection = getDb().getCollection(getWindSourcesCollectionName());
+ MongoCollection windSourcesCollection = windSourcesPersistenceManager.getCollection();
windSourcesCollection.insertMany(dbWindSources);
BasicDBList dbWindSourceIds = new BasicDBList();
for (Document dbWindSource : dbWindSources) {
@@ -96,13 +88,4 @@ public class RaceWithWindSourcesPersistenceManager extends AbstractPersistenceMa
races.insertOne(dbObject);
}
- public PersistedElementsIterator getIteratorForEntriesIntersectingPeriod(
- TimePoint startTimePoint, TimePoint endTimePoint, double toleranceInSeconds) {
- double maxStartTime = endTimePoint.asMillis() + toleranceInSeconds * 1000;
- double maxEndTime = startTimePoint.asMillis() - toleranceInSeconds * 1000;
- String query = "{$and: [{'" + RaceWindJsonSerializer.START_TIME_POINT + "': {$lte: " + maxStartTime + "}}, {'"
- + RaceWindJsonSerializer.END_TIME_POINT + "': {$gte: " + maxEndTime + "}}]}";
- return getIterator(query);
- }
-
}
diff --git a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/WindSourcesPersistenceManager.java b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/WindSourcesPersistenceManager.java
index d80c152d635..a49d93227b8 100644
--- a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/WindSourcesPersistenceManager.java
+++ b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/persistence/twdtransition/WindSourcesPersistenceManager.java
@@ -21,15 +21,18 @@ import com.sap.sse.common.TimePoint;
public class WindSourcesPersistenceManager extends AbstractPersistenceManager {
+ private static final String WIND_SOURCES_COLLECTION_NAME = "windSources";
+
public WindSourcesPersistenceManager() throws UnknownHostException {
- BasicDBObject indexes = new BasicDBObject(RaceWindJsonSerializer.START_TIME_POINT, 1);
+ BasicDBObject indexes = new BasicDBObject("_id", 1);
+ indexes.put(RaceWindJsonSerializer.START_TIME_POINT, 1);
indexes.put(RaceWindJsonSerializer.END_TIME_POINT, -1);
getCollection().createIndex(indexes);
}
@Override
public String getCollectionName() {
- return RaceWithWindSourcesPersistenceManager.getWindSourcesCollectionName();
+ return RaceWithWindSourcesPersistenceManager.COLLECTION_NAME + "." + WIND_SOURCES_COLLECTION_NAME;
}
@Override
diff --git a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java
index fc0f0801f4e..f5e9eca6722 100644
--- a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java
+++ b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/model/SimpleModelsTrainingPart1.java
@@ -48,10 +48,10 @@ public class SimpleModelsTrainingPart1 {
PersistedManeuverClassifiersScorePrinter.main(args);
});
executeInThreadPool(() -> {
- DurationBasedTwdTransitionImporter.main(args);
+ DistanceBasedTwdTransitionImporter.main(args);
});
executeInThreadPool(() -> {
- DistanceBasedTwdTransitionImporter.main(args);
+ DurationBasedTwdTransitionImporter.main(args);
});
awaitThreadPoolCompletion();
AggregatedDurationBasedTwdTransitionImporter.createPersistenceManagerAndEnsureIndex();
@@ -77,6 +77,7 @@ public class SimpleModelsTrainingPart1 {
} while (JOptionPane.YES_OPTION != askDataCleaningFinished(AggregatedSingleDimensionType.DISTANCE));
showInfoAboutIntervalAdjustments(DistanceBasedTwdTransitionRegressorModelContext.class,
DistanceValueRange.class);
+ showInfoAboutRunPart2();
}
private static int askDataCleaningFinished(AggregatedSingleDimensionType dimension) {
@@ -94,6 +95,11 @@ public class SimpleModelsTrainingPart1 {
return JOptionPane.CLOSED_OPTION;
}
+ private static void showInfoAboutRunPart2() {
+ JOptionPane.showMessageDialog(null, "Now, run the class \"" + SimpleModelsTrainingPart2.class.getName()
+ + "\".\nThis will complete the training process.");
+ }
+
private static void showInfoAboutDataCleaning(AggregatedSingleDimensionType dimension) {
JOptionPane.showMessageDialog(null, "Now, clean the data for the " + dimension
+ " dimension.\nRemove instances from MongoDB collection \"" + dimension.getCollectioName()