mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-02 17:19:37 +00:00
add boat-class to polar-diagram to distinguish different turn-losses (in a switch-statement, to be replaced by wind-speed-dependent fit-function determined from polar-data-mining);
This commit is contained in:
1 parent
fdc503d53b
commit
739047f858
13 files changed
+41
-5
No files matched your search
@@ -1,3 +1,4 @@
|
||||
49er
|
||||
wind speed,0,6,8,10,12,14,16,20
|
||||
beat angles,45,43.4,41.8,38.9,37.5,36.8,36.3,36.9
|
||||
beat sog,0,6.435,7.678,8.129,8.448,8.679,8.712,8.734
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
49er
|
||||
wind speed,0,6,9,12,25
|
||||
beat angles,43,50.24,49.4,47.35,48.01
|
||||
beat sog,0,7.53,9.39,11.96,13.08
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
49er
|
||||
wind speed,0,6,8,10,12,14,16,20
|
||||
beat angles,45,43.4,41.8,38.9,37.5,36.8,36.3,36.9
|
||||
beat sog,0,6.435,7.678,8.129,8.448,8.679,8.712,8.734
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
49er
|
||||
wind speed,0,6,8,10,12,14,16,20
|
||||
beat angles,43,43,43,43,44,45,45.6,47
|
||||
beat sog,0,4.5,6.25,8,8.5,9,9.3,10
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
5O5
|
||||
wind speed,0,6,8,10,12,14,16,20
|
||||
beat angles,44,44,46.5,50,52,54,55,56
|
||||
beat sog,0,5,5.3,5.6,6,6.5,7,7
|
||||
|
||||
|
@@ -3,6 +3,7 @@ package com.sap.sailing.simulator.impl;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -14,6 +15,7 @@ public class PolarDiagram49 extends PolarDiagramBase {
|
||||
// this constructor creates an instance with a hard-coded set of values
|
||||
public PolarDiagram49() {
|
||||
|
||||
boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("49er", /* typicallyStartsUpwind */true);
|
||||
speedTable = new TreeMap<Speed, NavigableMap<Bearing, Speed>>();
|
||||
NavigableMap<Bearing, Speed> tableRow;
|
||||
|
||||
|
||||
+2
@@ -3,6 +3,7 @@ package com.sap.sailing.simulator.impl;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -15,6 +16,7 @@ public class PolarDiagram49Bethwaite extends PolarDiagramBase {
|
||||
// this constructor creates an instance with a hard-coded set of values
|
||||
public PolarDiagram49Bethwaite() {
|
||||
|
||||
boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("49er", /* typicallyStartsUpwind */true);
|
||||
beatAngles = new TreeMap<Speed, Bearing>();
|
||||
beatAngles.put(new KnotSpeedImpl(0), new DegreeBearingImpl(43.0));
|
||||
beatAngles.put(new KnotSpeedImpl(6), new DegreeBearingImpl(50.24));
|
||||
|
||||
+2
@@ -3,6 +3,7 @@ package com.sap.sailing.simulator.impl;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -15,6 +16,7 @@ public class PolarDiagram49ORC extends PolarDiagramBase {
|
||||
// this constructor creates an instance with a hard-coded set of values
|
||||
public PolarDiagram49ORC() {
|
||||
|
||||
boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("49er", /* typicallyStartsUpwind */true);
|
||||
speedTable = new TreeMap<Speed, NavigableMap<Bearing, Speed>>();
|
||||
NavigableMap<Bearing, Speed> tableRow;
|
||||
|
||||
|
||||
+3
@@ -3,6 +3,7 @@ package com.sap.sailing.simulator.impl;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -15,6 +16,8 @@ public class PolarDiagram49STG extends PolarDiagramBase {
|
||||
// this constructor creates an instance with a hard-coded set of values
|
||||
public PolarDiagram49STG() {
|
||||
|
||||
boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("49er", /* typicallyStartsUpwind */true);
|
||||
|
||||
speedTable = new TreeMap<Speed, NavigableMap<Bearing, Speed>>();
|
||||
NavigableMap<Bearing, Speed> tableRow;
|
||||
|
||||
|
||||
+4
@@ -3,6 +3,7 @@ package com.sap.sailing.simulator.impl;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -14,6 +15,9 @@ public class PolarDiagram505STG extends PolarDiagramBase {
|
||||
|
||||
// this constructor creates an instance with a hard-coded set of values
|
||||
public PolarDiagram505STG() {
|
||||
|
||||
boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("505", /* typicallyStartsUpwind */true);
|
||||
|
||||
speedTable = new TreeMap<Speed, NavigableMap<Bearing, Speed>>();
|
||||
NavigableMap<Bearing, Speed> tableRow;
|
||||
|
||||
|
||||
+15
-3
@@ -11,7 +11,9 @@ import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.BoatClassMasterdata;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.SpeedWithBearing;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -23,6 +25,7 @@ public class PolarDiagramBase implements PolarDiagram, Serializable {
|
||||
|
||||
private static final long serialVersionUID = 7465253094290674423L;
|
||||
|
||||
protected BoatClass boatClass;
|
||||
// the current speed and direction of the wind
|
||||
protected SpeedWithBearing windprev = new KnotSpeedWithBearingImpl(6, new DegreeBearingImpl(180));
|
||||
protected SpeedWithBearing wind = new KnotSpeedWithBearingImpl(6, new DegreeBearingImpl(180));
|
||||
@@ -88,10 +91,10 @@ public class PolarDiagramBase implements PolarDiagram, Serializable {
|
||||
|
||||
// this constructor creates an instance with a hard-coded set of values
|
||||
public PolarDiagramBase() {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
public PolarDiagramBase(PolarDiagramBase pd) {
|
||||
boatClass = pd.boatClass;
|
||||
speedTable = pd.speedTable;
|
||||
beatAngles = pd.beatAngles;
|
||||
beatSOG = pd.beatSOG;
|
||||
@@ -107,6 +110,7 @@ public class PolarDiagramBase implements PolarDiagram, Serializable {
|
||||
|
||||
wind = new KnotSpeedWithBearingImpl(0, new DegreeBearingImpl(180));
|
||||
|
||||
boatClass = null;
|
||||
speedTable = speeds;
|
||||
beatAngles = beats;
|
||||
jibeAngles = jibes;
|
||||
@@ -806,8 +810,16 @@ public class PolarDiagramBase implements PolarDiagram, Serializable {
|
||||
|
||||
@Override
|
||||
public long getTurnLoss() {
|
||||
// TODO Auto-generated method stub
|
||||
return 4000;
|
||||
// TODO: retrieve values from polar data mining
|
||||
int turnLoss;
|
||||
if (this.boatClass.getDisplayName().equals(BoatClassMasterdata.EXTREME_40.getDisplayName())) {
|
||||
turnLoss = 1000;
|
||||
} else if (this.boatClass.getDisplayName().equals(BoatClassMasterdata._5O5.getDisplayName())) {
|
||||
turnLoss = 5000;
|
||||
} else {
|
||||
turnLoss = 4000; // default value
|
||||
}
|
||||
return turnLoss;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+8
-1
@@ -12,6 +12,7 @@ import java.util.Map.Entry;
|
||||
import java.util.NavigableMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Speed;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -35,13 +36,19 @@ public class PolarDiagramCSV extends PolarDiagramBase {
|
||||
List<Bearing> jibeAngles = new ArrayList<Bearing>();
|
||||
|
||||
String line = "";
|
||||
line = bfr.readLine();
|
||||
if (line != null) {
|
||||
this.boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass(line, /* typicallyStartsUpwind */true);
|
||||
}
|
||||
|
||||
String[] elements = null;
|
||||
while (true) {
|
||||
while (line != null) {
|
||||
|
||||
line = bfr.readLine();
|
||||
if (line == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
elements = line.split(",");
|
||||
elements[0] = elements[0].replace(" ", "");
|
||||
elements[0] = elements[0].toLowerCase();
|
||||
|
||||
@@ -22,7 +22,6 @@ import com.sap.sailing.polars.regression.NotEnoughDataHasBeenAddedException;
|
||||
public class PolarDiagramGPS extends PolarDiagramBase {
|
||||
|
||||
private static final long serialVersionUID = -9219705955440602679L;
|
||||
private final BoatClass boatClass;
|
||||
private final PolarDataService polarData;
|
||||
private double avgSpeed;
|
||||
|
||||
|
||||
Reference in new issue
Block a user