Skip to content

Commit 8207701

Browse files
23 roll back jaakkola congestion timings (#24)
* save shapes of GTFS patterns * Roll back Jaakkola congestion penalties
1 parent 1054c1e commit 8207701

11 files changed

+14
-152
lines changed

src/main/java/com/conveyal/r5/streets/BasicTraversalTimeCalculator.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,36 +46,23 @@ public int traversalTimeSeconds (EdgeStore.Edge currentEdge, StreetMode streetMo
4646
* TODO pull this out into an interface to allow generalization to data from generalized cost tags
4747
*/
4848
@Override
49-
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode, CongestionLevel congestionLevel) {
49+
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode) {
5050
if (streetMode == StreetMode.CAR) {
5151
double angle = calculateNewTurnAngle(fromEdge, toEdge);
5252
if (angle < 27)
53-
return straightOnDelay(fromEdge, congestionLevel);
53+
return STRAIGHT_ON;
5454
else if (angle < 153)
5555
return driveOnRight ? LEFT_TURN : RIGHT_TURN;
5656
else if (angle < 207)
5757
return U_TURN;
5858
else if (angle < 333)
5959
return driveOnRight ? RIGHT_TURN : LEFT_TURN;
6060
else
61-
return straightOnDelay(fromEdge, congestionLevel);
61+
return STRAIGHT_ON;
6262
}
6363
return 0;
6464
}
6565

66-
/**
67-
* Get the delay for driving straight over a crossing, depending on fromEdge’s StreetClass, and the time of the day
68-
* Based on Jaakkonen (2013)
69-
*/
70-
private int straightOnDelay(int fromEdge, CongestionLevel congestionLevel){
71-
EdgeStore.Edge e = layer.edgeStore.getCursor(fromEdge);
72-
Byte streetClassCode = e.getStreetClassCode();
73-
return CrossingPenalty.getDelay(
74-
congestionLevel,
75-
JaakkonenStreetClass.fromR5StreetClassCode(streetClassCode)
76-
);
77-
}
78-
7966
/**
8067
* Gets in/out angles from edges and calculates angle between them
8168
* @return angle in degrees from 0-360

src/main/java/com/conveyal/r5/streets/CongestionLevel.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/main/java/com/conveyal/r5/streets/CrossingPenalty.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/main/java/com/conveyal/r5/streets/EdgeStore.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -729,15 +729,13 @@ public StreetRouter.State traverse (
729729
// This was rounding up, now truncating ... maybe change back for consistency?
730730
// int roundedTime = (int) Math.ceil(time);
731731

732-
CongestionLevel congestionLevel = CongestionLevel.fromProfileRequest(req);
733-
734732
int turnTimeSeconds = 0;
735733
// Negative backEdge means this state is not the result of traversing an edge (it's the start of a search).
736734
if (s0.backEdge >= 0) {
737735
if (req.reverseSearch) {
738-
turnTimeSeconds = timeCalculator.turnTimeSeconds(getEdgeIndex(), s0.backEdge, streetMode, congestionLevel);
736+
turnTimeSeconds = timeCalculator.turnTimeSeconds(getEdgeIndex(), s0.backEdge, streetMode);
739737
} else {
740-
turnTimeSeconds = timeCalculator.turnTimeSeconds(s0.backEdge, getEdgeIndex(), streetMode, congestionLevel);
738+
turnTimeSeconds = timeCalculator.turnTimeSeconds(s0.backEdge, getEdgeIndex(), streetMode);
741739
}
742740
}
743741
// TODO add checks for negative increment values to these functions.

src/main/java/com/conveyal/r5/streets/EdgeTraversalTimes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public int traversalTimeSeconds (EdgeStore.Edge currentEdge, StreetMode streetMo
3939
}
4040

4141
@Override
42-
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode, CongestionLevel congestionLevel) {
42+
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode) {
4343
if (streetMode == StreetMode.WALK) {
4444
return walkTraversalTimes.turnTimeSeconds(fromEdge, toEdge);
4545
} else if (streetMode == StreetMode.BICYCLE) {

src/main/java/com/conveyal/r5/streets/JaakkonenStreetClass.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/java/com/conveyal/r5/streets/MultistageTraversalTimeCalculator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ public int traversalTimeSeconds (EdgeStore.Edge currentEdge, StreetMode streetMo
5151
}
5252

5353
@Override
54-
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode, CongestionLevel congestionLevel) {
55-
return base.turnTimeSeconds(fromEdge, toEdge, streetMode, congestionLevel);
54+
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode) {
55+
return base.turnTimeSeconds(fromEdge, toEdge, streetMode);
5656
}
5757

5858
}

src/main/java/com/conveyal/r5/streets/StreetRouter.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -752,8 +752,6 @@ public State getState (Split split) {
752752
// Start on the forward edge of the pair that was split
753753
EdgeStore.Edge e = streetLayer.edgeStore.getCursor(split.edge);
754754

755-
CongestionLevel congestionLevel = CongestionLevel.fromProfileRequest(profileRequest);
756-
757755
TIntList edgeList;
758756
if (profileRequest.reverseSearch) {
759757
edgeList = streetLayer.outgoingEdges.get(split.vertex1);
@@ -771,7 +769,7 @@ public State getState (Split split) {
771769
ret.streetMode = s.streetMode;
772770

773771
// figure out the turn cost
774-
int turnCost = this.timeCalculator.turnTimeSeconds(s.backEdge, split.edge, s.streetMode, congestionLevel);
772+
int turnCost = this.timeCalculator.turnTimeSeconds(s.backEdge, split.edge, s.streetMode);
775773
int traversalCost = (int) Math.round(split.distance0_mm / 1000d / e.calculateSpeed(profileRequest, s.streetMode));
776774

777775
// TODO length of perpendicular
@@ -800,7 +798,7 @@ public State getState (Split split) {
800798
}
801799
State ret = new State(-1, split.edge + 1, state);
802800
ret.streetMode = state.streetMode;
803-
int turnCost = this.timeCalculator.turnTimeSeconds(state.backEdge, split.edge + 1, state.streetMode, congestionLevel);
801+
int turnCost = this.timeCalculator.turnTimeSeconds(state.backEdge, split.edge + 1, state.streetMode);
804802
int traversalCost = (int) Math.round(split.distance1_mm / 1000d / e.calculateSpeed(profileRequest, state.streetMode));
805803
ret.distance += split.distance1_mm;
806804
// TODO length of perpendicular

src/main/java/com/conveyal/r5/streets/TraversalTimeCalculator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public interface TraversalTimeCalculator extends Serializable {
3939
*
4040
* @return the expected value of the time in seconds to make the turn.
4141
*/
42-
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode, CongestionLevel congestionLevel);
42+
public int turnTimeSeconds (int fromEdge, int toEdge, StreetMode streetMode);
4343

4444

4545
}

src/test/java/com/conveyal/r5/streets/BasicTraversalTimeCalculatorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public void testAngleSouthernHemisphere() throws Exception {
4343
public void testCost () throws Exception {
4444
setUp(false);
4545
BasicTraversalTimeCalculator calculator = new BasicTraversalTimeCalculator(streetLayer, true);
46-
assertEquals(calculator.LEFT_TURN, calculator.turnTimeSeconds(ee + 1, es, StreetMode.CAR, CongestionLevel.OFF_PEAK));
46+
assertEquals(calculator.LEFT_TURN, calculator.turnTimeSeconds(ee + 1, es, StreetMode.CAR));
4747
}
4848

4949
/**
@@ -58,4 +58,4 @@ public void testJtsAngle () {
5858
double a1 = Angle.angle(new Coordinate(10, 10), new Coordinate(9, 9));
5959
assertTrue(a1 < a0);
6060
}
61-
}
61+
}

0 commit comments

Comments
 (0)