Skip to content

Commit a5f7da1

Browse files
committed
Migrated to rule_engine for mode inference and added tests.
- Created TestMatchStops.py with full test coverage for transit stop matching functionality - Updated match_stops.py to incorporate caching of overpass api results - Implemented TestRuleEngine.py with test cases for mode inference rules. Originally there was no test coverage. This PR seeks to rectify that. See: e-mission#1026 (comment). - Added additional cases based on 'bad' labels, see e-mission/e-mission-docs#1124 (comment) - Regenerated ground truths now that we are using rule engine. For Transit Matching Logic Tests: - Test Overpass already tests the get_stops_near and predicted_transit_modes. TestMatchStops focuses on the caching mechanism to validate it works. For RuleEngine Tests: - Seeks to test several mode predictions such as walking, cycling, driving, etc based on different factors. - Cases include empty sections, AirOrHSR, Motorized, Unknown, Combination - Added test based on prefixed like 'XMAS:Train' added shankari xmas real data to test behavior on prefix modes like XMAS:Train rev
1 parent ddef967 commit a5f7da1

File tree

150 files changed

+1454353
-13
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+1454353
-13
lines changed

emission/analysis/classification/inference/mode/rule_engine.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,14 @@ def predictModesStep(self):
6868
(section_entry.get_id(),
6969
section_entry.data.start_fmt_time, section_entry.data.end_fmt_time) +
7070
'~' * 10)
71-
if section_entry.data.sensed_mode == ecwma.MotionTypes.AIR_OR_HSR:
72-
predictedProb.append({'AIR_OR_HSR': 1})
73-
else:
74-
predictedProb.append(get_prediction(i, section_entry))
71+
try:
72+
if section_entry.data.sensed_mode == ecwma.MotionTypes.AIR_OR_HSR:
73+
predictedProb.append({'AIR_OR_HSR': 1})
74+
else:
75+
predictedProb.append(get_prediction(i, section_entry))
76+
except Exception as e:
77+
logging.error(f"Found {e} while inferring sensed modes, skipping {section_entry.get_id()} and {section_entry.user_id}, starting at {section_entry.data.start_fmt_time}")
78+
logging.exception(e)
7579

7680
return predictedProb
7781

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"type": "relation", "id": 1027213, "members": [{"type": "way", "ref": 685743128, "role": ""}, {"type": "way", "ref": 685743129, "role": ""}, {"type": "way", "ref": 42369342, "role": ""}, {"type": "way", "ref": 639485117, "role": ""}, {"type": "way", "ref": 145470502, "role": ""}, {"type": "way", "ref": 145470498, "role": ""}, {"type": "way", "ref": 23725173, "role": ""}, {"type": "way", "ref": 789366777, "role": ""}, {"type": "way", "ref": 690760150, "role": ""}, {"type": "way", "ref": 690760151, "role": ""}, {"type": "way", "ref": 23725172, "role": ""}, {"type": "way", "ref": 573844751, "role": ""}, {"type": "way", "ref": 18858979, "role": ""}, {"type": "way", "ref": 417103949, "role": ""}, {"type": "way", "ref": 417103942, "role": ""}, {"type": "way", "ref": 1055694418, "role": ""}, {"type": "way", "ref": 417103958, "role": ""}, {"type": "way", "ref": 417103945, "role": ""}, {"type": "way", "ref": 417103944, "role": ""}, {"type": "way", "ref": 145470501, "role": ""}, {"type": "way", "ref": 145470499, "role": ""}, {"type": "way", "ref": 4368969, "role": ""}, {"type": "way", "ref": 23725176, "role": ""}, {"type": "way", "ref": 1017451056, "role": ""}, {"type": "way", "ref": 23725175, "role": ""}, {"type": "way", "ref": 947533999, "role": ""}, {"type": "way", "ref": 264271356, "role": ""}, {"type": "way", "ref": 520418777, "role": ""}, {"type": "way", "ref": 124769659, "role": ""}, {"type": "way", "ref": 417103943, "role": ""}, {"type": "way", "ref": 18889690, "role": ""}, {"type": "way", "ref": 690058087, "role": ""}, {"type": "way", "ref": 865229616, "role": ""}, {"type": "way", "ref": 23892308, "role": ""}, {"type": "way", "ref": 865229617, "role": ""}, {"type": "way", "ref": 694409910, "role": ""}, {"type": "way", "ref": 694409909, "role": ""}, {"type": "way", "ref": 417103961, "role": ""}, {"type": "way", "ref": 417103938, "role": ""}, {"type": "way", "ref": 496781291, "role": ""}, {"type": "way", "ref": 417241489, "role": ""}, {"type": "way", "ref": 1205385767, "role": ""}, {"type": "way", "ref": 417241477, "role": ""}, {"type": "way", "ref": 1020836557, "role": ""}, {"type": "way", "ref": 23925644, "role": ""}, {"type": "way", "ref": 18165428, "role": ""}, {"type": "way", "ref": 86419810, "role": ""}, {"type": "way", "ref": 751434735, "role": ""}, {"type": "way", "ref": 51854196, "role": ""}, {"type": "way", "ref": 66215783, "role": ""}, {"type": "way", "ref": 308807585, "role": ""}, {"type": "way", "ref": 707878924, "role": ""}, {"type": "way", "ref": 417103965, "role": ""}, {"type": "way", "ref": 417103957, "role": ""}, {"type": "way", "ref": 165927214, "role": ""}, {"type": "way", "ref": 496843443, "role": ""}, {"type": "way", "ref": 417103952, "role": ""}, {"type": "way", "ref": 417103969, "role": ""}, {"type": "way", "ref": 5012269, "role": ""}, {"type": "way", "ref": 865229618, "role": ""}, {"type": "way", "ref": 417103946, "role": ""}, {"type": "way", "ref": 416943879, "role": ""}, {"type": "way", "ref": 614540731, "role": ""}, {"type": "way", "ref": 5012168, "role": ""}, {"type": "way", "ref": 496364805, "role": ""}, {"type": "way", "ref": 417103960, "role": ""}, {"type": "way", "ref": 417103962, "role": ""}, {"type": "way", "ref": 496364808, "role": ""}, {"type": "way", "ref": 708063780, "role": ""}, {"type": "way", "ref": 691273309, "role": ""}, {"type": "way", "ref": 496364807, "role": ""}, {"type": "way", "ref": 417103955, "role": ""}, {"type": "way", "ref": 496364806, "role": ""}, {"type": "way", "ref": 416943891, "role": ""}, {"type": "way", "ref": 416943886, "role": ""}, {"type": "way", "ref": 417094191, "role": ""}, {"type": "way", "ref": 691306415, "role": ""}, {"type": "way", "ref": 417094186, "role": ""}, {"type": "way", "ref": 4368970, "role": ""}, {"type": "way", "ref": 368323730, "role": ""}, {"type": "way", "ref": 5012170, "role": ""}, {"type": "way", "ref": 417094199, "role": ""}, {"type": "way", "ref": 417094214, "role": ""}, {"type": "way", "ref": 516413694, "role": ""}, {"type": "way", "ref": 5012169, "role": ""}, {"type": "way", "ref": 417094203, "role": ""}, {"type": "way", "ref": 777865458, "role": ""}, {"type": "way", "ref": 417094221, "role": ""}, {"type": "way", "ref": 698370593, "role": ""}, {"type": "way", "ref": 777865463, "role": ""}, {"type": "way", "ref": 698370594, "role": ""}, {"type": "way", "ref": 417094216, "role": ""}, {"type": "way", "ref": 417094217, "role": ""}, {"type": "way", "ref": 693795524, "role": ""}, {"type": "way", "ref": 417094197, "role": ""}, {"type": "way", "ref": 706460747, "role": ""}, {"type": "way", "ref": 772988467, "role": ""}, {"type": "way", "ref": 767314542, "role": ""}, {"type": "way", "ref": 417094208, "role": ""}, {"type": "way", "ref": 699689446, "role": ""}, {"type": "way", "ref": 772988469, "role": ""}, {"type": "way", "ref": 8941355, "role": ""}, {"type": "way", "ref": 699689447, "role": ""}, {"type": "way", "ref": 767318786, "role": ""}, {"type": "way", "ref": 699686161, "role": ""}, {"type": "way", "ref": 767318787, "role": ""}, {"type": "way", "ref": 767320312, "role": ""}, {"type": "way", "ref": 767314537, "role": ""}, {"type": "way", "ref": 699686920, "role": ""}, {"type": "way", "ref": 505634078, "role": ""}, {"type": "way", "ref": 1016493338, "role": ""}, {"type": "way", "ref": 506687022, "role": ""}, {"type": "way", "ref": 66215756, "role": ""}, {"type": "way", "ref": 691488058, "role": ""}, {"type": "way", "ref": 19260404, "role": ""}, {"type": "way", "ref": 691488056, "role": ""}, {"type": "way", "ref": 506687023, "role": ""}, {"type": "way", "ref": 505634080, "role": ""}, {"type": "way", "ref": 385389239, "role": ""}, {"type": "way", "ref": 409492954, "role": ""}, {"type": "way", "ref": 409492948, "role": ""}, {"type": "way", "ref": 66215779, "role": ""}, {"type": "way", "ref": 767314536, "role": ""}, {"type": "way", "ref": 767320313, "role": ""}, {"type": "way", "ref": 767318782, "role": ""}, {"type": "way", "ref": 699686160, "role": ""}, {"type": "way", "ref": 767318783, "role": ""}, {"type": "way", "ref": 699689448, "role": ""}, {"type": "way", "ref": 767318784, "role": ""}, {"type": "way", "ref": 772988470, "role": ""}, {"type": "way", "ref": 699689445, "role": ""}, {"type": "way", "ref": 699686164, "role": ""}, {"type": "way", "ref": 767314540, "role": ""}, {"type": "way", "ref": 772988468, "role": ""}, {"type": "way", "ref": 706460748, "role": ""}, {"type": "way", "ref": 694350499, "role": ""}, {"type": "way", "ref": 417094210, "role": ""}, {"type": "way", "ref": 417094223, "role": ""}, {"type": "way", "ref": 417094198, "role": ""}, {"type": "way", "ref": 777865464, "role": ""}, {"type": "way", "ref": 8379917, "role": ""}, {"type": "way", "ref": 777865457, "role": ""}, {"type": "way", "ref": 516413693, "role": ""}, {"type": "way", "ref": 516413695, "role": ""}, {"type": "way", "ref": 417094205, "role": ""}, {"type": "way", "ref": 417094219, "role": ""}, {"type": "way", "ref": 496364802, "role": ""}, {"type": "way", "ref": 5012171, "role": ""}, {"type": "way", "ref": 1069508676, "role": ""}, {"type": "way", "ref": 417094195, "role": ""}, {"type": "way", "ref": 514327803, "role": ""}, {"type": "way", "ref": 514327805, "role": ""}, {"type": "way", "ref": 417094189, "role": ""}, {"type": "way", "ref": 416943871, "role": ""}, {"type": "way", "ref": 417100878, "role": ""}, {"type": "way", "ref": 385389231, "role": ""}, {"type": "way", "ref": 385389245, "role": ""}, {"type": "way", "ref": 417100873, "role": ""}, {"type": "way", "ref": 38133292, "role": ""}, {"type": "way", "ref": 573807430, "role": ""}, {"type": "way", "ref": 417100883, "role": ""}, {"type": "way", "ref": 707878808, "role": ""}, {"type": "way", "ref": 573807421, "role": ""}, {"type": "way", "ref": 417100860, "role": ""}, {"type": "way", "ref": 694509125, "role": ""}, {"type": "way", "ref": 702540632, "role": ""}, {"type": "way", "ref": 66215773, "role": ""}, {"type": "way", "ref": 703161721, "role": ""}, {"type": "way", "ref": 703161720, "role": ""}, {"type": "way", "ref": 694508868, "role": ""}, {"type": "way", "ref": 517601226, "role": ""}, {"type": "way", "ref": 517601224, "role": ""}, {"type": "way", "ref": 703157854, "role": ""}, {"type": "way", "ref": 417003235, "role": ""}, {"type": "way", "ref": 426363142, "role": ""}, {"type": "way", "ref": 1300876711, "role": ""}, {"type": "way", "ref": 1300876710, "role": ""}, {"type": "way", "ref": 417003256, "role": ""}, {"type": "way", "ref": 52869625, "role": ""}, {"type": "way", "ref": 417003246, "role": ""}, {"type": "way", "ref": 417003269, "role": ""}], "tags": {"distance": "5.7 miles", "name": "Shoreline-Miramonte Corridor", "network": "lcn", "ref": "05A", "route": "bicycle", "type": "route"}}]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"type": "relation", "id": 1289271, "members": [{"type": "way", "ref": 86713643, "role": ""}, {"type": "way", "ref": 170062884, "role": ""}, {"type": "way", "ref": 86713624, "role": ""}, {"type": "way", "ref": 1351977922, "role": ""}, {"type": "way", "ref": 199725336, "role": ""}, {"type": "way", "ref": 32589967, "role": ""}, {"type": "way", "ref": 86713628, "role": ""}, {"type": "way", "ref": 18176078, "role": ""}, {"type": "way", "ref": 18176077, "role": ""}, {"type": "way", "ref": 18168650, "role": ""}, {"type": "way", "ref": 8964782, "role": ""}, {"type": "way", "ref": 674363996, "role": ""}, {"type": "way", "ref": 8964780, "role": ""}, {"type": "way", "ref": 86713609, "role": ""}, {"type": "way", "ref": 691508758, "role": ""}, {"type": "way", "ref": 8939106, "role": ""}, {"type": "way", "ref": 691298038, "role": ""}, {"type": "way", "ref": 614540730, "role": ""}, {"type": "way", "ref": 496364803, "role": ""}, {"type": "way", "ref": 691305056, "role": ""}, {"type": "way", "ref": 691305053, "role": ""}, {"type": "way", "ref": 691305154, "role": ""}, {"type": "way", "ref": 691305153, "role": ""}, {"type": "way", "ref": 685945281, "role": ""}, {"type": "way", "ref": 184500462, "role": ""}, {"type": "way", "ref": 415366794, "role": ""}, {"type": "way", "ref": 614540733, "role": ""}, {"type": "way", "ref": 690733313, "role": ""}, {"type": "way", "ref": 690733314, "role": ""}, {"type": "way", "ref": 8928840, "role": ""}, {"type": "way", "ref": 690733315, "role": ""}, {"type": "way", "ref": 86713586, "role": ""}, {"type": "way", "ref": 690751332, "role": ""}, {"type": "way", "ref": 86713587, "role": ""}, {"type": "way", "ref": 86713588, "role": ""}, {"type": "way", "ref": 929083224, "role": ""}, {"type": "way", "ref": 929083225, "role": ""}, {"type": "way", "ref": 8928242, "role": ""}, {"type": "way", "ref": 86713565, "role": ""}, {"type": "way", "ref": 694320807, "role": ""}, {"type": "way", "ref": 699020622, "role": ""}, {"type": "way", "ref": 10328973, "role": ""}, {"type": "way", "ref": 686717774, "role": ""}, {"type": "way", "ref": 697027506, "role": ""}, {"type": "way", "ref": 200671907, "role": ""}, {"type": "way", "ref": 700179957, "role": ""}, {"type": "way", "ref": 700179958, "role": ""}, {"type": "way", "ref": 200671906, "role": ""}, {"type": "way", "ref": 1028211912, "role": ""}, {"type": "way", "ref": 1028211911, "role": ""}, {"type": "way", "ref": 1285815348, "role": ""}, {"type": "way", "ref": 1285815349, "role": ""}, {"type": "way", "ref": 700179960, "role": ""}, {"type": "way", "ref": 921824851, "role": ""}, {"type": "way", "ref": 1285815309, "role": ""}, {"type": "way", "ref": 1285815310, "role": ""}], "tags": {"name": "Mountain View Bicycle Boulevard", "network": "lcn", "route": "bicycle", "type": "route"}}]

emission/net/ext_service/transit_matching/cache/07a26e7054021d1cc485701f213a1e04.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"type": "relation", "id": 1289271, "members": [{"type": "way", "ref": 86713643, "role": ""}, {"type": "way", "ref": 170062884, "role": ""}, {"type": "way", "ref": 86713624, "role": ""}, {"type": "way", "ref": 1351977922, "role": ""}, {"type": "way", "ref": 199725336, "role": ""}, {"type": "way", "ref": 32589967, "role": ""}, {"type": "way", "ref": 86713628, "role": ""}, {"type": "way", "ref": 18176078, "role": ""}, {"type": "way", "ref": 18176077, "role": ""}, {"type": "way", "ref": 18168650, "role": ""}, {"type": "way", "ref": 8964782, "role": ""}, {"type": "way", "ref": 674363996, "role": ""}, {"type": "way", "ref": 8964780, "role": ""}, {"type": "way", "ref": 86713609, "role": ""}, {"type": "way", "ref": 691508758, "role": ""}, {"type": "way", "ref": 8939106, "role": ""}, {"type": "way", "ref": 691298038, "role": ""}, {"type": "way", "ref": 614540730, "role": ""}, {"type": "way", "ref": 496364803, "role": ""}, {"type": "way", "ref": 691305056, "role": ""}, {"type": "way", "ref": 691305053, "role": ""}, {"type": "way", "ref": 691305154, "role": ""}, {"type": "way", "ref": 691305153, "role": ""}, {"type": "way", "ref": 685945281, "role": ""}, {"type": "way", "ref": 184500462, "role": ""}, {"type": "way", "ref": 415366794, "role": ""}, {"type": "way", "ref": 614540733, "role": ""}, {"type": "way", "ref": 690733313, "role": ""}, {"type": "way", "ref": 690733314, "role": ""}, {"type": "way", "ref": 8928840, "role": ""}, {"type": "way", "ref": 690733315, "role": ""}, {"type": "way", "ref": 86713586, "role": ""}, {"type": "way", "ref": 690751332, "role": ""}, {"type": "way", "ref": 86713587, "role": ""}, {"type": "way", "ref": 86713588, "role": ""}, {"type": "way", "ref": 929083224, "role": ""}, {"type": "way", "ref": 929083225, "role": ""}, {"type": "way", "ref": 8928242, "role": ""}, {"type": "way", "ref": 86713565, "role": ""}, {"type": "way", "ref": 694320807, "role": ""}, {"type": "way", "ref": 699020622, "role": ""}, {"type": "way", "ref": 10328973, "role": ""}, {"type": "way", "ref": 686717774, "role": ""}, {"type": "way", "ref": 697027506, "role": ""}, {"type": "way", "ref": 200671907, "role": ""}, {"type": "way", "ref": 700179957, "role": ""}, {"type": "way", "ref": 700179958, "role": ""}, {"type": "way", "ref": 200671906, "role": ""}, {"type": "way", "ref": 1028211912, "role": ""}, {"type": "way", "ref": 1028211911, "role": ""}, {"type": "way", "ref": 1285815348, "role": ""}, {"type": "way", "ref": 1285815349, "role": ""}, {"type": "way", "ref": 700179960, "role": ""}, {"type": "way", "ref": 921824851, "role": ""}, {"type": "way", "ref": 1285815309, "role": ""}, {"type": "way", "ref": 1285815310, "role": ""}], "tags": {"name": "Mountain View Bicycle Boulevard", "network": "lcn", "route": "bicycle", "type": "route"}}]

emission/net/ext_service/transit_matching/cache/08ed9a99c9f584307b2aca87e0f12fa0.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

emission/net/ext_service/transit_matching/cache/0af1ebb67f58ed12034da08c0943c1ec.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

emission/net/ext_service/transit_matching/cache/0bb33c5f1a3bed6cc8b6817d29db561b.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

emission/net/ext_service/transit_matching/cache/0e4ce3e5b5e324abc8ec8612a33b2967.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

emission/net/ext_service/transit_matching/cache/0ff1fa70364b8d5f18958b98c374963b.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

emission/net/ext_service/transit_matching/cache/11507136107c150b5cb38678af55923e.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

emission/net/ext_service/transit_matching/cache/11b18683e0a25eabf4be3964cfee1ec9.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

emission/net/ext_service/transit_matching/cache/11eadc6afe7fcb361d06dc56ac6b225e.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)