with the new traffic signal, add back the 520 EB onramp

This commit is contained in:
Dustin Carlino 2019-10-22 15:00:56 -07:00
parent 2d02f90d9b
commit 996eceea92
5 changed files with 105 additions and 10 deletions

View File

@ -816,6 +816,18 @@
"osm_node_id": -1569786907
},
"synthetic": true
},
{
"point": {
"inner_x": 1195.7391,
"inner_y": 418.7821
},
"intersection_type": "StopSign",
"label": null,
"orig_id": {
"osm_node_id": -1571780064
},
"synthetic": true
}
],
"add_roads": [
@ -1351,6 +1363,64 @@
"name": "Streety McStreetFace"
},
"turn_restrictions": []
},
{
"i1": 386,
"i2": 389,
"center_points": [
{
"inner_x": 1331.3542,
"inner_y": 393.7066
},
{
"inner_x": 1195.7391,
"inner_y": 418.7821
}
],
"orig_id": {
"osm_way_id": -1571780069,
"node1": -1569786822,
"node2": -1571780064
},
"osm_tags": {
"abst:endpt_back": "true",
"abst:endpt_fwd": "true",
"abst:osm_way_id": "-1571780069",
"abst:synthetic": "true",
"abst:synthetic_lanes": "d/",
"maxspeed": "25 mph",
"name": "Streety McStreetFace"
},
"turn_restrictions": []
},
{
"i1": 389,
"i2": 235,
"center_points": [
{
"inner_x": 1195.7391,
"inner_y": 418.7821
},
{
"inner_x": 1166.8399,
"inner_y": 401.814
}
],
"orig_id": {
"osm_way_id": -1571780074,
"node1": -1571780064,
"node2": 29447668
},
"osm_tags": {
"abst:endpt_back": "true",
"abst:endpt_fwd": "true",
"abst:osm_way_id": "-1571780074",
"abst:synthetic": "true",
"abst:synthetic_lanes": "d/",
"maxspeed": "25 mph",
"name": "Streety McStreetFace"
},
"turn_restrictions": []
}
],
"merge_short_roads": []

View File

@ -0,0 +1,24 @@
{
"gps_bounds": {
"min_lon": -122.3218,
"min_lat": 47.6315,
"max_lon": -122.2985,
"max_lat": 47.6475
},
"override_metadata": [],
"delete_roads": [
{
"osm_way_id": 6413596,
"node1": 1726081485,
"node2": 53149395
}
],
"delete_intersections": [
{
"osm_node_id": 1726081485
}
],
"add_intersections": [],
"add_roads": [],
"merge_short_roads": []
}

View File

@ -21,8 +21,7 @@ list.
## montlake
- full PSRC day finishes with traffic signals
- ~800 aborted trips, mostly from incomplete 520 fixes
- adding the eastbound onramp breaks the traffic signal
- ~300 aborted trips, no free car available
## 23rd

View File

@ -659,6 +659,7 @@ impl Model {
LaneType::Parking => Color::grey(0.2),
LaneType::Sidewalk => Color::grey(0.8),
LaneType::Biking => Color::rgb(15, 125, 75),
LaneType::SharedLeftTurn => Color::YELLOW,
};
if synthetic {
if unset {

View File

@ -41,10 +41,9 @@ impl ControlTrafficSignal {
if let Some(ts) = ControlTrafficSignal::four_oneways(map, id) {
results.push(("two-phase for 4 one-ways".to_string(), ts));
}
results.push((
"phase per road".to_string(),
ControlTrafficSignal::phase_per_road(map, id),
));
if let Some(ts) = ControlTrafficSignal::phase_per_road(map, id) {
results.push(("phase per road".to_string(), ts));
}
results.push((
"arbitrary assignment".to_string(),
ControlTrafficSignal::greedy_assignment(map, id),
@ -390,7 +389,7 @@ impl ControlTrafficSignal {
ts.validate(map).unwrap()
}
fn phase_per_road(map: &Map, i: IntersectionID) -> ControlTrafficSignal {
fn phase_per_road(map: &Map, i: IntersectionID) -> Option<ControlTrafficSignal> {
let mut phases = Vec::new();
let sorted_roads = map
.get_i(i)
@ -413,11 +412,13 @@ impl ControlTrafficSignal {
phase.yield_turns.insert(turn.id);
}
}
phases.push(phase);
// Might have a one-way outgoing road. Skip it.
if !phase.yield_turns.is_empty() {
phases.push(phase);
}
}
let ts = ControlTrafficSignal { id: i, phases };
// This must succeed
ts.validate(map).unwrap()
ts.validate(map).ok()
}
pub fn convert_to_ped_scramble(&mut self, map: &Map) {