diff --git a/README.md b/README.md index 7efc0d5..8a28d5d 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,10 @@ There are many potential ways to interact with the notebooks here. At one extrem 1. **Interactive, UI-only:** Launch the repo in binder and clone one of the example notebooks 1. **Interactive, CLI only:** 1. Fork + clone the repo + 1. Run `setup/setup_conda.sh ` to download the correct conda version if it's not already installed + 1. Run `~/miniconda-23.1.0/bin/conda init ` 1. Run `setup/setup.sh` to set up the local environment - 1. you may need to install the correct version of miniconda per instructions + 1. Run `setup/activate_conda.sh` in each terminal 1. Start a local notebook server (`juypter notebook`) ## Contributing ## diff --git a/setup/setup_conda.sh b/setup/setup_conda.sh old mode 100644 new mode 100755 diff --git a/transit_matching/analysis_helper.py b/transit_matching/analysis_helper.py new file mode 100644 index 0000000..f9f13c5 --- /dev/null +++ b/transit_matching/analysis_helper.py @@ -0,0 +1,99 @@ +import json +from transit_matching.motion_activity import get_sensed_mode +from transit_matching.overpass_parser import build_maps + +class AnalysisTaks: + def __init__(self, datastore_loc, locations, view, os, phone_label, trip_name, section_name, evaluation_range): + self.locations = locations + self.view = view + self.trip_name = trip_name + self.section_name = section_name + self.os = os + self.phone_label = phone_label + self.evaluation_range = evaluation_range + + self.stripped_trip_name = "_".join(self.trip_name.split("_")[:-1]) + self.stripped_section_name = "_".join(self.section_name.split("_")[:-1]) + + self.initial_time = locations.iloc[0]['ts'] + self.final_time = locations.iloc[-1]['ts'] + + self.phone_number = int(phone_label.split("-")[-1]) + + self.sensed_mode = get_sensed_mode(datastore_loc, view, os, phone_label, self.initial_time, self.final_time) + self.actual_mode = self.get_actual_mode() + + self.error = None + self.predicted_mode = None + self.path = None + self.modern = None + + def __str__(self): + return f'VIEW: {self.view.ljust(30)}PHONE: {(self.os + "-" + str(self.phone_number)).ljust(12)}TRIP: {self.stripped_trip_name.ljust(40)}SECTION: {self.stripped_section_name.ljust(40)}EVAL: {str(self.evaluation_range).ljust(4)}MODE: {self.predicted_mode.ljust(11)}| {self.actual_mode.ljust(11)}' + + def get_actual_mode(self): + if 'walk' in self.section_name: + return 'WALKING' + + f = open(f"spec_creation/final_sfbayarea/{self.view}.json", 'r') + trips = json.loads(f.read())['evaluation_trips'] + + trips_with_id = [n for n in trips if n['id'] == self.stripped_trip_name] + if len(trips_with_id) == 0: + return None + trip = trips_with_id[0] + + if 'legs' in trip: + sections_with_id = [n for n in trip['legs'] if n['id'] == self.stripped_section_name] + if len(sections_with_id) == 0: + return None + section = sections_with_id[0] + else: + section = trip + + f.close() + + return section['mode'] + + + def map_match(self, map_data, error_function): + if self.stripped_trip_name not in map_data: + map_data[self.stripped_trip_name] = {} + if self.stripped_section_name not in map_data[self.stripped_trip_name]: + map_data[self.stripped_trip_name][self.stripped_section_name] = build_maps(self.locations) + + error, path, mode, modern, distances = error_function(self.locations, map_data[self.stripped_trip_name][self.stripped_section_name], self.sensed_mode) + + self.error = error + self.path = path + self.predicted_mode = mode + self.modern = modern + self.distances = distances + + +def create_tasks(pvs, datastore_loc): + + tasks = [] + + for view, pv in pvs.items(): + for phone_os, phone_map in pv.map().items(): + for phone_label, phone_detail_map in phone_map.items(): + for evaluation_num in range(len(phone_detail_map["evaluation_ranges"])): + evaluation = phone_detail_map["evaluation_ranges"][evaluation_num] + for trip in evaluation["evaluation_trip_ranges"]: + for section in trip["evaluation_section_ranges"]: + locations = section['location_df'] + + if len(locations) <= 1: + continue + + task = AnalysisTaks(datastore_loc, locations, view, phone_os, phone_label, trip['trip_id'], section['trip_id'], evaluation_num) + + # If this trip is not in the timeline, skip this task + if task.actual_mode is None: + continue + + tasks.append(task) + print(f'created all tasks for {phone_label} on {view}') + + return tasks \ No newline at end of file diff --git a/transit_matching/error_calculations.py b/transit_matching/error_calculations.py new file mode 100644 index 0000000..e9df8a2 --- /dev/null +++ b/transit_matching/error_calculations.py @@ -0,0 +1,116 @@ +import numpy as np +from pyproj import Geod +from rtree import index + +import utm +import pyproj +import geopandas as gpd +import shapely as shp +import pandas as pd +import math + +g = pyproj.Geod(ellps='clrk66') + +def calc_error(path, locations): + locations_gdf = gpd.GeoDataFrame( + locations, + geometry=gpd.points_from_xy(locations.longitude, locations.latitude) + ) + + path_linestring = shp.LineString([(lon, lat) for lat, lon in path]) + + return dist_using_projection_adjusted(locations_gdf, path_linestring) + + +def _point_to_segment_distance(loc, p1, p2, geod): + loc_lat, loc_lon = loc + p1_lat, p1_lon = p1 + p2_lat, p2_lon = p2 + + if np.allclose(p1, p2): + _, _, dist = geod.inv(p1_lon, p1_lat, loc_lon, loc_lat) + return dist + + az13, _, dist13 = geod.inv(p1_lon, p1_lat, loc_lon, loc_lat) + az12, _, dist12 = geod.inv(p1_lon, p1_lat, p2_lon, p2_lat) + + if dist12 < 1e-9: + return dist13 + + angle_diff_rad = np.radians(az13 - az12) + along_track_dist = dist13 * np.cos(angle_diff_rad) + + if along_track_dist < 0: + return dist13 + elif along_track_dist > dist12: + _, _, dist23 = geod.inv(p2_lon, p2_lat, loc_lon, loc_lat) + return dist23 + else: + return abs(dist13 * np.sin(angle_diff_rad)) + + +def geodesic_squared_error(path, locations, k_neighbors=7): + if len(path) < 2 or len(locations) == 0: + return 0.0 + + geod = Geod(ellps='WGS84') + p1_pts = path[:-1] + p2_pts = path[1:] + num_segments = len(p1_pts) + + idx = index.Index() + for i in range(num_segments): + p1 = p1_pts[i] + p2 = p2_pts[i] + bbox = ( + min(p1[1], p2[1]), + min(p1[0], p2[0]), + max(p1[1], p2[1]), + max(p1[0], p2[0]), + ) + idx.insert(i, bbox) + + total_squared_error = 0.0 + + for loc in locations: + loc_lon, loc_lat = loc[1], loc[0] + + num_candidates = min(k_neighbors, num_segments) + candidate_indices = list(idx.nearest((loc_lon, loc_lat, loc_lon, loc_lat), num_candidates)) + + min_dist_for_loc = float('inf') + for i in candidate_indices: + dist = _point_to_segment_distance(loc, p1_pts[i], p2_pts[i], geod) + if dist < min_dist_for_loc: + min_dist_for_loc = dist + + total_squared_error += min_dist_for_loc ** 2 + + return total_squared_error + +def dist_using_projection_adjusted(location_gpdf, gt_linestring): + lat = gt_linestring.centroid.y + adjusted_points = [shp.geometry.Point(coord[0] / math.cos(math.radians(lat)), coord[1]) for coord in list(gt_linestring.coords)] + unadjusted_points = [shp.geometry.Point(coord[0], coord[1]) for coord in list(gt_linestring.coords)] + + adjusted_data = [] + unadjusted_data = [] + for p in zip(adjusted_points, unadjusted_points): + row = {} + row["geometry"] = p[0] + adjusted_data.append(row) + row2 = {} + row2["geometry"] = p[1] + unadjusted_data.append(row2) + + adjusted_gt_gpdf = gpd.GeoDataFrame(adjusted_data, geometry="geometry") + unadjusted_gt_gpdf = gpd.GeoDataFrame(unadjusted_data, geometry="geometry") + + adjusted_location_linestring = shp.geometry.LineString([shp.geometry.Point(coord.x / math.cos(math.radians(lat)), coord.y) for coord in list(location_gpdf.geometry)]) + projections = adjusted_gt_gpdf.geometry.apply(lambda p: adjusted_location_linestring.project(p)) + proj_points = projections.apply(lambda d:adjusted_location_linestring.interpolate(d)) + + project_x = proj_points.apply(lambda p: p.x * math.cos(math.radians(lat))) + project_y = proj_points.apply(lambda p: p.y) + return pd.Series(g.inv(list(unadjusted_gt_gpdf.geometry.x), list(unadjusted_gt_gpdf.geometry.y), + list(project_x), list(project_y))[2], index=unadjusted_gt_gpdf.index) \ No newline at end of file diff --git a/transit_matching/matching.py b/transit_matching/matching.py new file mode 100644 index 0000000..c389c0a --- /dev/null +++ b/transit_matching/matching.py @@ -0,0 +1,107 @@ +import numpy as np +from mappymatch.constructs.trace import Trace +from mappymatch.matchers.lcss.lcss import LCSSMatcher +from pyproj import Geod, Transformer + +from transit_matching.error_calculations import calc_error +from transit_matching.overpass_parser import parse_relation + +def get_graph_match(df, nx_map): + trace = Trace.from_dataframe(df, lat_column="latitude", lon_column="longitude", xy=True) + + matcher = LCSSMatcher(nx_map) + + match_result = matcher.match_trace(trace) + + transformer = Transformer.from_crs("EPSG:3857", "EPSG:4326") + + if len(match_result.path) > 0: + path = [] + + for road in match_result.path: + for i in range(len(road.geom.coords.xy[0]) - 1): + path.append(transformer.transform(road.geom.coords.xy[0][i], road.geom.coords.xy[1][i])) + + path.append(transformer.transform(match_result.path[-1].geom.coords.xy[0][1], match_result.path[-1].geom.coords.xy[1][1])) + + path = np.array(path) + + distances = calc_error(path, df) + error = distances.mean() + + return (error, path, distances) + else: + return (float('inf'), [], []) + + + +def get_transit_match(df, data): + locations = df[['latitude', 'longitude']].to_numpy() + + relations = data['relations'] + edges = data['edges'] + stops = data['stops'] + geometry = data['geometry'] + + geod = Geod(ellps='WGS84') + + best_path = [] + best_error = float('inf') + best_mode = "" + best_distances = [] + # best_relation = -1 + + for relation in relations.keys(): + + stop_order = [n for n in relations[relation]['nodes'] if n in stops] + + firstNode = [-1, float('inf'), -1] + lastNode = [-1, float('inf'), -1] + + index = 0 + + for stop in stop_order: + node_loc = geometry[stop] + _, _, distance_first = geod.inv(locations[0][1], locations[0][0], node_loc[1], node_loc[0]) + _, _, distance_last = geod.inv(locations[-1][1], locations[-1][0], node_loc[1], node_loc[0]) + if distance_first < firstNode[1]: + firstNode = [stop, distance_first, index] + if distance_last < lastNode[1]: + lastNode = [stop, distance_last, index] + + index += 1 + + # The start point has to be before the end point + if firstNode[2] >= lastNode[2]: + continue + + passed_stops = stop_order[firstNode[2]:(lastNode[2]+1)] + + path = [] + + stop_edges = parse_relation(relation, relations, edges, stops, geometry) + + valid_route = True + for e in zip(passed_stops, passed_stops[1:]): + if e not in stop_edges: + valid_route = False + break + path.extend(stop_edges[e]) + + if not valid_route: + continue + + path = np.array(path) + + distances = calc_error(path, df) + error = distances.mean() + if error < best_error: + best_error = error + best_path = path + best_mode = relations[relation]['mode'] + best_distances = distances + # best_relation = relation + + return (best_error, best_path, best_mode, best_distances) + + diff --git a/transit_matching/motion_activity.py b/transit_matching/motion_activity.py new file mode 100644 index 0000000..f4105f6 --- /dev/null +++ b/transit_matching/motion_activity.py @@ -0,0 +1,96 @@ +import json +from pathlib import Path + +def parse_android_motion_activity(data): + output = {} + if 'agb' in data: + output['mode'] = data['agb'] + elif 'zzaEg' in data: + output['mode'] = data['zzaEg'] + elif 'zzbjA' in data: + output['mode'] = data['zzbjA'] + elif 'ajO' in data: + output['mode'] = data['ajO'] + elif 'zzaKM' in data: + output['mode'] = data['zzaKM'] + elif 'zzbhB' in data: + output['mode'] = data['zzbhB'] + + if 'agc' in data: + output['confidence'] = data['agc'] + elif 'zzaEh' in data: + output['confidence'] = data['zzaEh'] + elif 'zzbjB' in data: + output['confidence'] = data['zzbjB'] + elif 'ajP' in data: + output['confidence'] = data['ajP'] + elif 'zzaKN' in data: + output['confidence'] = data['zzaKN'] + elif 'zzbhC' in data: + output['confidence'] = data['zzbhC'] + + return output + +def parse_ios_motion_activity(data): + output = {'mode': 4} + if data['confidence'] == 'high': + output['confidence'] = 100 + elif data['confidence'] == 'medium': + output['confidence'] = 75 + elif data['confidence'] == 'low': + output['confidence'] = 50 + + if data['automotive']: + output['mode'] = 0 + elif data['cycling']: + output['mode'] = 1 + elif data['walking'] or data['running']: + output['mode'] = 2 + + return output + +def get_sensed_mode(datastore_loc, view, os, phone_str, start_ts, end_ts): + motion_activity_dir = datastore_loc + phone_str + "/" + view + "/background~motion_activity" + dir_path = Path(motion_activity_dir) + + modes = [] + + if dir_path.is_dir(): + for entry in dir_path.iterdir(): + if entry.is_file(): + file = open(entry, 'r') + content = json.loads(file.read()) + for point in content: + data = point['data'] + + if 'write_ts' not in data: + continue + + + if start_ts < data['write_ts'] and data['write_ts'] < end_ts: + if os == 'android': + modes.append(parse_android_motion_activity(data)) + if os == 'ios': + modes.append(parse_ios_motion_activity(data)) + + + weights = {} + + for point in modes: + # 0: vehicle + # 1: bicycle + # 2: on_foot + + if point['mode'] > 2: + continue + + if point['mode'] not in weights: + weights[point['mode']] = 0 + + weights[point['mode']] += round((point['confidence'] / 100) ** 2 * 100) + + if len(weights) == 0: + return 2 + + best_mode = max(weights, key=weights.get) + return best_mode \ No newline at end of file diff --git a/transit_matching/overpass_parser.py b/transit_matching/overpass_parser.py new file mode 100644 index 0000000..3242987 --- /dev/null +++ b/transit_matching/overpass_parser.py @@ -0,0 +1,148 @@ +import requests +import time +from shapely.geometry import MultiLineString, LineString +import datetime +from mappymatch.maps.nx.nx_map import NxMap, NetworkType +from mappymatch.constructs.trace import Trace +from mappymatch.constructs.geofence import Geofence + +overpass_url = "https://overpass-api.de/api/interpreter" +network_types = [NetworkType.DRIVE, NetworkType.BIKE, NetworkType.WALK] +route_types = ["bus", "train", "subway", "light_rail"] + +def overpass_query(query): + payload = { + "data": query + } + + try: + response = requests.post(overpass_url, data=payload) + response.raise_for_status() + return response.json() + except requests.exceptions.RequestException as e: + print(f'error in request: {e}, retrying in 1 minute') + time.sleep(60) + return overpass_query(query) + + +def make_query(route_types, geofence, timestamp=None): + route_type = "|".join(route_types) + + boundary_obj = geofence.geometry.boundary + all_points = [] + if isinstance(boundary_obj, MultiLineString): + for line in boundary_obj.geoms: + all_points.extend(line.coords) + elif isinstance(boundary_obj, LineString): + all_points.extend(boundary_obj.coords) + + boundary = [(point[1], point[0]) for point in all_points] + flat_list = [coord for point in boundary for coord in point] + poly_string = " ".join(map(str, flat_list)) + + if timestamp is None: + overpass_date_setting = "" + else: + dt_object_utc = datetime.datetime.fromtimestamp( + timestamp, + tz=datetime.timezone.utc + ) + overpass_time_string = dt_object_utc.isoformat().replace('+00:00', 'Z') + overpass_date_setting = f'[date:"{overpass_time_string}"]' + + data = overpass_query(f""" + [out:json] + [timeout:90] + {overpass_date_setting}; + + relation["route"~"^({route_type})$"](poly:"{poly_string}") -> .routes; + .routes; + out body; + + ( + way(r.routes)(poly:"{poly_string}"); + >; + ); + + out geom; + """)['elements'] + + edges = {} + geometry = {} + stops = {} + + relations = {} + + for n in data: + if n['type'] == 'way': + nodes = n['nodes'] + edges[n['id']] = set(zip(nodes, nodes[1:])) + if n['type'] == 'relation': + relations[n['id']] = {'mode': n['tags']['route'], 'ways': [w['ref'] for w in n['members'] if w['type'] == 'way'], 'nodes': [w['ref'] for w in n['members'] if w['type'] == 'node']} + if n['type'] == 'node': + geometry[n['id']] = (n['lat'], n['lon']) + if 'tags' in n and 'public_transport' in n['tags']: + # Maybe check for what the public transport tag actually is + stops[n['id']] = (n['lat'], n['lon']) + + return {'edges': edges, 'geometry': geometry, 'stops': stops, 'relations': relations} + +def parse_relation(relation, relations, edges, stops, geometry): + pairs = set() + + for way in relations[relation]['ways']: + if way in edges: + pairs = pairs.union(edges[way]) + + e = {} + for a, b in pairs: + if a not in e: + e[a] = [] + if b not in e: + e[b] = [] + + e[a].append(b) + e[b].append(a) + + relation_stops = set() + for n, _ in e.items(): + if n in stops and n in relations[relation]['nodes']: + relation_stops.add(n) + + stop_edges = {} # (a, b) : geom + + for stop in relation_stops: + queue = [(stop, set([stop]), [geometry[stop]])] + while len(queue) > 0: + node, visited, geom = queue.pop(0) + + connections = e[node] + + for connection in connections: + if connection in visited: + continue + + new_geom = geom[:] + new_geom.append(geometry[connection]) + if connection in relation_stops: + stop_edges[(stop, connection)] = new_geom + continue + + queue.append((connection, visited.union([connection]), new_geom)) + + return stop_edges + +def build_maps(df): + ts = df.iloc[0]['ts'] + trace = Trace.from_dataframe(df, lat_column="latitude", lon_column="longitude", xy=True) + geofence = Geofence.from_trace(trace, padding=3e3) + + nx_maps = [NxMap.from_geofence(geofence, network_type=n) for n in network_types] + + return { + 'ts': ts, + 'geofence': geofence, + 'nx_maps': nx_maps, + 'historic': make_query(route_types, geofence, timestamp=ts), + 'modern': make_query(route_types, geofence) + } \ No newline at end of file diff --git a/transit_matching_evaluation.ipynb b/transit_matching_evaluation.ipynb new file mode 100644 index 0000000..2658e0b --- /dev/null +++ b/transit_matching_evaluation.ipynb @@ -0,0 +1,4249 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "951577b5", + "metadata": {}, + "outputs": [], + "source": [ + "import folium\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import emeval.input.spec_details as eisd\n", + "import emeval.input.phone_view as eipv\n", + "from transit_matching.matching import get_graph_match, get_transit_match\n", + "from transit_matching.analysis_helper import create_tasks" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c20d8c2c", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_path(path, df):\n", + " locations = df[['latitude', 'longitude']]\n", + " locations = locations.to_numpy()\n", + " \n", + " m = folium.Map(location=path[0], zoom_start=15)\n", + " folium.PolyLine(\n", + " locations=path,\n", + " color='red',\n", + " weight=5,\n", + " opacity=0.8\n", + " ).add_to(m)\n", + "\n", + " for i in range(len(locations)):\n", + " folium.CircleMarker(\n", + " location=[locations[i][0], locations[i][1]],\n", + " radius=1\n", + " ).add_to(m)\n", + "\n", + " display(m)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "566d474e", + "metadata": {}, + "outputs": [], + "source": [ + "NON_TRANSIT_ERROR_FACTOR = 1.7\n", + "TRANSIT_ERROR_FACTOR = 1\n", + "MODERN_ERROR_FACTOR = 1.2\n", + "\n", + "mode_name_map = {0: 'CAR', 1: 'BIKE', 2: 'WALK'}\n", + "\n", + "def choose_best(df, map_data, non_transit_mode):\n", + " nx_map = map_data['nx_maps'][non_transit_mode]\n", + " best_mode = mode_name_map[non_transit_mode]\n", + " best_error, best_path, best_distances = get_graph_match(df, nx_map)\n", + " best_error *= NON_TRANSIT_ERROR_FACTOR\n", + " modern = True\n", + " \n", + " error_transit, path_transit, mode_transit, distances_transit = get_transit_match(df, map_data['historic'])\n", + " error_modern_transit, path_modern_transit, mode_modern_transit, distances_modern_transit = get_transit_match(df, map_data['modern'])\n", + " error_modern_transit *= MODERN_ERROR_FACTOR\n", + "\n", + " if error_modern_transit < best_error:\n", + " best_error, best_path, best_mode, best_distances = error_modern_transit, path_modern_transit, mode_modern_transit, distances_modern_transit\n", + "\n", + " if error_transit < best_error:\n", + " best_error, best_path, best_mode, best_distances = error_transit, path_transit, mode_transit, distances_transit\n", + " modern = False\n", + "\n", + " best_mode = best_mode.upper()\n", + "\n", + " return (best_error, best_path, best_mode, modern, best_distances)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "78de2c47", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "After iterating over 1 entries, entry found\n", + "Found spec = Multi-modal car scooter BREX trip to San Jose\n", + "Evaluation ran from 2019-07-20T00:00:00-07:00 -> 2020-04-29T17:00:00-07:00\n", + "After iterating over 1 entries, entry found\n", + "Found spec = Multimodal multi-train, multi-bus, ebike trip to UC Berkeley\n", + "Evaluation ran from 2019-07-16T00:00:00-07:00 -> 2020-04-30T00:00:00-07:00\n", + "After iterating over 1 entries, entry found\n", + "Found spec = Round trip car and bike trip in the South Bay\n", + "Evaluation ran from 2019-07-20T00:00:00-07:00 -> 2020-04-29T17:00:00-07:00\n", + "-------------------- About to read transitions from server --------------------\n", + "Reading data for android phones\n", + "Loading transitions for phone ucb-sdb-android-1\n", + "Loading transitions for phone ucb-sdb-android-2\n", + "Loading transitions for phone ucb-sdb-android-3\n", + "Loading transitions for phone ucb-sdb-android-4\n", + "Reading data for ios phones\n", + "Loading transitions for phone ucb-sdb-ios-1\n", + "Loading transitions for phone ucb-sdb-ios-2\n", + "Loading transitions for phone ucb-sdb-ios-3\n", + "Loading transitions for phone ucb-sdb-ios-4\n", + "-------------------- About to fill calibration ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for android phones\n", + "---------- ucb-sdb-android-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-1\n", + "---------- ucb-sdb-android-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-2\n", + "---------- ucb-sdb-android-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-3\n", + "---------- ucb-sdb-android-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "---------- ucb-sdb-ios-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-1\n", + "---------- ucb-sdb-ios-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-2\n", + "---------- ucb-sdb-ios-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-3\n", + "---------- ucb-sdb-ios-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-4\n", + "-------------------- About to fill evaluation ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing data for android phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563821438.276, 1563821438.28)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563846248.068, 1563846248.119)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563896743.138, 1563896743.139)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563917431.4410002, 1563917431.489)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564244087.214, 1564244087.215)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564263878.522, 1564263878.59)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565026006.791, 1565026006.793)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565050217.336, 1565050217.383)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565116007.627, 1565116007.631)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565140213.782, 1565140213.84)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565194658.166, 1565194658.17)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565217816.716, 1565217816.765)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583349554.574, 1583349554.576)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583372563.541, 1583372563.606)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-android-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563821451.359, 1563821451.365)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563846294.729, 1563846294.773)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563896762.637, 1563896762.638)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563917454.9840002, 1563917455.038)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564244097.157, 1564244097.158)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564263896.952, 1564263897.006)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565026017.466, 1565026017.472)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565050237.326, 1565050237.388)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565116024.099, 1565116024.103)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565140246.34, 1565140246.406)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565194646.72, 1565194646.726)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565217853.294, 1565217853.529)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1583349567.43, 1583349567.431)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1583372601.824, 1583372601.881)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC', 'MAMFDC v/s HAMFDC:MAMFDC'}\n", + "Found 7 ranges for phone ucb-sdb-android-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563821466.017, 1563821466.019)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563846343.288, 1563846343.356)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563896782.97, 1563896782.972)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563917505.091, 1563917505.1820002)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564244108.505, 1564244108.508)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564263930.867, 1564263930.928)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565026028.415, 1565026028.417)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565050275.541, 1565050275.592)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565116061.46, 1565116061.463)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565140296.017, 1565140296.074)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565194636.417, 1565194636.421)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565217890.176, 1565217890.224)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1583349576.563, 1583349576.565)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1583372653.463, 1583372653.522)\n", + "All ranges are complete, nothing to change\n", + "{'MAMFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC', 'HAHFDC v/s HAMFDC:HAMFDC'}\n", + "Found 7 ranges for phone ucb-sdb-android-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563821473.884, 1563821473.886)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563846366.351, 1563846366.416)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563896793.681, 1563896793.685)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563917534.25, 1563917534.3000002)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564244116.133, 1564244116.137)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564263954.141, 1564263954.233)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565026039.441, 1565026039.443)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565050297.435, 1565050297.499)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565116073.831, 1565116073.834)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565140325.749, 1565140325.815)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565194628.574, 1565194628.578)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565217931.162, 1565217931.226)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583349589.4, 1583349589.403)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583372691.902, 1583372691.965)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563821361.667, 1563821361.9869251)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563846149.683, 1563846150.16837)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563896677.989, 1563896678.241638)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563917566.035, 1563917566.5567281)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564244009.482, 1564244009.635462)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564263803.96, 1564263804.405366)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565025962.886, 1565025963.03954)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565050123.902, 1565050124.3998442)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565115912.452, 1565115912.62001)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565140051.668, 1565140052.158344)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565194748.742, 1565194748.934565)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565217732.48, 1565217732.972708)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583349504.524, 1583349504.692752)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583372462.124, 1583372462.538796)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-ios-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563821384.042, 1563821384.124948)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563846170.128, 1563846170.6134238)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563896695.361, 1563896695.465279)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563917643.812, 1563917644.283163)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564244028.252, 1564244028.345111)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564263832.942, 1564263833.387823)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565025979.227, 1565025979.312614)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565050142.928, 1565050143.419801)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565115934.82, 1565115934.904733)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565140079.688, 1565140080.093207)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565194737.837, 1565194737.9074302)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565217755.574, 1565217756.026194)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1583349519.859, 1583349519.980233)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1583372484.251, 1583372484.715636)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC', 'MAMFDC v/s MAHFDC:MAMFDC'}\n", + "Found 7 ranges for phone ucb-sdb-ios-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563821405.658, 1563821405.729749)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563846186.56, 1563846186.997916)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563896711.943, 1563896712.148884)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563917670.325, 1563917670.784336)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564244052.15, 1564244052.238229)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564263855.541, 1564263855.954498)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565025989.841, 1565025989.940984)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565050161.585, 1565050162.005754)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565115954.526, 1565115954.616665)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565140342.348, 1565140342.774678)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565194722.345, 1565194722.424724)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565217783.792, 1565217784.212751)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1583349532.033, 1583349532.106073)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1583372502.781, 1583372503.177521)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC', 'MAMFDC v/s MAHFDC:MAHFDC'}\n", + "Found 7 ranges for phone ucb-sdb-ios-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563821424.149, 1563821424.2870421)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563846220.99, 1563846221.430156)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563896726.108, 1563896726.293744)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563917689.529, 1563917689.911433)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564244069.123, 1564244069.2081819)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564263869.097, 1564263869.479578)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565025999.628, 1565025999.709025)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565050201.885, 1565050202.3005052)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565115979.61, 1565115979.7075438)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565140155.815, 1565140156.261787)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565194696.089, 1565194696.183675)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565217805.313, 1565217805.7350268)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583349541.352, 1583349541.440731)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583372529.856, 1583372530.709937)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-ios-4\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill evaluation trips --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Lengths (accuracy, power, eval) = (2, 2, 2)\n", + "keys (accuracy, power, eval) = (dict_keys(['android', 'ios']), dict_keys(['android', 'ios']), dict_keys(['android', 'ios']))\n", + "eval_phone_keys (android, ios) = (dict_keys(['ucb-sdb-android-2', 'ucb-sdb-android-3']), dict_keys(['ucb-sdb-ios-2', 'ucb-sdb-ios-3']))\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1563821490.454, 1563821490.509112)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1563823372.396, 1563823372.411165)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563837063.339, 1563837063.391155)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563842712.795, 1563842712.805215)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1563896809.293, 1563896809.3391)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1563898778.313, 1563898778.321992)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563910899.716, 1563910899.755117)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563915663.367, 1563915663.379727)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1564244129.756, 1564244129.8092852)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1564245644.12, 1564245644.135222)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1564257218.165, 1564257218.202683)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1564261860.997, 1564261861.00942)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1565026080.197, 1565026080.249002)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1565027779.142, 1565027779.148538)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565042553.796, 1565042553.864901)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565047154.386, 1565047154.399231)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1565116093.197, 1565116093.2607632)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1565117985.809, 1565117985.816486)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565131571.647, 1565131571.6941152)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565136626.443, 1565136626.4601789)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1565194760.749, 1565194760.832793)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1565196562.819, 1565196562.819)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565210416.666, 1565210416.767767)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565214708.219, 1565214708.819)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1583349616.581, 1583349616.665268)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1583351508.552, 1583351508.554702)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1583364868.374, 1583364868.447122)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1583370583.544, 1583370583.5469341)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "-------------------- About to fill in evaluation sections --------------------\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563821490.536, 1563821490.568365)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563821613.43, 1563821613.593749)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1563821613.43, 1563821613.614884)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1563823270.634, 1563823270.732588)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1563823270.634, 1563823270.7494102)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1563823372.283, 1563823372.3537679)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'freeway_driving_weekday'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 123.02538394927979, , )\n", + "('freeway_driving_weekday_0', 1657.117704153061, , )\n", + "('walk_end_0', 101.60435771942139, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563837063.411, 1563837063.449956)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563837487.548, 1563837487.693046)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1563837487.549, 1563837487.7118921)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1563838694.221, 1563838694.340023)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563838694.222, 1563838694.354672)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563838948.7, 1563838948.814182)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563838948.701, 1563838948.831892)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563839700.401, 1563839700.555872)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563839700.401, 1563839700.571171)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563842059.791, 1563842060.055727)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1563842059.792, 1563842060.10108)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1563842712.684, 1563842712.756789)\n", + "All ranges are complete, nothing to change\n", + "{'city_bus_rapid_transit', 'city_escooter', 'walk_start', 'walk_back_from_bus', 'wait_for_city_bus_rapid_transit', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 424.2430901527405, , )\n", + "('city_escooter_0', 1206.6281309127808, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 254.45951008796692, , )\n", + "('wait_for_city_bus_rapid_transit_0', 751.7239799499512, , )\n", + "('city_bus_rapid_transit_0', 2359.4845559597015, , )\n", + "('walk_back_from_bus_0', 652.655709028244, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563896809.366, 1563896809.397591)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563896895.939, 1563896896.124467)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1563896895.941, 1563896896.141485)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1563898609.239, 1563898609.361515)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1563898609.239, 1563898609.377841)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1563898778.139, 1563898778.269067)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'freeway_driving_weekday'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 86.72687578201294, , )\n", + "('freeway_driving_weekday_0', 1713.2200300693512, , )\n", + "('walk_end_0', 168.89122605323792, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563910899.773, 1563910899.814049)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563911016.184, 1563911016.306354)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1563911016.184, 1563911016.3418798)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1563912202.182, 1563912202.348563)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563912202.183, 1563912202.36362)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563912274.763, 1563912274.8786678)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563912274.764, 1563912274.901408)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563912512.182, 1563912512.303266)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563912512.183, 1563912512.318758)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563915052.126, 1563915052.305852)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1563915052.127, 1563915052.324667)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1563915663.26, 1563915663.326861)\n", + "All ranges are complete, nothing to change\n", + "{'city_bus_rapid_transit', 'city_escooter', 'walk_start', 'walk_back_from_bus', 'wait_for_city_bus_rapid_transit', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 116.4923050403595, , )\n", + "('city_escooter_0', 1186.0066831111908, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 72.51504778862, , )\n", + "('wait_for_city_bus_rapid_transit_0', 237.40185809135437, , )\n", + "('city_bus_rapid_transit_0', 2539.987093925476, , )\n", + "('walk_back_from_bus_0', 611.0021939277649, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564244129.831, 1564244129.8664951)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564244184.816, 1564244184.9815102)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1564244184.817, 1564244184.997719)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1564245614.013, 1564245614.178691)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564245614.013, 1564245614.1929631)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564245643.977, 1564245644.050511)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'freeway_driving_weekday'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 55.11501502990723, , )\n", + "('freeway_driving_weekday_0', 1429.1809718608856, , )\n", + "('walk_end_0', 29.857547760009766, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564257218.225, 1564257218.267362)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564257311.794, 1564257311.928831)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1564257311.794, 1564257311.9492168)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1564258551.436, 1564258551.593719)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1564258551.437, 1564258551.611102)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1564258641.576, 1564258641.65911)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1564258641.577, 1564258641.674529)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1564259030.83, 1564259030.9701672)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1564259030.83, 1564259030.988997)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1564261268.871, 1564261268.970629)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1564261268.871, 1564261268.988503)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1564261860.893, 1564261860.9574342)\n", + "All ranges are complete, nothing to change\n", + "{'city_bus_rapid_transit', 'city_escooter', 'walk_start', 'walk_back_from_bus', 'wait_for_city_bus_rapid_transit', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 93.66146898269653, , )\n", + "('city_escooter_0', 1239.6445021629333, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 90.04800796508789, , )\n", + "('wait_for_city_bus_rapid_transit_0', 389.2956380844116, , )\n", + "('city_bus_rapid_transit_0', 2237.9816319942474, , )\n", + "('walk_back_from_bus_0', 591.9689311981201, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565026080.273, 1565026080.3062959)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565026125.825, 1565026125.9911141)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1565026125.825, 1565026126.007808)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1565027744.735, 1565027744.871016)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565027744.736, 1565027744.885445)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565027778.948, 1565027779.040153)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'freeway_driving_weekday'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 45.684818267822266, , )\n", + "('freeway_driving_weekday_0', 1618.8632080554962, , )\n", + "('walk_end_0', 34.15470790863037, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565042553.889, 1565042553.9210582)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565042612.027, 1565042612.198419)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1565042612.028, 1565042612.2229319)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1565043965.676, 1565043965.839017)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565043965.682, 1565043965.8569732)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565044035.122, 1565044035.215605)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565044035.122, 1565044035.23178)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565044462.807, 1565044463.004527)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565044462.807, 1565044463.0175738)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565046534.626, 1565046534.8845382)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1565046534.627, 1565046534.919526)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1565047154.27, 1565047154.3463578)\n", + "All ranges are complete, nothing to change\n", + "{'city_bus_rapid_transit', 'city_escooter', 'walk_start', 'walk_back_from_bus', 'wait_for_city_bus_rapid_transit', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 58.277360916137695, , )\n", + "('city_escooter_0', 1353.6160850524902, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 69.35863184928894, , )\n", + "('wait_for_city_bus_rapid_transit_0', 427.7727470397949, , )\n", + "('city_bus_rapid_transit_0', 2071.86696434021, , )\n", + "('walk_back_from_bus_0', 619.4268317222595, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565116093.283, 1565116093.31989)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565116184.423, 1565116184.584146)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1565116184.423, 1565116184.600514)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1565117872.256, 1565117872.412663)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565117872.257, 1565117872.4271522)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565117985.601, 1565117985.767359)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'freeway_driving_weekday'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 91.2642560005188, , )\n", + "('freeway_driving_weekday_0', 1687.8121490478516, , )\n", + "('walk_end_0', 113.34020686149597, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565131571.72, 1565131571.756772)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565131719.139, 1565131719.29528)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1565131719.139, 1565131719.31602)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1565132979.221, 1565132979.391594)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565132979.222, 1565132979.410962)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565133027.086, 1565133027.175887)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565133027.087, 1565133027.1911669)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565133539.461, 1565133539.5930529)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565133539.462, 1565133539.608464)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565136001.172, 1565136001.450815)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1565136001.172, 1565136001.470848)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1565136626.312, 1565136626.4069738)\n", + "All ranges are complete, nothing to change\n", + "{'city_bus_rapid_transit', 'city_escooter', 'walk_start', 'walk_back_from_bus', 'wait_for_city_bus_rapid_transit', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 147.538507938385, , )\n", + "('city_escooter_0', 1260.0755739212036, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 47.76492500305176, , )\n", + "('wait_for_city_bus_rapid_transit_0', 512.4018859863281, , )\n", + "('city_bus_rapid_transit_0', 2461.842350959778, , )\n", + "('walk_back_from_bus_0', 624.9361257553101, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565194760.847, 1565194760.848346)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565194814.125, 1565194814.25775)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1565194814.126, 1565194814.273975)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1565196417.444, 1565196417.6778622)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565196417.445, 1565196417.694921)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565196562.296, 1565196562.411165)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'freeway_driving_weekday'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 53.409404039382935, , )\n", + "('freeway_driving_weekday_0', 1603.403887271881, , )\n", + "('walk_end_0', 144.71624398231506, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565210416.787, 1565210416.789362)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565210468.356, 1565210468.528394)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1565210468.357, 1565210468.54451)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1565211705.234, 1565211705.4053168)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565211705.235, 1565211705.4192839)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565211770.517, 1565211770.6105618)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565211770.517, 1565211770.626648)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565211919.815, 1565211919.974773)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565211919.816, 1565211919.995462)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565214089.557, 1565214089.656897)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1565214089.557, 1565214089.674429)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1565214708.119, 1565214708.719)\n", + "All ranges are complete, nothing to change\n", + "{'city_bus_rapid_transit', 'city_escooter', 'walk_start', 'walk_back_from_bus', 'wait_for_city_bus_rapid_transit', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 51.73903203010559, , )\n", + "('city_escooter_0', 1236.860806941986, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 65.19127798080444, , )\n", + "('wait_for_city_bus_rapid_transit_0', 149.3481249809265, , )\n", + "('city_bus_rapid_transit_0', 2169.6614351272583, , )\n", + "('walk_back_from_bus_0', 619.0445711612701, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1583349616.677, 1583349616.678327)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1583349673.646, 1583349673.7534919)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1583349673.647, 1583349673.7669039)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1583351356.08, 1583351356.2288508)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1583351356.082, 1583351356.243826)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1583351508.422, 1583351508.5356178)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'freeway_driving_weekday'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 57.075164794921875, , )\n", + "('freeway_driving_weekday_0', 1682.461946964264, , )\n", + "('walk_end_0', 152.29179191589355, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1583364868.47, 1583364868.477988)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1583365148.905, 1583365149.046914)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1583365148.906, 1583365149.064424)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1583366582.17, 1583366582.268704)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1583366582.17, 1583366582.283499)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1583366661.123, 1583366661.195407)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1583366661.124, 1583366661.207617)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1583367516.226, 1583367516.3339)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1583367516.227, 1583367516.352926)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1583369987.483, 1583369987.6035771)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1583369987.483, 1583369987.6175718)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1583370583.426, 1583370583.5258222)\n", + "All ranges are complete, nothing to change\n", + "{'city_bus_rapid_transit', 'city_escooter', 'walk_start', 'walk_back_from_bus', 'wait_for_city_bus_rapid_transit', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 280.5689260959625, , )\n", + "('city_escooter_0', 1433.2042798995972, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 78.91190791130066, , )\n", + "('wait_for_city_bus_rapid_transit_0', 855.1262829303741, , )\n", + "('city_bus_rapid_transit_0', 2471.2506511211395, , )\n", + "('walk_back_from_bus_0', 595.9082503318787, , )\n", + "-------------------- About to copy trip and section ranges --------------------\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_0\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_1\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_2\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_3\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_4\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_5\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_6\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "dict_keys(['ucb-sdb-android-1', 'ucb-sdb-android-2', 'ucb-sdb-android-3', 'ucb-sdb-android-4'])\n", + "Found accuracy control, skipping copy\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "dict_keys(['ucb-sdb-ios-1', 'ucb-sdb-ios-2', 'ucb-sdb-ios-3', 'ucb-sdb-ios-4'])\n", + "Found accuracy control, skipping copy\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "-------------------- About to fill in battery information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in location information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in motion activity information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "Processing data for ios phones\n", + "-------------------- About to fill in transition information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "Processing data for ios phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "-------------------- About to select trip specific ranges --------------------\n", + "Filling label ucb-sdb-android-1 for OS android\n", + "Filling label ucb-sdb-android-2 for OS android\n", + "Filling label ucb-sdb-android-3 for OS android\n", + "Filling label ucb-sdb-android-4 for OS android\n", + "Filling label ucb-sdb-ios-1 for OS ios\n", + "Filling label ucb-sdb-ios-2 for OS ios\n", + "Filling label ucb-sdb-ios-3 for OS ios\n", + "Filling label ucb-sdb-ios-4 for OS ios\n", + "-------------------- Done populating information from server --------------------\n", + "-------------------- About to read transitions from server --------------------\n", + "Reading data for android phones\n", + "Loading transitions for phone ucb-sdb-android-1\n", + "Loading transitions for phone ucb-sdb-android-2\n", + "Loading transitions for phone ucb-sdb-android-3\n", + "Loading transitions for phone ucb-sdb-android-4\n", + "Reading data for ios phones\n", + "Loading transitions for phone ucb-sdb-ios-1\n", + "Loading transitions for phone ucb-sdb-ios-2\n", + "Loading transitions for phone ucb-sdb-ios-3\n", + "Loading transitions for phone ucb-sdb-ios-4\n", + "-------------------- About to fill calibration ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 102 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1156 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 92 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing data for android phones\n", + "---------- ucb-sdb-android-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-1\n", + "---------- ucb-sdb-android-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-2\n", + "---------- ucb-sdb-android-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-3\n", + "---------- ucb-sdb-android-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "---------- ucb-sdb-ios-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-1\n", + "---------- ucb-sdb-ios-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-2\n", + "---------- ucb-sdb-ios-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-3\n", + "---------- ucb-sdb-ios-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-4\n", + "-------------------- About to fill evaluation ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 102 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1156 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 92 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing data for android phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563979674.374, 1563979674.375)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564026016.505, 1564026016.571)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564067115.274, 1564067115.279)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564111993.024, 1564111993.08)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564153794.975, 1564153794.979)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564198662.813, 1564198662.867)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568128283.482, 1568128283.484)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568171423.252, 1568171423.307)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568214664.755, 1568214664.759)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568259367.163, 1568259367.23)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568732827.097, 1568732827.102)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568775432.276, 1568775432.33)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574179702.033, 1574179702.038)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574222116.282, 1574222116.342)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574266175.2, 1574266175.204)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574308930.047, 1574308930.098)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575389661.907, 1575389661.911)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575432800.647, 1575432800.71)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575907983.674, 1575907983.68)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575951082.011, 1575951082.073)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576080703.085, 1576080703.089)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576123735.18, 1576123735.249)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581005619.143, 1581005619.145)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581048109.519, 1581048109.57)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-android-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563979684.203, 1563979684.205)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564026016.505, 1564026016.571)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564067129.188, 1564067129.194)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564111993.024, 1564111993.08)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564153809.878, 1564153809.884)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564198662.813, 1564198662.867)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568128292.809, 1568128292.816)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568171423.252, 1568171423.307)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568214683.657, 1568214683.663)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568259367.163, 1568259367.23)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568732838.858, 1568732838.865)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568775451.914, 1568775451.963)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574179715.967, 1574179715.973)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574222160.031, 1574222160.107)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574266189.537, 1574266189.544)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574308980.198, 1574308980.276)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575389672.061, 1575389672.067)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575432838.838, 1575432838.904)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575908004.682, 1575908004.688)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575951121.68, 1575951121.764)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1576080718.009, 1576080718.014)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1576123773.414, 1576123773.479)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1581005630.298, 1581005630.304)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1581048155.038, 1581048155.096)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC', 'MAMFDC v/s MAHFDC:MAMFDC', 'MAMFDC v/s HAMFDC:MAMFDC'}\n", + "Found 12 ranges for phone ucb-sdb-android-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563979700.65, 1563979700.651)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564026069.763, 1564026069.823)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564067142.569, 1564067142.572)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564112040.859, 1564112040.915)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564153836.577, 1564153836.582)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564198700.545, 1564198700.606)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568128304.269, 1568128304.271)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568171480.369, 1568171480.428)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568214696.728, 1568214696.732)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568259402.325, 1568259402.365)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568732848.137, 1568732848.143)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568775473.285, 1568775473.326)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574179731.577, 1574179731.582)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574222201.895, 1574222201.96)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574266203.641, 1574266203.645)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574309018.246, 1574309018.303)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575389683.887, 1575389683.893)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575432884.019, 1575432884.07)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575908019.015, 1575908019.022)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575951162.496, 1575951162.555)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1576080729.571, 1576080729.576)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1576123800.484, 1576123800.55)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1581005657.006, 1581005657.01)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1581048193.116, 1581048193.167)\n", + "All ranges are complete, nothing to change\n", + "{'MAMFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC', 'HAHFDC v/s HAMFDC:HAMFDC', 'MAMFDC v/s MAHFDC:MAHFDC'}\n", + "Found 12 ranges for phone ucb-sdb-android-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563979710.36, 1563979710.362)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564026103.147, 1564026103.196)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564067151.704, 1564067151.709)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564112067.788, 1564112067.839)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564153847.546, 1564153847.551)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564198714.522, 1564198714.587)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568128311.563, 1568128311.564)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568171494.557, 1568171494.623)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568214707.906, 1568214707.909)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568259422.394, 1568259422.461)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568732860.063, 1568732860.068)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568775489.246, 1568775489.32)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574179740.397, 1574179740.404)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574222257.906, 1574222257.964)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574266220.844, 1574266220.847)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574309058.265, 1574309058.326)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575389700.874, 1575389700.879)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575432906.927, 1575432906.988)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575908031.697, 1575908031.703)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575951191.655, 1575951191.725)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576080739.918, 1576080739.922)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576123862.988, 1576123863.143)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581005670.948, 1581005670.953)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581048244.324, 1581048244.482)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563979588.94, 1563979589.122448)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564026134.307, 1564026134.814043)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564067052.957, 1564067053.13516)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564111856.514, 1564111857.01444)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564153724.618, 1564153724.7851748)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564198472.771, 1564198473.246904)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568128100.199, 1568128110.2934499)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568171299.767, 1568171300.1921492)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568214607.997, 1568214608.131744)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568259227.259, 1568259227.709927)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568732759.108, 1568732759.263176)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568775346.49, 1568775346.953655)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574179616.171, 1574179616.317733)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574222015.448, 1574222015.899678)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574266122.972, 1574266123.1190748)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574308834.229, 1574308834.6361)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575389590.964, 1575389591.148025)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575432723.501, 1575432723.9385571)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575907915.923, 1575907916.0966)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575950995.047, 1575950995.533109)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576080644.914, 1576080645.071576)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576123648.228, 1576123648.681663)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581005531.626, 1581005531.773211)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581047994.663, 1581047995.107096)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-ios-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563979628.541, 1563979628.6823301)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564026158.454, 1564026158.946105)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564067067.124, 1564067067.1988769)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564111964.102, 1564111964.549928)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564153741.12, 1564153741.210318)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564198491.071, 1564198491.704329)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568128234.199, 1568128234.2934499)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568171405.862, 1568171406.342128)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568214623.685, 1568214623.776147)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568259319.961, 1568259320.4247599)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568732781.171, 1568732781.243727)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568775364.893, 1568775365.402838)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574179649.114, 1574179649.306484)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574222045.293, 1574222045.691361)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574266135.669, 1574266135.737793)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574308862.073, 1574308862.4586558)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575389605.59, 1575389605.676571)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575432753.443, 1575432753.887481)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575907932.674, 1575907932.765305)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575951019.853, 1575951020.2980871)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1576080658.603, 1576080658.703484)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1576123669.97, 1576123670.400296)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1581005550.981, 1581005551.087857)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1581048034.106, 1581048034.540369)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC', 'MAMFDC v/s MAHFDC:MAMFDC', 'MAMFDC v/s HAMFDC:MAMFDC'}\n", + "Found 12 ranges for phone ucb-sdb-ios-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563979652.346, 1563979652.472508)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564026184.423, 1564026184.899987)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564067081.832, 1564067081.9459162)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564111930.941, 1564111931.4124122)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564153753.964, 1564153754.09529)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564198601.517, 1564198601.973415)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568128260.259, 1568128260.3507972)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568171371.648, 1568171372.046767)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568214638.318, 1568214638.402174)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568259290.627, 1568259291.060399)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568732800.428, 1568732800.530198)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568775397.507, 1568775397.909452)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574179671.601, 1574179671.75875)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574222077.909, 1574222078.319065)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574266150.188, 1574266150.26058)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574308889.453, 1574308889.8706431)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575389620.726, 1575389620.8166099)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575432771.251, 1575432771.673568)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575907949.333, 1575907949.43006)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575951040.641, 1575951041.011366)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1576080673.822, 1576080673.921502)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1576123692.161, 1576123692.549412)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1581005581.107, 1581005581.1834831)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1581048066.524, 1581048066.942445)\n", + "All ranges are complete, nothing to change\n", + "{'MAMFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC', 'MAMFDC v/s MAHFDC:MAHFDC'}\n", + "Found 12 ranges for phone ucb-sdb-ios-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563979640.882, 1563979641.0170379)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564026206.707, 1564026207.1437001)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564067100.311, 1564067100.3999)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564111947.765, 1564111948.22327)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564153782.297, 1564153782.391041)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564198563.679, 1564198564.1259341)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568128272.673, 1568128272.775363)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568171393.165, 1568171393.5412989)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568214652.708, 1568214652.77615)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568259349.726, 1568259350.099924)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568732813.894, 1568732813.98403)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568775415.193, 1568775415.572669)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574179686.618, 1574179686.766109)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574222098.169, 1574222098.53771)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574266165.057, 1574266165.155801)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574308913.816, 1574308914.195499)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575389637.901, 1575389637.998954)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575432787.798, 1575432788.184202)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575908051.372, 1575908051.454391)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575951054.898, 1575951055.2406511)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576080686.668, 1576080686.7746549)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576123708.992, 1576123709.36397)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581005599.699, 1581005599.791271)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581048093.802, 1581048094.196096)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-ios-4\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill evaluation trips --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Lengths (accuracy, power, eval) = (2, 2, 2)\n", + "keys (accuracy, power, eval) = (dict_keys(['android', 'ios']), dict_keys(['android', 'ios']), dict_keys(['android', 'ios']))\n", + "eval_phone_keys (android, ios) = (dict_keys(['ucb-sdb-android-2', 'ucb-sdb-android-3']), dict_keys(['ucb-sdb-ios-2', 'ucb-sdb-ios-3']))\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_7\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_8\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_9\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_10\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_11\n", + "\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1563979902.072, 1563979902.185629)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1563989197.685, 1563989197.702858)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1564002736.67, 1564002736.706653)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1564003534.79, 1564003534.7931042)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564011427.592, 1564011427.662981)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564023559.653, 1564023559.661789)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564067188.159, 1564067188.267119)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564075724.227, 1564075724.244487)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1564088895.166, 1564088895.215784)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1564089714.683, 1564089714.693573)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564097591.052, 1564097591.145783)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564109968.34, 1564109968.351553)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564153874.742, 1564153874.820516)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564162105.393, 1564162105.407298)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1564175793.475, 1564175793.511475)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1564176504.662, 1564176504.678987)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564182927.382, 1564182927.436353)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564196388.126, 1564196388.141316)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568128359.304, 1568128359.439087)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568137039.787, 1568137039.789012)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1568147985.131, 1568147985.196231)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1568148713.608, 1568148713.609973)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568156969.985, 1568156970.1178)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568168558.862, 1568168558.863709)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568214737.442, 1568214737.541266)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568223465.749, 1568223465.7502651)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1568234793.686, 1568234793.7623649)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1568235522.084, 1568235522.086465)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568244359.403, 1568244359.496105)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568257066.808, 1568257066.810545)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568732881.609, 1568732881.759346)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568741997.39, 1568741997.3921041)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1568753159.382, 1568753159.444274)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1568753916.403, 1568753916.4048119)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568761879.665, 1568761879.759616)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568772840.639, 1568772840.649343)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574179769.014, 1574179769.176817)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574188370.449, 1574188370.450871)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1574199058.861, 1574199058.939198)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1574199814.33, 1574199814.331953)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574208747.917, 1574208747.999223)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574219738.492, 1574219738.499878)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574266253.688, 1574266253.826874)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574274678.15, 1574274678.152474)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1574286383.335, 1574286383.419753)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1574287165.241, 1574287165.2431211)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574295435.535, 1574295435.6182032)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574306492.009, 1574306492.010795)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_7\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575389709.861, 1575389709.999146)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575398091.289, 1575398091.291555)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1575411220.916, 1575411220.984645)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1575412027.488, 1575412027.489758)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575418479.856, 1575418479.999867)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575430485.348, 1575430485.349746)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_8\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575908071.661, 1575908071.75604)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575916404.082, 1575916404.083811)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1575928741.584, 1575928741.664712)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1575929509.917, 1575929509.919419)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575936809.332, 1575936809.483522)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575948199.122, 1575948199.123903)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_9\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1576080764.621, 1576080764.752437)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1576090424.993, 1576090424.995113)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1576102138.468, 1576102138.5671968)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1576102858.764, 1576102858.765902)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1576109913.556, 1576109913.636605)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1576120833.148, 1576120833.1499991)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_10\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1581005686.316, 1581005686.468857)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1581013808.721, 1581013808.723332)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1581023219.699, 1581023219.787174)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1581024049.283, 1581024049.2851791)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1581034644.694, 1581034644.789623)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1581045370.668, 1581045370.669478)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'mtv_to_berkeley_sf_bart', 'walk_urban_university'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_11\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "-------------------- About to fill in evaluation sections --------------------\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1563979902.205, 1563979902.260114)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1563980934.67, 1563980934.763476)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1563980934.671, 1563980934.780724)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1563982148.697, 1563982148.848342)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1563982148.698, 1563982148.860445)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1563984650.62, 1563984650.761559)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1563984650.62, 1563984650.780916)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1563984825.011, 1563984825.011)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1563984825.022, 1563984825.022)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1563985155.01, 1563985155.011)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1563985155.02, 1563985155.021)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1563988430.771, 1563988430.908957)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1563988430.772, 1563988430.924944)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1563988713.787, 1563988713.883302)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1563988713.787, 1563988713.901051)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1563988716.577, 1563988716.643996)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1563988716.577, 1563988716.660172)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1563989114.807, 1563989114.900414)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1563989114.808, 1563989114.9193978)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1563989197.551, 1563989197.630923)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 1032.503361940384, , )\n", + "('wait_for_commuter_rail_aboveground_0', 1214.067617893219, , )\n", + "('commuter_rail_aboveground_0', 2501.901113986969, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 174.23008394241333, , )\n", + "('wait_for_subway_underground_0', 329.9889998435974, , )\n", + "('subway_underground_0', 3275.8879570961, , )\n", + "('walk_to_bus_0', 282.9583580493927, , )\n", + "('wait_for_city_bus_short_0', 2.7429449558258057, , )\n", + "('city_bus_short_0', 398.24024200439453, , )\n", + "('walk_end_0', 82.71152520179749, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1564002736.732, 1564002736.768461)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1564003534.681, 1564003534.739585)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 797.9711239337921, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1564011427.695, 1564011427.746717)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1564011714.476, 1564011714.618997)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564011714.477, 1564011714.6363091)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564012924.649, 1564012924.78658)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564012924.65, 1564012924.802222)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564013242.791, 1564013242.9099941)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1564013242.792, 1564013242.927007)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1564014033.252, 1564014033.389567)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1564014033.253, 1564014033.40662)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1564016387.875, 1564016387.877)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564016387.9, 1564016387.9)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564017012.56, 1564017012.630163)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564017012.561, 1564017012.6489391)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564017183.846, 1564017184.001481)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564017183.846, 1564017184.037243)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564017903.821, 1564017903.952633)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564017903.821, 1564017903.9669871)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564018116.39, 1564018116.5001988)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564018116.391, 1564018116.5166879)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564018366.458, 1564018366.613925)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564018366.459, 1564018366.62823)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564022441.126, 1564022441.259026)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564022441.126, 1564022441.275117)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564023559.496, 1564023559.601121)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 286.8722801208496, , )\n", + "('ebike_bikeshare_urban_long_0', 1210.1502709388733, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 318.1077721118927, , )\n", + "('wait_for_express_bus_0', 790.4625599384308, , )\n", + "('express_bus_0', 2354.4703800678253, , )\n", + "('walk_downtown_urban_canyon_0', 624.730162858963, , )\n", + "('wait_for_light_rail_below_above_ground_0', 171.35254192352295, , )\n", + "('light_rail_below_above_ground_0', 719.9153900146484, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 212.53321170806885, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 250.09723711013794, , )\n", + "('commuter_rail_with_tunnels_0', 4074.630795955658, , )\n", + "('inner_suburb_downtown_walk_0', 1118.3260040283203, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1564067188.288, 1564067188.346294)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1564068117.901, 1564068117.980966)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564068117.901, 1564068117.998847)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564068619.027, 1564068619.157057)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564068619.027, 1564068619.181421)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564070904.816, 1564070904.986106)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564070904.817, 1564070905.00417)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564071268.059, 1564071268.245504)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1564071268.06, 1564071268.2597919)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1564071559.91, 1564071560.0368419)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1564071559.911, 1564071560.053673)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1564074824.84, 1564074824.926834)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1564074824.841, 1564074824.940014)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1564075038.86, 1564075038.926701)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564075038.861, 1564075038.945013)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564075127.846, 1564075127.9485512)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1564075127.846, 1564075127.9729261)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1564075586.891, 1564075586.984802)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564075586.891, 1564075586.998524)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564075724.035, 1564075724.189588)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 929.634672164917, , )\n", + "('wait_for_commuter_rail_aboveground_0', 501.1582100391388, , )\n", + "('commuter_rail_aboveground_0', 2285.8046848773956, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 363.2413339614868, , )\n", + "('wait_for_subway_underground_0', 291.77705001831055, , )\n", + "('subway_underground_0', 3264.8731610774994, , )\n", + "('walk_to_bus_0', 213.98668718338013, , )\n", + "('wait_for_city_bus_short_0', 89.00353813171387, , )\n", + "('city_bus_short_0', 459.0118758678436, , )\n", + "('walk_end_0', 137.191064119339, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1564088895.233, 1564088895.27287)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1564089714.588, 1564089714.6430612)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 819.3701910972595, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1564097591.162, 1564097591.216469)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1564097792.238, 1564097792.373999)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564097792.238, 1564097792.3862739)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564098981.758, 1564098981.889492)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564098981.758, 1564098981.9045339)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564099143.408, 1564099143.5225492)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1564099143.408, 1564099143.5381908)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1564100498.72, 1564100498.945334)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1564100498.721, 1564100498.961628)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1564102888.507, 1564102888.591662)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564102888.507, 1564102888.610159)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564103494.874, 1564103494.967897)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564103494.875, 1564103494.982819)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564103548.185, 1564103548.300274)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564103548.185, 1564103548.319656)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564104305.542, 1564104305.70403)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564104305.543, 1564104305.72385)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564104469.606, 1564104469.733056)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564104469.606, 1564104469.7508678)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564104765.531, 1564104765.724967)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564104765.531, 1564104765.738415)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564108862.132, 1564108862.258852)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564108862.132, 1564108862.2746139)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564109968.217, 1564109968.298394)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 201.1575300693512, , )\n", + "('ebike_bikeshare_urban_long_0', 1189.5032181739807, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 161.61801528930664, , )\n", + "('wait_for_express_bus_0', 1355.4071431159973, , )\n", + "('express_bus_0', 2389.630033969879, , )\n", + "('walk_downtown_urban_canyon_0', 606.3577380180359, , )\n", + "('wait_for_light_rail_below_above_ground_0', 53.31745481491089, , )\n", + "('light_rail_below_above_ground_0', 757.3843741416931, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 164.00920605659485, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 295.9740991592407, , )\n", + "('commuter_rail_with_tunnels_0', 4096.520437002182, , )\n", + "('inner_suburb_downtown_walk_0', 1106.0237801074982, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1564153874.845, 1564153874.896019)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1564154664.943, 1564154665.101372)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564154664.955, 1564154665.11735)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564155115.902, 1564155116.049901)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564155115.903, 1564155116.065814)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564157521.032, 1564157521.181978)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564157521.032, 1564157521.202848)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564157611.54, 1564157611.6071901)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1564157611.54, 1564157611.623952)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1564157983.901, 1564157983.901)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1564157983.911, 1564157983.911)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1564161220.853, 1564161220.982573)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1564161220.853, 1564161220.998692)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1564161441.545, 1564161441.614192)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564161441.545, 1564161441.631149)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564161576.901, 1564161576.901)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1564161576.911, 1564161576.911)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1564162000.41, 1564162000.502118)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564162000.412, 1564162000.519351)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564162105.227, 1564162105.351388)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 790.2053530216217, , )\n", + "('wait_for_commuter_rail_aboveground_0', 450.932550907135, , )\n", + "('commuter_rail_aboveground_0', 2405.11616396904, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 90.40434217453003, , )\n", + "('wait_for_subway_underground_0', 372.2770481109619, , )\n", + "('subway_underground_0', 3237.0715730190277, , )\n", + "('walk_to_bus_0', 220.61549997329712, , )\n", + "('wait_for_city_bus_short_0', 135.26985096931458, , )\n", + "('city_bus_short_0', 423.5911180973053, , )\n", + "('walk_end_0', 104.8320369720459, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1564175793.529, 1564175793.5701408)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1564176504.541, 1564176504.6247559)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 711.054615020752, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1564182927.461, 1564182927.507062)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1564184312.165, 1564184312.3002892)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564184312.165, 1564184312.3130012)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564185597.921, 1564185598.028778)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564185597.922, 1564185598.042931)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564185827.422, 1564185827.539897)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1564185827.423, 1564185827.554669)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1564186723.26, 1564186723.407819)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1564186723.261, 1564186723.421236)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1564188690.51, 1564188690.5885491)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564188690.511, 1564188690.60222)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564189244.467, 1564189244.5364761)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564189244.468, 1564189244.553443)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564189817.21, 1564189817.409505)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564189817.21, 1564189817.438754)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564190921.062, 1564190921.251579)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564190921.062, 1564190921.268532)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564191065.457, 1564191065.557415)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564191065.458, 1564191065.574724)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564191182.011, 1564191182.011)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564191182.015, 1564191182.015)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564195277.566, 1564195277.682907)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564195277.566, 1564195277.6962361)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564196387.976, 1564196388.057633)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 1384.7932271957397, , )\n", + "('ebike_bikeshare_urban_long_0', 1285.7157769203186, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 229.49696588516235, , )\n", + "('wait_for_express_bus_0', 895.8531501293182, , )\n", + "('express_bus_0', 1967.1673130989075, , )\n", + "('walk_downtown_urban_canyon_0', 553.9342560768127, , )\n", + "('wait_for_light_rail_below_above_ground_0', 572.8560619354248, , )\n", + "('light_rail_below_above_ground_0', 1103.8128249645233, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 144.28888297080994, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 116.43627595901489, , )\n", + "('commuter_rail_with_tunnels_0', 4095.667906999588, , )\n", + "('inner_suburb_downtown_walk_0', 1110.3613967895508, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1568128359.456, 1568128359.457977)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1568129225.711, 1568129225.8029618)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568129225.711, 1568129225.8229551)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568129418.135, 1568129418.256069)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568129418.136, 1568129418.269621)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568131633.282, 1568131633.381013)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568131633.282, 1568131633.395437)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568131775.669, 1568131775.7588081)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1568131775.669, 1568131775.778534)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1568132379.203, 1568132379.3260388)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1568132379.204, 1568132379.3405972)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1568135629.832, 1568135629.9102259)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1568135629.832, 1568135629.924252)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1568135932.941, 1568135933.0114589)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568135932.941, 1568135933.030817)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568136623.306, 1568136623.392667)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1568136623.307, 1568136623.415704)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1568136925.128, 1568136925.187604)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1568136925.128, 1568136925.2043839)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1568137039.661, 1568137039.769568)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 866.3449847698212, , )\n", + "('wait_for_commuter_rail_aboveground_0', 192.43311381340027, , )\n", + "('commuter_rail_aboveground_0', 2215.111392021179, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 142.36337113380432, , )\n", + "('wait_for_subway_underground_0', 603.547504901886, , )\n", + "('subway_underground_0', 3250.569628715515, , )\n", + "('walk_to_bus_0', 303.08720684051514, , )\n", + "('wait_for_city_bus_short_0', 690.3618500232697, , )\n", + "('city_bus_short_0', 301.7718999385834, , )\n", + "('walk_end_0', 114.56518411636353, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1568147985.21, 1568147985.211609)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1568148713.504, 1568148713.5903769)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 728.3787679672241, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1568156970.135, 1568156970.136897)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1568157454.673, 1568157454.818012)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568157454.674, 1568157454.838443)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568158783.275, 1568158783.377142)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568158783.276, 1568158783.3913279)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568159002.384, 1568159002.444278)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1568159002.385, 1568159002.462307)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1568159518.455, 1568159518.573839)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1568159518.455, 1568159518.586053)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1568161878.959, 1568161879.042319)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568161878.96, 1568161879.054672)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568162654.553, 1568162654.625458)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568162654.553, 1568162654.6394858)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568162861.649, 1568162861.758681)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568162861.649, 1568162861.774787)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568163677.061, 1568163677.226685)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568163677.061, 1568163677.2464828)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568163911.9928885, 1568163911.9928885)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568163911.9929984, 1568163911.9929984)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568164574.777, 1568164574.921455)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568164574.778, 1568164574.933717)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568167455.137, 1568167455.228725)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568167455.138, 1568167455.247277)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568168558.757, 1568168558.845121)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 484.6811149120331, , )\n", + "('ebike_bikeshare_urban_long_0', 1328.5386989116669, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 219.0529501438141, , )\n", + "('wait_for_express_bus_0', 516.1115319728851, , )\n", + "('express_bus_0', 2360.4562661647797, , )\n", + "('walk_downtown_urban_canyon_0', 775.5707859992981, , )\n", + "('wait_for_light_rail_below_above_ground_0', 207.11919522285461, , )\n", + "('light_rail_below_above_ground_0', 815.451898097992, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 234.74640560150146, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 662.9284565448761, , )\n", + "('commuter_rail_with_tunnels_0', 2880.295007944107, , )\n", + "('inner_suburb_downtown_walk_0', 1103.5978438854218, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1568214737.56, 1568214737.5622501)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1568215615.227, 1568215615.354403)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568215615.228, 1568215615.371259)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568215742.249, 1568215742.3900108)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568215742.25, 1568215742.407765)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568218034.714, 1568218034.838385)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568218034.714, 1568218034.8511539)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568218133.074, 1568218133.193851)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1568218133.074, 1568218133.211705)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1568218761.408, 1568218761.535503)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1568218761.409, 1568218761.551367)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1568222023.636, 1568222023.753432)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1568222023.637, 1568222023.771352)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1568222336.319, 1568222336.389893)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568222336.319, 1568222336.40583)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568223049.114, 1568223049.214051)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1568223049.114, 1568223049.2427502)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1568223317.873, 1568223317.940135)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1568223317.873, 1568223317.956558)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1568223465.635, 1568223465.7310638)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 877.7921528816223, , )\n", + "('wait_for_commuter_rail_aboveground_0', 127.01875185966492, , )\n", + "('commuter_rail_aboveground_0', 2292.4306201934814, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 98.34269714355469, , )\n", + "('wait_for_subway_underground_0', 628.3237979412079, , )\n", + "('subway_underground_0', 3262.2020649909973, , )\n", + "('walk_to_bus_0', 312.61854100227356, , )\n", + "('wait_for_city_bus_short_0', 712.8082211017609, , )\n", + "('city_bus_short_0', 268.69738483428955, , )\n", + "('walk_end_0', 147.77450585365295, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1568234793.774, 1568234793.776258)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1568235521.95, 1568235522.0351238)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 728.2588658332825, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1568244359.507, 1568244359.509249)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1568244750.373, 1568244750.497673)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568244750.374, 1568244750.5154362)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568245790.187, 1568245790.282)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568245790.188, 1568245790.296854)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568246014.58, 1568246014.639128)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1568246014.581, 1568246014.6523628)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1568247348.92, 1568247349.042203)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1568247348.92, 1568247349.096503)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1568249736.154, 1568249736.225675)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568249736.154, 1568249736.2411718)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568250412.649, 1568250412.718523)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568250412.649, 1568250412.732284)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568250424.187, 1568250424.2916179)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568250424.187, 1568250424.3074589)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568251288.378, 1568251288.494444)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568251288.378, 1568251288.511601)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568251587.095, 1568251587.228471)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568251587.096, 1568251587.2422771)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568251929.316, 1568251929.451809)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568251929.316, 1568251929.466166)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568256068.336, 1568256068.436887)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568256068.337, 1568256068.454493)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568257066.697, 1568257066.793347)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 390.9884240627289, , )\n", + "('ebike_bikeshare_urban_long_0', 1039.7665638923645, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 224.34227395057678, , )\n", + "('wait_for_express_bus_0', 1334.3898401260376, , )\n", + "('express_bus_0', 2387.1291720867157, , )\n", + "('walk_downtown_urban_canyon_0', 676.4773511886597, , )\n", + "('wait_for_light_rail_below_above_ground_0', 11.559333801269531, , )\n", + "('light_rail_below_above_ground_0', 864.1869850158691, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 298.7168700695038, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 342.2095317840576, , )\n", + "('commuter_rail_with_tunnels_0', 4138.970721006393, , )\n", + "('inner_suburb_downtown_walk_0', 998.3388538360596, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1568732881.774, 1568732881.775639)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1568733751.579, 1568733751.6681008)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568733751.579, 1568733751.683353)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568734351.868, 1568734351.994272)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568734351.869, 1568734352.008291)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568736841.872, 1568736841.984133)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568736841.873, 1568736842.000698)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568736950.594, 1568736950.6617851)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1568736950.595, 1568736950.676742)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1568737147.771, 1568737147.891639)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1568737147.771, 1568737147.9041429)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1568740438.089, 1568740438.208461)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1568740438.089, 1568740438.228492)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1568740747.975, 1568740748.045597)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568740747.975, 1568740748.061996)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568741647.399, 1568741647.519343)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1568741647.4, 1568741647.538996)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1568741880.365, 1568741880.434023)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1568741880.365, 1568741880.4528399)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1568741997.261, 1568741997.375945)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 869.8924617767334, , )\n", + "('wait_for_commuter_rail_aboveground_0', 600.310919046402, , )\n", + "('commuter_rail_aboveground_0', 2489.975841999054, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 108.66108703613281, , )\n", + "('wait_for_subway_underground_0', 197.21489691734314, , )\n", + "('subway_underground_0', 3290.304318189621, , )\n", + "('walk_to_bus_0', 309.81710505485535, , )\n", + "('wait_for_city_bus_short_0', 899.4573469161987, , )\n", + "('city_bus_short_0', 232.89502692222595, , )\n", + "('walk_end_0', 116.92310523986816, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1568753159.467, 1568753159.4697561)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1568753916.293, 1568753916.3857899)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 756.916033744812, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1568761879.775, 1568761879.7765179)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1568762200.869, 1568762200.9979339)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568762200.869, 1568762201.01174)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568763357.923, 1568763358.020776)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568763357.924, 1568763358.037296)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568763549.817, 1568763549.93485)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1568763549.818, 1568763549.952519)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1568764321.216, 1568764321.337923)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1568764321.217, 1568764321.3516688)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1568766321.931, 1568766322.011527)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568766321.932, 1568766322.0274282)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568766965.558, 1568766965.636026)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568766965.559, 1568766965.6507568)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568767350.838, 1568767350.952024)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568767350.839, 1568767350.9666572)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568768042.62, 1568768042.750239)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568768042.621, 1568768042.767525)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568768174.539, 1568768174.633939)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568768174.539, 1568768174.6494079)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568768306.318, 1568768306.438633)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568768306.318, 1568768306.452539)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568771859.691, 1568771859.7892752)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568771859.692, 1568771859.8035831)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568772840.519, 1568772840.6211061)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 321.2214159965515, , )\n", + "('ebike_bikeshare_urban_long_0', 1157.009036064148, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 191.89755392074585, , )\n", + "('wait_for_express_bus_0', 771.3854041099548, , )\n", + "('express_bus_0', 2000.6598582267761, , )\n", + "('walk_downtown_urban_canyon_0', 643.6085977554321, , )\n", + "('wait_for_light_rail_below_above_ground_0', 385.3012671470642, , )\n", + "('light_rail_below_above_ground_0', 691.7835817337036, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 131.8664140701294, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 131.78922510147095, , )\n", + "('commuter_rail_with_tunnels_0', 3553.33673620224, , )\n", + "('inner_suburb_downtown_walk_0', 980.8175230026245, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1574179769.196, 1574179769.1979809)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1574180632.585, 1574180632.711004)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574180632.586, 1574180632.727952)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574181011.897, 1574181010.897)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574181011.897, 1574181010.897)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574183444.202, 1574183444.2987452)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574183444.203, 1574183444.316755)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574183542.497, 1574183542.5988889)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1574183542.498, 1574183542.615675)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1574183948.406, 1574183948.537239)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1574183948.407, 1574183948.5511642)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1574187229.882, 1574187229.969036)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1574187229.883, 1574187229.982356)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1574187518.688, 1574187518.747113)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574187518.688, 1574187518.763582)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574187964.946, 1574187965.0748801)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1574187964.946, 1574187965.110849)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1574188271.755, 1574188271.8153539)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1574188271.755, 1574188271.829221)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1574188370.328, 1574188370.431066)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 863.5130231380463, , )\n", + "('wait_for_commuter_rail_aboveground_0', 378.1690480709076, , )\n", + "('commuter_rail_aboveground_0', 2433.401745080948, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 98.28213381767273, , )\n", + "('wait_for_subway_underground_0', 405.92156410217285, , )\n", + "('subway_underground_0', 3281.417871952057, , )\n", + "('walk_to_bus_0', 288.7647569179535, , )\n", + "('wait_for_city_bus_short_0', 446.31129813194275, , )\n", + "('city_bus_short_0', 306.70450496673584, , )\n", + "('walk_end_0', 98.60184502601624, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1574199058.957, 1574199058.9590092)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1574199814.218, 1574199814.310667)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 755.3516578674316, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1574208748.015, 1574208748.01702)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1574209144.479, 1574209144.602025)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574209144.48, 1574209144.6219401)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574210399.536, 1574210399.648272)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574210399.537, 1574210399.6661391)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574210610.042, 1574210610.200918)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1574210610.043, 1574210610.219314)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1574211157.897, 1574211156.897)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1574211157.897, 1574211156.897)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1574213197.666, 1574213197.721724)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574213197.666, 1574213197.734812)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574213852.44, 1574213852.495171)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574213852.44, 1574213852.5104342)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574214132.94, 1574214133.0568728)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574214132.941, 1574214133.0755801)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574214958.203, 1574214958.3241138)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574214958.203, 1574214958.341655)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574215095.354, 1574215095.4499168)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574215095.354, 1574215095.467871)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574215114.618, 1574215114.74494)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574215114.619, 1574215114.7563372)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574218632.062, 1574218632.189211)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574218632.062, 1574218632.2073488)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574219738.37, 1574219738.473501)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 396.58500504493713, , )\n", + "('ebike_bikeshare_urban_long_0', 1255.0263319015503, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 210.53477883338928, , )\n", + "('wait_for_express_bus_0', 546.6776859760284, , )\n", + "('express_bus_0', 2040.8247239589691, , )\n", + "('walk_downtown_urban_canyon_0', 654.7603590488434, , )\n", + "('wait_for_light_rail_below_above_ground_0', 280.54643869400024, , )\n", + "('light_rail_below_above_ground_0', 825.2485337257385, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 137.10826182365417, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 19.277069091796875, , )\n", + "('commuter_rail_with_tunnels_0', 3517.432873725891, , )\n", + "('inner_suburb_downtown_walk_0', 1106.2661521434784, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1574266253.841, 1574266253.843056)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1574267240.011, 1574267240.12881)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574267240.012, 1574267240.14868)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574267333.88, 1574267334.008919)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574267333.88, 1574267334.037313)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574269695.476, 1574269695.597497)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574269695.476, 1574269695.616243)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574269821.385, 1574269821.493391)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1574269821.386, 1574269821.509687)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1574270356.463, 1574270356.5916681)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1574270356.464, 1574270356.608511)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1574273636.589, 1574273636.69327)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1574273636.59, 1574273636.70922)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1574273926.171, 1574273926.233121)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574273926.171, 1574273926.252119)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574274358.795, 1574274358.916769)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1574274358.796, 1574274358.946694)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1574274601.279, 1574274601.3438458)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1574274601.28, 1574274601.3594089)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1574274677.982, 1574274678.1278)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 986.2857539653778, , )\n", + "('wait_for_commuter_rail_aboveground_0', 93.86023902893066, , )\n", + "('commuter_rail_aboveground_0', 2361.5601840019226, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 125.8771481513977, , )\n", + "('wait_for_subway_underground_0', 535.0819811820984, , )\n", + "('subway_underground_0', 3280.0847589969635, , )\n", + "('walk_to_bus_0', 289.5239009857178, , )\n", + "('wait_for_city_bus_short_0', 432.6646499633789, , )\n", + "('city_bus_short_0', 242.39715194702148, , )\n", + "('walk_end_0', 76.76839113235474, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1574286383.437, 1574286383.452855)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1574287165.083, 1574287165.221789)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 781.7689337730408, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1574295435.631, 1574295435.632617)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1574295842.111, 1574295842.243928)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574295842.112, 1574295842.259553)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574296928.095, 1574296928.1902351)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574296928.096, 1574296928.2130718)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574297124.261, 1574297124.381939)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1574297124.261, 1574297124.396679)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1574298896.642, 1574298896.767448)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1574298896.643, 1574298896.7788792)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1574300864.614, 1574300864.683578)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574300864.614, 1574300864.699325)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574301511.959, 1574301512.022079)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574301511.96, 1574301512.037335)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574301547.263, 1574301547.338562)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574301547.263, 1574301547.3517919)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574302321.817, 1574302321.948523)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574302321.818, 1574302321.9674768)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574302488.405, 1574302488.503263)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574302488.406, 1574302488.5191932)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574302584.286, 1574302584.4142652)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574302584.286, 1574302584.431006)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574305391.374, 1574305391.476595)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574305391.375, 1574305391.492787)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574306491.893, 1574306491.9954991)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 406.6113109588623, , )\n", + "('ebike_bikeshare_urban_long_0', 1085.930682182312, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 196.16886711120605, , )\n", + "('wait_for_express_bus_0', 1772.3707690238953, , )\n", + "('express_bus_0', 1967.9046988487244, , )\n", + "('walk_downtown_urban_canyon_0', 647.32275390625, , )\n", + "('wait_for_light_rail_below_above_ground_0', 35.30122709274292, , )\n", + "('light_rail_below_above_ground_0', 774.5967311859131, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 166.535786151886, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 95.8950719833374, , )\n", + "('commuter_rail_with_tunnels_0', 2807.0455889701843, , )\n", + "('inner_suburb_downtown_walk_0', 1100.5027122497559, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1575389710.012, 1575389710.013753)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1575390557.725, 1575390557.797813)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575390557.725, 1575390557.813025)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575390671.701, 1575390671.824874)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575390671.701, 1575390671.838859)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575393104.65, 1575393104.7474031)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575393104.65, 1575393104.760397)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575393371.493, 1575393371.5547519)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1575393371.494, 1575393371.570674)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1575393554.993, 1575393555.1622062)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1575393554.994, 1575393555.177682)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1575396891.459, 1575396891.5672112)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1575396891.46, 1575396891.585198)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1575397197.189, 1575397197.254668)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575397197.19, 1575397197.2696428)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575397704.796, 1575397704.8927789)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1575397704.796, 1575397704.907356)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1575397944.868, 1575397944.952499)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1575397944.869, 1575397944.9693341)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1575398091.136, 1575398091.275875)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 847.7840600013733, , )\n", + "('wait_for_commuter_rail_aboveground_0', 114.01184892654419, , )\n", + "('commuter_rail_aboveground_0', 2432.908544063568, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 266.7943549156189, , )\n", + "('wait_for_subway_underground_0', 183.5915322303772, , )\n", + "('subway_underground_0', 3336.3895292282104, , )\n", + "('walk_to_bus_0', 305.6694700717926, , )\n", + "('wait_for_city_bus_short_0', 507.6231360435486, , )\n", + "('city_bus_short_0', 240.04514288902283, , )\n", + "('walk_end_0', 146.30654096603394, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1575411220.999, 1575411221.001165)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1575412027.391, 1575412027.4755569)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 806.4743919372559, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1575418480.017, 1575418480.018688)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1575418852.431, 1575418852.553446)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575418852.432, 1575418852.571622)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575420112.41, 1575420112.4956799)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575420112.41, 1575420112.510627)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575420311.948, 1575420312.076577)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1575420311.949, 1575420312.09137)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1575422229.431, 1575422229.559617)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1575422229.432, 1575422229.5720282)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1575424441.593, 1575424441.647733)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575424441.593, 1575424441.662973)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575425032.055, 1575425032.112617)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575425032.055, 1575425032.129914)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575425071.292, 1575425071.4522982)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575425071.292, 1575425071.495168)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575425739.839, 1575425739.959332)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575425739.839, 1575425739.972456)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575425947.989, 1575425948.0993838)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575425947.99, 1575425948.148083)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575426214.9955425, 1575426214.995425)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575426214.9955425, 1575426214.995425)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575429358.258, 1575429358.3570461)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575429358.258, 1575429358.371612)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575430485.229, 1575430485.327901)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 372.5347580909729, , )\n", + "('ebike_bikeshare_urban_long_0', 1259.9240579605103, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 199.5659499168396, , )\n", + "('wait_for_express_bus_0', 1917.468246936798, , )\n", + "('express_bus_0', 2212.0757048130035, , )\n", + "('walk_downtown_urban_canyon_0', 590.4496440887451, , )\n", + "('wait_for_light_rail_below_above_ground_0', 39.32238411903381, , )\n", + "('light_rail_below_above_ground_0', 668.464164018631, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 208.12692785263062, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 266.84734201431274, , )\n", + "('commuter_rail_with_tunnels_0', 3143.3616211414337, , )\n", + "('inner_suburb_downtown_walk_0', 1126.9562888145447, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1575908071.776, 1575908071.7778401)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1575908934.32, 1575908934.4287481)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575908934.32, 1575908934.446835)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575908956.399, 1575908956.518385)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575908956.4, 1575908956.5326672)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575911221.124, 1575911221.2277498)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575911221.125, 1575911221.239619)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575911360.05, 1575911360.119776)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1575911360.05, 1575911360.135001)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1575911949.343, 1575911949.4715881)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1575911949.343, 1575911949.48616)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1575915233.977, 1575915234.102242)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1575915233.978, 1575915234.115241)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1575915523.518, 1575915523.582602)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575915523.519, 1575915523.600668)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575915983.617, 1575915983.734451)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1575915983.618, 1575915983.752368)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1575916286.563, 1575916286.629283)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1575916286.563, 1575916286.647674)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1575916403.953, 1575916404.062547)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 862.6509079933167, , )\n", + "('wait_for_commuter_rail_aboveground_0', 22.071549892425537, , )\n", + "('commuter_rail_aboveground_0', 2264.6950826644897, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 138.88015699386597, , )\n", + "('wait_for_subway_underground_0', 589.336587190628, , )\n", + "('subway_underground_0', 3284.6160819530487, , )\n", + "('walk_to_bus_0', 289.46736097335815, , )\n", + "('wait_for_city_bus_short_0', 460.1337831020355, , )\n", + "('city_bus_short_0', 302.87691497802734, , )\n", + "('walk_end_0', 117.41487288475037, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1575928741.679, 1575928741.680685)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1575929509.8, 1575929509.899955)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 768.219269990921, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1575936809.498, 1575936809.499685)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1575937206.07, 1575937206.154803)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575937206.071, 1575937206.170308)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575938572.203, 1575938572.299881)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575938572.203, 1575938572.318942)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575938737.334, 1575938737.4409451)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1575938737.335, 1575938737.458897)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1575939105.047, 1575939105.258172)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1575939105.048, 1575939105.271008)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1575941041.908, 1575941041.986855)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575941041.909, 1575941042.004503)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575941722.578, 1575941722.639512)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575941722.578, 1575941722.656255)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575942593.503, 1575942593.611716)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575942593.504, 1575942593.632485)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575943650.248, 1575943650.352837)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575943650.249, 1575943650.369656)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575943846.604, 1575943846.700728)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575943846.604, 1575943846.719356)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575944185.549, 1575944185.678565)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575944185.549, 1575944185.695963)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575947052.029, 1575947052.138833)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575947052.03, 1575947052.1525822)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575948198.981, 1575948199.0729141)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 396.6551179885864, , )\n", + "('ebike_bikeshare_urban_long_0', 1366.1295728683472, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 165.1220030784607, , )\n", + "('wait_for_express_bus_0', 367.79927492141724, , )\n", + "('express_bus_0', 1936.7158470153809, , )\n", + "('walk_downtown_urban_canyon_0', 680.6350090503693, , )\n", + "('wait_for_light_rail_below_above_ground_0', 870.955461025238, , )\n", + "('light_rail_below_above_ground_0', 1056.7203521728516, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 196.3310718536377, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 338.9592089653015, , )\n", + "('commuter_rail_with_tunnels_0', 2866.4428701400757, , )\n", + "('inner_suburb_downtown_walk_0', 1146.920331954956, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1576080764.768, 1576080764.769524)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1576081719.516, 1576081719.6002588)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1576081719.516, 1576081719.613346)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1576081750.869, 1576081750.985812)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1576081750.87, 1576081750.999586)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1576084072.959, 1576084073.0620441)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1576084072.959, 1576084073.075906)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1576084193, 1576084193.066503)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1576084193.001, 1576084193.116282)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1576084758.995234, 1576084758.995234)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1576084758.995234, 1576084758.995234)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1576089116.165, 1576089116.3358278)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1576089116.166, 1576089116.348295)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1576089408.113, 1576089408.169499)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1576089408.113, 1576089408.1854072)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1576089934.74, 1576089934.855829)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1576089934.74, 1576089934.88463)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1576090303.958, 1576090304.031591)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1576090303.959, 1576090304.0487561)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1576090424.839, 1576090424.974391)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 954.8307347297668, , )\n", + "('wait_for_commuter_rail_aboveground_0', 31.37246584892273, , )\n", + "('commuter_rail_aboveground_0', 2322.06245803833, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 119.99059700965881, , )\n", + "('wait_for_subway_underground_0', 565.8789520263672, , )\n", + "('subway_underground_0', 4357.34059381485, , )\n", + "('walk_to_bus_0', 291.82120394706726, , )\n", + "('wait_for_city_bus_short_0', 526.6704218387604, , )\n", + "('city_bus_short_0', 369.1469609737396, , )\n", + "('walk_end_0', 120.92563486099243, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1576102138.581, 1576102138.5839372)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1576102858.665, 1576102858.7509608)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 720.1670236587524, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1576109913.651, 1576109913.6531029)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1576110266.9917374, 1576110266.9917374)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1576110266.9917374, 1576110266.9917374)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1576111473.9968104, 1576111473.9968104)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1576111473.9968104, 1576111473.9968104)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1576111656.844, 1576111656.97548)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1576111656.845, 1576111656.995975)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1576111830.094, 1576111830.211318)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1576111830.095, 1576111830.22807)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1576114356.13, 1576114356.1858)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1576114356.13, 1576114356.2003798)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1576114963.071, 1576114963.129798)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1576114963.072, 1576114963.149637)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1576115065.212, 1576115065.3405042)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1576115065.213, 1576115065.358482)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1576115966.628, 1576115966.7472801)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1576115966.628, 1576115966.764265)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1576116238.601, 1576116238.695193)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1576116238.601, 1576116238.713285)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1576116962.09, 1576116962.214097)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1576116962.09, 1576116962.230132)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1576119736.022, 1576119736.12637)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1576119736.022, 1576119736.1400042)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1576120833.027, 1576120833.133178)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 353.3386344909668, , )\n", + "('ebike_bikeshare_urban_long_0', 1207.0050730705261, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 182.9786696434021, , )\n", + "('wait_for_express_bus_0', 173.21534299850464, , )\n", + "('express_bus_0', 2525.9577300548553, , )\n", + "('walk_downtown_urban_canyon_0', 606.9294180870056, , )\n", + "('wait_for_light_rail_below_above_ground_0', 102.19086718559265, , )\n", + "('light_rail_below_above_ground_0', 901.3887982368469, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 271.93092799186707, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 723.5008120536804, , )\n", + "('commuter_rail_with_tunnels_0', 2773.896237850189, , )\n", + "('inner_suburb_downtown_walk_0', 1096.9931738376617, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1581005686.483, 1581005686.484885)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1581006568.464, 1581006568.5455751)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1581006568.465, 1581006568.560254)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1581006766.372, 1581006766.480669)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1581006766.372, 1581006766.493425)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1581008982.357, 1581008982.4554648)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1581008982.358, 1581008982.4730148)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1581009144.263, 1581009144.364608)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1581009144.264, 1581009144.380671)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1581009563.431, 1581009563.547101)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1581009563.431, 1581009563.561791)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1581012837.901, 1581012837.9862099)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1581012837.902, 1581012838)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1581013101.07, 1581013101.1649241)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1581013101.071, 1581013101.179121)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1581013469.143, 1581013469.229927)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1581013469.143, 1581013469.2499142)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1581013738.823, 1581013738.8944879)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1581013738.823, 1581013738.91119)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1581013808.594, 1581013808.704881)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_subway_underground', 'city_bus_short', 'walk_end', 'subway_underground', 'walk_to_caltrain', 'walk_to_bus', 'commuter_rail_aboveground', 'tt_commuter_rail_aboveground_subway_underground', 'wait_for_city_bus_short', 'wait_for_commuter_rail_aboveground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 882.060690164566, , )\n", + "('wait_for_commuter_rail_aboveground_0', 197.92041492462158, , )\n", + "('commuter_rail_aboveground_0', 2215.9620399475098, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 161.89159321784973, , )\n", + "('wait_for_subway_underground_0', 419.1664299964905, , )\n", + "('subway_underground_0', 3274.424418926239, , )\n", + "('walk_to_bus_0', 263.1649241447449, , )\n", + "('wait_for_city_bus_short_0', 368.0508060455322, , )\n", + "('city_bus_short_0', 269.6445736885071, , )\n", + "('walk_end_0', 69.7936909198761, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1581023219.802, 1581023219.804801)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1581024049.178, 1581024049.2686338)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 829.4638328552246, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1581034644.804, 1581034644.806316)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1581035032.951, 1581035033.109107)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1581035032.952, 1581035033.124055)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1581036348.885, 1581036348.9817)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1581036348.885, 1581036348.996716)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1581036538.116, 1581036538.23107)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1581036538.116, 1581036538.245713)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1581036665.686, 1581036665.801511)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1581036665.686, 1581036665.813245)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1581038884.793, 1581038884.870723)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1581038884.794, 1581038884.884715)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1581039494.471, 1581039494.5409498)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1581039494.472, 1581039494.5540261)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1581039513.571, 1581039513.67571)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1581039513.571, 1581039513.6940122)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1581040199.51, 1581040199.636063)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1581040199.511, 1581040199.650487)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1581040394.255, 1581040394.362896)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1581040394.256, 1581040394.380787)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1581040721.378, 1581040721.506589)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1581040721.378, 1581040721.520253)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1581044197.24, 1581044197.3355699)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1581044197.24, 1581044197.3491979)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1581045370.564, 1581045370.655577)\n", + "All ranges are complete, nothing to change\n", + "{'ebike_bikeshare_urban_long', 'commuter_rail_with_tunnels', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'tt_ebike_bikeshare_urban_long_express_bus', 'express_bus', 'inner_suburb_downtown_walk', 'wait_for_express_bus', 'wait_for_light_rail_below_above_ground', 'walk_downtown_urban_canyon', 'light_rail_below_above_ground', 'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 388.3027911186218, , )\n", + "('ebike_bikeshare_urban_long_0', 1315.85764503479, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 189.23435401916504, , )\n", + "('wait_for_express_bus_0', 127.55579805374146, , )\n", + "('express_bus_0', 2219.05747795105, , )\n", + "('walk_downtown_urban_canyon_0', 609.6562347412109, , )\n", + "('wait_for_light_rail_below_above_ground_0', 19.121683835983276, , )\n", + "('light_rail_below_above_ground_0', 685.9420509338379, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 194.71240901947021, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 327.1258020401001, , )\n", + "('commuter_rail_with_tunnels_0', 3475.815316915512, , )\n", + "('inner_suburb_downtown_walk_0', 1173.3063790798187, , )\n", + "-------------------- About to copy trip and section ranges --------------------\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_0\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_1\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_2\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_3\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_4\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_5\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_6\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_7\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_8\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_9\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_10\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_11\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "dict_keys(['ucb-sdb-android-1', 'ucb-sdb-android-2', 'ucb-sdb-android-3', 'ucb-sdb-android-4'])\n", + "Found accuracy control, skipping copy\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "dict_keys(['ucb-sdb-ios-1', 'ucb-sdb-ios-2', 'ucb-sdb-ios-3', 'ucb-sdb-ios-4'])\n", + "Found accuracy control, skipping copy\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "-------------------- About to fill in battery information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in location information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in motion activity information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "Processing data for ios phones\n", + "-------------------- About to fill in transition information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "Processing data for ios phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "-------------------- About to select trip specific ranges --------------------\n", + "Filling label ucb-sdb-android-1 for OS android\n", + "Filling label ucb-sdb-android-2 for OS android\n", + "Filling label ucb-sdb-android-3 for OS android\n", + "Filling label ucb-sdb-android-4 for OS android\n", + "Filling label ucb-sdb-ios-1 for OS ios\n", + "Filling label ucb-sdb-ios-2 for OS ios\n", + "Filling label ucb-sdb-ios-3 for OS ios\n", + "Filling label ucb-sdb-ios-4 for OS ios\n", + "-------------------- Done populating information from server --------------------\n", + "-------------------- About to read transitions from server --------------------\n", + "Reading data for android phones\n", + "Loading transitions for phone ucb-sdb-android-1\n", + "Loading transitions for phone ucb-sdb-android-2\n", + "Loading transitions for phone ucb-sdb-android-3\n", + "Loading transitions for phone ucb-sdb-android-4\n", + "Reading data for ios phones\n", + "Loading transitions for phone ucb-sdb-ios-1\n", + "Loading transitions for phone ucb-sdb-ios-2\n", + "Loading transitions for phone ucb-sdb-ios-3\n", + "Loading transitions for phone ucb-sdb-ios-4\n", + "-------------------- About to fill calibration ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for android phones\n", + "---------- ucb-sdb-android-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-1\n", + "---------- ucb-sdb-android-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-2\n", + "---------- ucb-sdb-android-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-3\n", + "---------- ucb-sdb-android-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "---------- ucb-sdb-ios-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-1\n", + "---------- ucb-sdb-ios-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-2\n", + "---------- ucb-sdb-ios-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-3\n", + "---------- ucb-sdb-ios-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-4\n", + "-------------------- About to fill evaluation ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing data for android phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564274314.703, 1564274314.707)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564282393.38, 1564282393.429)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564334117.292, 1564334117.295)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564343045.844, 1564343045.9)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564351305.631, 1564351305.633)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564360156.337, 1564360156.392)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565571034.928, 1565571034.93)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565579009.94, 1565579009.992)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567271203.762, 1567271203.764)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567279427.902, 1567279427.961)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567288614.637, 1567288614.642)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567297340.873, 1567297340.931)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-android-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564274304.964, 1564274304.968)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564282402.797, 1564282402.886)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564334125.757, 1564334125.764)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564343114.995, 1564343115.071)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564351292.699, 1564351292.705)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564360115.721, 1564360115.769)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565571044.18, 1565571044.182)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565578986.721, 1565578986.772)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567271214.9, 1567271214.906)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567279427.902, 1567279427.961)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567288623.389, 1567288623.391)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567297357.143, 1567297357.197)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC'}\n", + "Found 6 ranges for phone ucb-sdb-android-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564274288.317, 1564274288.319)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564282423.016, 1564282423.072)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564334097.326, 1564334097.33)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564343025.354, 1564343025.406)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564351277.476, 1564351277.477)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564360134.114, 1564360134.181)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565571018.558, 1565571018.59)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565578932.067, 1565578932.123)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567271178.819, 1567271178.821)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567279372.856, 1567279372.922)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567288638.5, 1567288638.503)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567297394.787, 1567297394.837)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s MAHFDC:MAHFDC', 'HAHFDC v/s HAMFDC:HAMFDC'}\n", + "Found 6 ranges for phone ucb-sdb-android-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564274294.641, 1564274294.643)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564282430.409, 1564282430.466)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564334109.335, 1564334109.339)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564343036.806, 1564343036.862)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564351263.927, 1564351263.931)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564360071.356, 1564360071.417)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565571031.116, 1565571031.117)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565578943.815, 1565578943.865)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567271197.464, 1567271197.466)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567279384.632, 1567279384.692)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567288647.368, 1567288647.374)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567297374.866, 1567297374.928)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564274247.027, 1564274247.275763)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564282290.263, 1564282290.729272)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564333996.334, 1564333996.5363011)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564342974.992, 1564342975.472409)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564351245.906, 1564351246.07085)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564359996.562, 1564359997.0496612)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565570971.091, 1565570971.32563)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565578880.958, 1565578881.489321)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567271123.206, 1567271123.399004)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567279295.857, 1567279296.302381)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567288562.356, 1567288562.5305119)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567297289.683, 1567297290.194202)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-ios-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564274252.329, 1564274252.429922)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564282305.17, 1564282305.5882301)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564334014.665, 1564334014.759484)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564342987.314, 1564342987.826695)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564351227.116, 1564351227.1936831)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564360024.097, 1564360024.574613)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565570980.374, 1565570980.468295)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565578894.413, 1565578894.831118)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567271138.209, 1567271138.302989)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567279315.612, 1567279316.048905)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567288571.574, 1567288571.670926)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567297301.414, 1567297301.8416538)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC'}\n", + "Found 6 ranges for phone ucb-sdb-ios-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564274265.117, 1564274265.212364)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564282322.101, 1564282322.549677)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564334083.878, 1564334084.0051398)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564342996.549, 1564342996.99437)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564351207.793, 1564351207.910284)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564360052.904, 1564360053.314023)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565570999.334, 1565570999.409437)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565578907.119, 1565578907.587743)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567271152.177, 1567271152.31305)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567279337.265, 1567279337.681006)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567288581.602, 1567288581.6808891)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567297315.554, 1567297316.01469)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC'}\n", + "Found 6 ranges for phone ucb-sdb-ios-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564274275.916, 1564274276.021558)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564282331.795, 1564282332.15351)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564334069.022, 1564334069.1049929)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564343007.324, 1564343007.721693)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564351193.165, 1564351193.2504249)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564360033.509, 1564360033.887364)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565570989.614, 1565570989.744656)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565578915.403, 1565578915.798939)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567271164.674, 1567271164.779111)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567279350.381, 1567279350.7691588)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567288593.275, 1567288593.3784451)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567297325.117, 1567297325.508904)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-ios-4\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill evaluation trips --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Lengths (accuracy, power, eval) = (2, 2, 2)\n", + "keys (accuracy, power, eval) = (dict_keys(['android', 'ios']), dict_keys(['android', 'ios']), dict_keys(['android', 'ios']))\n", + "eval_phone_keys (android, ios) = (dict_keys(['ucb-sdb-android-2', 'ucb-sdb-android-3']), dict_keys(['ucb-sdb-ios-2', 'ucb-sdb-ios-3']))\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564274334.097, 1564274334.143985)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564275296.5, 1564275296.504297)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1564279157.404, 1564279157.435039)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1564280457.454, 1564280457.464819)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_bicycling', 'suburb_city_driving_weekend'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564334343.713, 1564334343.776588)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564335144.075, 1564335144.0807219)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1564339686.632, 1564339686.675345)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1564340984.813, 1564340984.8298311)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_bicycling', 'suburb_city_driving_weekend'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564351324.911, 1564351324.965219)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564352210.52, 1564352210.532115)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1564356822.001, 1564356822.064345)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1564358080.307, 1564358080.320724)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_bicycling', 'suburb_city_driving_weekend'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1565571079.137, 1565571079.220633)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1565572029.677, 1565572029.679044)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1565575844.795, 1565575844.86444)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1565577104.678, 1565577104.679491)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_bicycling', 'suburb_city_driving_weekend'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567271247.478, 1567271247.557744)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567272188.472, 1567272188.473621)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1567276250.095, 1567276250.1663961)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1567277558.77, 1567277558.77193)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_bicycling', 'suburb_city_driving_weekend'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567288662.724, 1567288662.7980719)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567289688.795, 1567289688.798746)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1567294205.224, 1567294205.301877)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1567295493.717, 1567295493.719355)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_bicycling', 'suburb_city_driving_weekend'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "-------------------- About to fill in evaluation sections --------------------\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564274334.164, 1564274334.1926432)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564274403.167, 1564274403.3032)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564274403.168, 1564274403.318182)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564275146.671, 1564275146.823849)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564275146.672, 1564275146.843096)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564275296.359, 1564275296.450234)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_city_driving_weekend'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 69.1105568408966, , )\n", + "('suburb_city_driving_weekend_0', 743.5056669712067, , )\n", + "('walk_end_0', 149.6071379184723, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564279157.454, 1564279157.495898)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564279266.482, 1564279266.611826)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1564279266.482, 1564279266.626976)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1564280430.855, 1564280431.0447721)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564280430.858, 1564280431.060968)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564280457.294, 1564280457.402429)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 109.1159279346466, , )\n", + "('suburb_bicycling_0', 1164.4177961349487, , )\n", + "('walk_end_0', 26.341461181640625, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564334343.814, 1564334343.849936)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564334440.991, 1564334441.1367059)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564334440.991, 1564334441.1543741)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564335067.619, 1564335067.707838)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564335067.619, 1564335067.72556)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564335143.963, 1564335144.027879)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_city_driving_weekend'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 97.28676986694336, , )\n", + "('suburb_city_driving_weekend_0', 626.553463935852, , )\n", + "('walk_end_0', 76.3023190498352, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564339686.694, 1564339686.740189)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564339729.446, 1564339729.558238)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1564339729.447, 1564339729.5745811)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1564340956.308, 1564340956.4001331)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564340956.309, 1564340956.420092)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564340984.676, 1564340984.770471)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 42.81804895401001, , )\n", + "('suburb_bicycling_0', 1226.8255519866943, , )\n", + "('walk_end_0', 28.35037899017334, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564351324.989, 1564351325.023067)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564351473.255, 1564351473.412651)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564351473.255, 1564351473.431247)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564352106.152, 1564352106.261671)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564352106.154, 1564352106.274094)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564352210.414, 1564352210.4803581)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_city_driving_weekend'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 148.38958406448364, , )\n", + "('suburb_city_driving_weekend_0', 632.8304240703583, , )\n", + "('walk_end_0', 104.20626401901245, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564356822.09, 1564356822.1187859)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564356889.402, 1564356889.523539)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1564356889.403, 1564356889.550396)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1564358050.089, 1564358050.176182)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564358050.09, 1564358050.1955462)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564358080.215, 1564358080.2698169)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 67.4047532081604, , )\n", + "('suburb_bicycling_0', 1160.6257860660553, , )\n", + "('walk_end_0', 30.074270725250244, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565571079.241, 1565571079.242693)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565571175.609, 1565571175.7620249)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1565571175.61, 1565571175.782531)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1565571953.681, 1565571953.7665071)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565571953.682, 1565571953.78511)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565572029.568, 1565572029.659311)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_city_driving_weekend'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 96.51933193206787, , )\n", + "('suburb_city_driving_weekend_0', 777.9839761257172, , )\n", + "('walk_end_0', 75.87420105934143, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565575844.881, 1565575844.882667)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565575867.91, 1565575868.047845)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1565575867.911, 1565575868.070318)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1565577083.089, 1565577083.179348)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565577083.089, 1565577083.196254)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565577104.556, 1565577104.662489)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 23.165177822113037, , )\n", + "('suburb_bicycling_0', 1215.109030008316, , )\n", + "('walk_end_0', 21.466234922409058, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567271247.575, 1567271247.576847)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567271392.479, 1567271392.611938)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567271392.48, 1567271392.6307611)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567272089.491, 1567272089.573759)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567272089.491, 1567272089.591776)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567272188.343, 1567272188.458191)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_city_driving_weekend'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 145.03509092330933, , )\n", + "('suburb_city_driving_weekend_0', 696.9429979324341, , )\n", + "('walk_end_0', 98.86641502380371, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567276250.181, 1567276250.1824331)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567276325.344, 1567276325.466161)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1567276325.345, 1567276325.4886708)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1567277505.849, 1567277505.958387)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567277505.849, 1567277505.978064)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567277558.647, 1567277558.7505531)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 75.2837278842926, , )\n", + "('suburb_bicycling_0', 1180.4697160720825, , )\n", + "('walk_end_0', 52.772489070892334, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567288662.816, 1567288662.817456)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567288779.265, 1567288779.377613)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567288779.266, 1567288779.394477)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567289562.833, 1567289562.940675)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567289562.834, 1567289562.955183)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567289688.68, 1567289688.778185)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_city_driving_weekend'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 116.56015706062317, , )\n", + "('suburb_city_driving_weekend_0', 783.5461981296539, , )\n", + "('walk_end_0', 125.82300186157227, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567294205.316, 1567294205.318416)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567294272.897, 1567294273.010757)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1567294272.898, 1567294273.024204)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1567295465.83, 1567295465.923053)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567295465.831, 1567295465.9380589)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567295493.602, 1567295493.7019649)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 67.69234085083008, , )\n", + "('suburb_bicycling_0', 1192.8988490104675, , )\n", + "('walk_end_0', 27.763906002044678, , )\n", + "-------------------- About to copy trip and section ranges --------------------\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_0\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_1\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_2\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_3\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_4\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_5\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "dict_keys(['ucb-sdb-android-1', 'ucb-sdb-android-2', 'ucb-sdb-android-3', 'ucb-sdb-android-4'])\n", + "Found accuracy control, skipping copy\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "dict_keys(['ucb-sdb-ios-1', 'ucb-sdb-ios-2', 'ucb-sdb-ios-3', 'ucb-sdb-ios-4'])\n", + "Found accuracy control, skipping copy\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "-------------------- About to fill in battery information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in location information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in motion activity information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "Processing data for ios phones\n", + "-------------------- About to fill in transition information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "Processing data for ios phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "-------------------- About to select trip specific ranges --------------------\n", + "Filling label ucb-sdb-android-1 for OS android\n", + "Filling label ucb-sdb-android-2 for OS android\n", + "Filling label ucb-sdb-android-3 for OS android\n", + "Filling label ucb-sdb-android-4 for OS android\n", + "Filling label ucb-sdb-ios-1 for OS ios\n", + "Filling label ucb-sdb-ios-2 for OS ios\n", + "Filling label ucb-sdb-ios-3 for OS ios\n", + "Filling label ucb-sdb-ios-4 for OS ios\n", + "-------------------- Done populating information from server --------------------\n" + ] + } + ], + "source": [ + "AUTHOR_EMAIL = \"shankari@eecs.berkeley.edu\"\n", + "DATASTORE_LOC = \"bin/data/\"\n", + "views = ['car_scooter_brex_san_jose', 'train_bus_ebike_mtv_ucb', 'unimodal_trip_car_bike_mtv_la']\n", + "\n", + "sds = {view: eisd.FileSpecDetails(DATASTORE_LOC, AUTHOR_EMAIL, view) for view in views}\n", + "pvs = {view: eipv.PhoneView(sd) for view, sd in sds.items()}" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "2af58156", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created all tasks for ucb-sdb-android-1 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-2 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-3 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-4 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-1 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-2 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-3 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-4 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-1 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-2 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-3 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-4 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-1 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-2 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-3 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-4 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-1 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-android-2 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-android-3 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-android-4 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-1 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-2 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-3 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-4 on unimodal_trip_car_bike_mtv_la\n" + ] + } + ], + "source": [ + "tasks = create_tasks(pvs, DATASTORE_LOC)\n", + "tasks.sort(key=lambda p: (p.view, p.trip_name, p.section_name, p.os, p.phone_number, p.evaluation_range))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de38dee3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VIEW: view PHONE: os-# TRIP: trip_name SECTION: section_name EVAL: ## MODE: pred_mode | act_mode \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: CAR | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: LIGHT_RAIL | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: LIGHT_RAIL | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: CAR | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: CAR | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BUS | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-4 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: CAR | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 5 MODE: CAR | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 0 MODE: BUS | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: BUS | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: BUS | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 0 MODE: TRAIN | TRAIN \n" + ] + } + ], + "source": [ + "print(f'VIEW: {\"view\".ljust(30)}PHONE: {\"os-#\".ljust(12)}TRIP: {\"trip_name\".ljust(40)}SECTION: {\"section_name\".ljust(40)}EVAL: ## MODE: {\"pred_mode\".ljust(11)}| {\"act_mode\".ljust(11)}')\n", + "\n", + "map_data = {}\n", + "for task in tasks:\n", + " task.map_match(map_data, choose_best)\n", + " print(str(task)) " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae091713", + "metadata": {}, + "outputs": [], + "source": [ + "actual_predicted_name_map = {'WALKING': 'WALK', 'BICYCLING': 'BIKE'}\n", + "predicted_sensed_name_map = {'ESCOOTER': 1, 'WALKING': 2, 'E_BIKE': 1, 'BICYCLING': 1, 'CAR': 0, 'BUS': 0, 'LIGHT_RAIL': 0, 'TRAIN': 0, 'SUBWAY': 0}\n", + "\n", + "def is_prediction_correct(row):\n", + " task = row[0]\n", + " if task.actual_mode in actual_predicted_name_map:\n", + " actual_mode = actual_predicted_name_map[task.actual_mode]\n", + " else:\n", + " actual_mode = task.actual_mode\n", + " return actual_mode == task.predicted_mode\n", + "\n", + "def get_section_time(row):\n", + " task = row[0]\n", + " return task.locations.iloc[-1]['ts'] - task.locations.iloc[0]['ts']\n", + "\n", + "for task in tasks:\n", + " if task.predicted_mode == None:\n", + " tasks.remove(task)\n", + "\n", + "def get_os(row):\n", + " return row[0].os\n", + "\n", + "def get_trip(row):\n", + " return row[0].stripped_trip_name\n", + "\n", + "def get_predicted_mode(row):\n", + " return row[0].predicted_mode\n", + "\n", + "def get_actual_mode(row):\n", + " task = row[0]\n", + " if task.actual_mode in actual_predicted_name_map:\n", + " actual_mode = actual_predicted_name_map[task.actual_mode]\n", + " else:\n", + " actual_mode = task.actual_mode\n", + " \n", + " return actual_mode\n", + "\n", + "def weighted_avg(group):\n", + " weights = group['time_taken']\n", + " values = group['is_correct']\n", + " return (values * weights).sum() / weights.sum()\n", + "\n", + "df = pd.DataFrame(tasks)\n", + "df['is_correct'] = df.apply(is_prediction_correct, axis=1)\n", + "df['time_taken'] = df.apply(get_section_time, axis=1)\n", + "df['os'] = df.apply(get_os, axis=1)\n", + "df['trip'] = df.apply(get_trip, axis=1)\n", + "df['predicted_mode'] = df.apply(get_predicted_mode, axis=1)\n", + "df['actual_mode'] = df.apply(get_actual_mode, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4610f45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+UAAAKtCAYAAABBv88/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADjNklEQVR4nOzde1yUdfr/8fc9w0FABDUFEVI0PJSHNF1Ly0PlqaO5rbW6peWmZWVWm7/MDliGHXZd22w7p27lWpa27Vambabt0kENNc3jQioioaaASiDM5/eHX24YGRSU4Ybx9Xw8eCjX3Mxc18w987mv+dwHyxhjBAAAAAAAap3L6QQAAAAAADhT0ZQDAAAAAOAQmnIAAAAAABxCUw4AAAAAgENoygEAAAAAcAhNOQAAAAAADqEpBwAAAADAITTlAAAAAAA4hKYcAAAAAACH0JTXgrFjx8qyLPtn2rRpTqeEALJ27VolJycrOTlZX3zxRZX/rnR9bN26td9y8+Wnn37S1KlT1b17d0VFRSk0NFQtW7bUddddp3/+85+1mktNO3jwoP1azJ07t8LtycnJ9vPu6/balpOTo3vuuUdJSUlq0KCBIiIiFB8frz59+uiOO+7Qnj17/Pr4P/74o/18ffDBB359LAC1h+0e+FN92O7p37+/13vgRD/JycknvK8xY8bYy1anXtQvQU4nEOiOHDmihQsXesXmzZunRx99VJZlOZQVAsnatWu9Nnj69+/vXDIn8cUXX+jXv/61fv75Z694VlaWPvjgA33wwQcaMWKE3n77bQUF1b+Pp4MHD9qvRb9+/TRmzBhnEzqBgwcPqlevXvrxxx+94keOHNHu3buVmpqqsWPHqkWLFn7L4ccff7Sfr9GjR2vYsGF+eywAtYPtHvhbfdruAaqKmXI/e//995Wfny9J9mCUkZGhlStXOplWtRw5csTpFOocnpPqy8zM1LBhw+yG/JZbbtHOnTtVUFCgDz/8UM2aNZMkvfvuu5oyZYqTqUryz2ucnJwsY4yMMY437K+//rrdkI8ZM0ZZWVn65ZdftH37dr333nu64YYb1KBBA0dzBFD/sN0TmHhOqueLL76wx3tjjPr162ffNmfOHK/bKpspL33O586day/LFxABzMCvLr30UiPJSDJ33HGH/f8xY8b4XP6HH34wt956q2ndurUJCQkxjRo1Ml27djUvvPCC13Jff/21ueGGG0zLli1NcHCwady4sfnVr35lFi5caIwxJiMjw36sfv36ef1tq1at7NtKLV++3I6NHj3avPHGG+a8884zwcHB5rHHHjPGGDN9+nRz8cUXmxYtWpgGDRqY0NBQk5iYaG699VaTkZFRrVpKSkrMOeecYySZsLAws3//fq+/7dy5s5FkQkJCTE5OTqXP7/F5v/3226Zz584mNDTUJCQkmGnTppmSkhKvv8nPzzfJycmmc+fOJjw83DRo0MB06tTJzJgxwxQWFnotW3rfrVq1MqmpqaZv374mPDzc6zmt6mu2YsUKM2zYMBMTE2OCg4NNs2bNzPDhw83q1au9lnvsscfsx3355ZfNI488Ys4++2wTFhZmunfvbpYuXerztTz+p/R1q0z52tatW2cGDhxowsPDTePGjc2YMWPMvn37jDHGpKenG7fbbSSZX/3qV1738dNPP5mgoCAjyZx//vknfLxJkybZj9m5c2fj8Xi8bl+wYIF9e/nX3enXeNGiRWbIkCHm7LPPNg0bNjRBQUEmJibGXH311WbFihX2/YwePbrS16L0vsq/tnPmzPH5Om7ZssUMGzbMNGrUyJx11llmxIgR5qeffvLK+cCBA+b3v/+9adKkiQkPDzeDBw82GzZs8Pnersy4cePsZd96660TLjtv3jx72cmTJ3vd9v7779u3TZo0yRhjzMGDB82ECRNMYmKiCQkJMWFhYSYhIcEMGTLEvP3228YYY/r161fp8zV69Gj7/tPT0824cePs+4qMjDSXXHKJeffdd73yOH49ee2110xSUpJp0KCBufDCC81XX31lfvnlF/Pggw+a2NhYEx0dbYYMGWK2b99+0ucKQNWx3cN2T6kzfbunvPJjXvnx//iafvjhB3PllVeayMhI07p1a2OM9/bF8uXLfdazatUqc+mll/qsB/UDTbkf7dixw7hcLiPJxMXFmby8PBMWFmYkmYYNG5pDhw55Lf/RRx+Z0NBQnx801157rb3cK6+8Yt/v8T/33HOPMeb0BqezzjrL54dc165dK/0gbNGihdcAU5Va/vrXv9qxp59+2v7b9evX2/Ebb7zxhM9x+bybNWvm8/HuuOMOe/n9+/ebc889t9I6+vbt6zVAlcbDw8Pt1678c1rV1+yvf/2rsSzL53LBwcHmn//8p71s+cGpcePGFZYPCQmxNwZqYnBq2LChadSoUYW/P//8880vv/xijDFmxIgRdvybb76x7+O5556z4y+99NIJH699+/b2sn/+858r3F5SUmKio6PtZd5555068Rrfc889ld6X2+02K1euNMbUXFPu6zUfNGiQvWxRUZH51a9+VWGZ6OhoExkZWeG9XZnp06d7rVNXXXWVmTFjhvn888/NkSNHvJYtKioy8fHxRpJp0qSJKSgosG+77rrr7PvZtGmTMcaYYcOGVfpcjBo1yhhTtab822+/9arp+J8HH3zQzuNk60mjRo3MkCFDKsQ7duxoiouLT/p8ATg5tnvY7inFdo+3qjbl5dfFVq1aGWNO3pRHRESY8PDwE9aDuo+m3I8ef/zxCoPGr3/9azs2d+5ce9mCggLTvHlz+7Zbb73V/PjjjyY/P9/85z//MS+//LIxxpjdu3ebBg0a2Ms99NBDZs+ePebgwYNm6dKlZsGCBcaY0xucpGMzXj/99JPZv3+/SU9PN8YYs3jxYrN+/Xrz888/m6NHj5qffvrJ3HLLLfbf/OUvf6lWLUeOHLEHlNatW9vf7E6ePNn+2y+++OKEz/Hxeb/++usmPz/fa9CwLMtuFu666y572dmzZ5u8vDxz8OBBM3HiRK94qfL3PWDAALN161Zz+PBhs3HjxirXmZmZaefSvXt3s2nTJlNYWGhWr15t19+iRQtz9OhRY4z34BQZGWmWLl1qDh48aEaOHGnHZ8yYYec4Z86cKg9I5ZWvbdy4cWb//v1mw4YNJikpqcKAs2rVKjt200032fdR2hxGRkaa/Pz8Ez5e+cH9H//4h89lzj//fHuZZ555xvHX2BhjvvzyS/Pf//7X/PTTT6aoqMjk5uaaF1980f6b4cOH2/d1ovedMVVryvv372927dplNm/e7LV+7dmzxxhjzBtvvOE1YKelpZmff/7ZjB071quWk9mzZ49p2rSpzw2bhg0bmvvuu89rMH/22We9XgNjjs3Yl74G/fv3t5ctbaQvuugis2/fPlNQUGD+97//mTfffNO88cYb9nLHz/gcr1OnTkY69oXDZ599Zn755Rezc+dOc8kll9iv+/fff+9zPXnzzTdNXl6e1xcElmWZ999/3/z888+mR48edvyrr7466fMF4OTY7mG7xxi2e3ypalPeuXNnk5aWZo4cOWLWr19vjDl5U16VelD30ZT7UeluSpJMamqqMcaYd99912vju9Rnn31mx9u2bVvpzM1rr73m8++PdzqD0znnnFNh1ydjjFm5cqW5+uqrTYsWLUxwcHCFDfnbb7+9WrUYY0xycrK97D/+8Q/j8XhMQkKCkY7NYJ1M+bwvuugir9t++9vfVhg4W7Zs6bMJKf9z1VVX2fdRPr5z506v+69qna+++upJH1OSvTtX+cHp3nvvte/nn//8px0fP368HT/dwSkoKMhr9uLll1+2byvfcPbv399IMqGhoSYnJ8ds3bq1wmt/IlVpysvPSvhqymv7NTbm2Htp7Nixpk2bNj5nBzp06OC1bGXvO2Oq1pSvW7fOjpffmC1tHG+88UY79txzz9nL5ufn27vUlX9vn8iuXbvMmDFjTJMmTXw+T/fff7+9bG5urj2z0L17d2PMsdmr0mVLN4yNKftypVGjRuauu+4yL774olm+fHmFWbITNeXbtm2r0vvmj3/8Y4X76tWrl30/5WemevfubccffPBBO/73v/+9Ss8XgBNju4ftHmPY7vGlqk156d535Z2sKa9qPajbONGbn3z55Zfavn27JKlx48Zq0KCB1q5dq5YtW9pnlV6xYoV9oqXs7Gz7b88991y53W6f91t+uc6dO1cpF2OM1+/FxcUnXL5bt25yubxXjW+++UYDBgzQP//5T+3Zs0dHjx6t8HcFBQUVcjxRLZJ05513KiwsTJI0e/ZsrVixQrt27ZIkjR8//oR5Hq9Vq1aV/p6TkyPp2OW4Tmbfvn0VYs2aNVNCQoJXrKp1VuUxK3vcjh072v+PiIiw///LL79U6T6r4qyzzvK6b1/PmyT94Q9/kCQVFhbq1Vdf1dtvv23fdvvtt5/0cc4++2z7/+np6RVu93g82rFjh888Kov5+zXOz89X79699frrrys9PV2FhYUV/q50va8pJ3vNy+devv6GDRuqadOm1Xqs+Ph4zZkzRzk5OVqzZo3+/Oc/67zzzrNvX7Bggf3/Ro0aady4cZKk7777TqmpqfY60Lx5cw0fPtxe9o033lCXLl2Ul5en2bNn64477tCAAQPUrFkzzZw5s0q5nc775pxzzrH/X/r5IkmJiYn2/0NDQ+3/1+T7CThTsd1zDNs9bPecjgsuuKDaf1PVelC30ZT7SflrEB84cEDdu3dXt27d1KdPH3twMMZo3rx5kqTY2Fh7+U2bNsnj8fi83/LLbdiwodLHL3/W5PJnzDx06JDXh6ov4eHhFWILFixQSUmJJGnUqFHat2+fjDH6y1/+csIcT1SLdOyDpPQs1J999pl9iYuwsDCNHj36hHker3xDd/zvzZs3lyTFxMRIOnZG2KysLK+zX5b+pKamVrhvX89JVessfUzp2IDr6zE9Ho8GDx5c4W+Dg4Pt/1d2KZnTvcTMvn37dPjwYft3X8+bJF1xxRU699xzJUkvvfSSPThddNFF6tq160kfZ+jQofb/58yZU+H2999/XwcPHpQkhYSEaMCAARWWqe3X+PPPP7ev1X3eeecpPT1dHo9H69ev91ljTVzu52SveelZ6iXZG3LSsS8Q9u/fX+XHyc3Ntf/vdrvVvXt3TZo0SZ9++qkdP/7+Jk2aZOc3depU+2zKY8eO9cq7W7duWrdunXbt2qVPP/1UL7zwgtq3b6+CggL94Q9/UFZWVqX1lSr/vunQoYPP19EYo5SUlAp/W9nl9OrjZfaA+oLtnmPY7mG753T4et5Ppqr1oG6jKfcDX9forMy8efNkjFGfPn3sN8727ds1fvx47dy5U4cPH9Y333yjV155RdKxxqZ04Fm+fLkeffRR/fTTT8rLy9Py5cv1zjvvSDr2gVi63MaNG5WRkaGSkhJNnTrVHmSqo/zGbIMGDRQWFqZ169bpueeeq7BsVWspdd9998nlcskYoy+++EKSdOONNyo6OrpaOX711VeaO3euDh06pE8++USLFi2SdOzDe+DAgZKk6667TtKxDYPRo0dr06ZNOnr0qLKzs/Xee+9pyJAhevPNN6v0eNV5zUpn5ebMmaO//e1vys3NVUFBgdauXauHH35YvXv3rlat5ZWfHd20aZOKioqq9ffFxcX6wx/+oAMHDuiHH37QH//4R/u2QYMG2f+3LMv+1njXrl32jEhVvy2+//77FRUVJUlav369fv/732v37t0qLCzURx99pLvuuste9u677/ZqPkvV9mtcfr0PCgpSRESEsrOz9dBDD/lcvvxrsWPHDh04cKBKj1Md5V+T5557Ths2bNCBAwd07733nnQ2qLw//vGPuvjii/Xqq69q27ZtKioq0oEDB7w2rMvPmktSy5Yt9dvf/lZS2eVeXC6XPYNe6qGHHtLixYtVXFysvn37asSIEfbstTFGmZmZkryfr23btnltVJxzzjnq1KmTJGnz5s36wx/+YM9Wpaen669//au6dOlSYaMUQO1ju4ftHrZ7nFPVelDH+WOf+DPd3/72N/tYjm7dulW4vbi42OsYn9KTetTkWUiNMea2226z426324SHh5ugoCATEhJywmOrfJ1wKTU11edjtmvXzuffVbWWUuWPnZW8z3R5IuXzjouL8/l45Y/72b9/vznvvPNOeIxT+WN9SmOlZ8A8XlXrfPHFFys9C+nx91/ZcceVvUa7d+/2mUP54458KV2uKmchLVVYWOj1PB9/Ju6T+fzzzys9frn0Z8SIEaaoqMhn3bX9Gh84cMDExsaecL0//u9KL2tT/qf0mLeqHFNenq/jyIqKikzPnj0rPEajRo1Mw4YNfd6PL1OnTj3hc+RyubzOjluq/FmCJZmhQ4dWWKZt27aV3m98fLy9zhQUFPg8e3Dpc/Ptt9/6XDfL/5Sekbey90f5Yw/Lxyt7LQBUH9s9bPccXyfbPd6qeky5Lyc7prw69aDuYqbcD0p3zZKkW2+9tcLtbrfbaxel0pmpK664QmlpabrlllvUunVrhYSEKDIyUl27dvX6puu2225TamqqbrjhBrVs2VLBwcGKjo7Wr371K1188cX2cjNnztT48ePVokULhYSEqGfPnvr888/VokWLatd00UUXaeHCherSpYsaNGigVq1aKSUlRQ8++KDP5ataS6nSbyKlY7u+/upXv6p2jgMHDtR7772nrl27KiQkRPHx8Zo2bZpmz55tL9OkSRN98803euKJJ9StWzdFREQoNDRUrVq10sCBA/WnP/3Jazfrk6lqnbfffru+/PJLXX/99WrRooWCgoLUpEkTde7cWbfffnuFb9GrIy4uTm+//bY6d+7sdfxsVTVt2lRffvmlLr/8coWHhys6OlqjR4/WsmXLvI67lY7tVn733Xfbv48ePdprl8GTGTBggDZu3KiHHnpI559/vho2bKjg4GC1aNFC1157rf7xj3/onXfe8dp9rbzafo2jo6P16aef6rLLLlNkZKSaNm2qsWPH2jMzvrz55pvq37+/vVdATQsODtann36qsWPHqnHjxgoLC9Pll1+uFStW2MucddZZJ72fm266SY8//rguv/xyJSYmqmHDhgoKClKLFi00bNgwLV++XFdddVWFv+vcubPXLoe+ZgzuvvtuDR48WPHx8WrQoIGCg4OVkJCg0aNHa+XKlfY606BBA7377rv6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LZ1Oy69uvfVWPffcc4qMjPSKHz58WHfffbfeeOMNhzLzj7/85S8+45ZlqUGDBjrnnHPUt29fud3uWs6s5lRWoy8TJ070Yya174ILLtDkyZN19913a8SIERo7dqwuvPBCp9M6Ia5Tjlp1yy232P83xmjx4sWKiopSjx49JElr1qzRwYMHNXz4cM2ZM8epNIF6ZcmSJWrYsKEuvvhiSdILL7ygV199Veeee65eeOEFNW7c2OEMgcByySWXaNy4cbrpppuUnZ2t9u3b67zzztPWrVs1ceLEgGpUGzZsqA0bNqh169a65ppr1KdPH/2///f/tHPnTrVv375ezURVx/79+/XWW29p7ty52rBhgy6//HKNHTtW1157rYKDg51Or8a53W7t2bNHzZs394rv27dPsbGxKi4udigz/0hMTNTevXt15MgRNW7cWMYYHTx4UOHh4WrYsKFycnLUpk0bLV++XAkJCU6ne0oSExO9fi+tNzo6WpLseps3b6709HQHMvSvkpIS/etf/9KcOXP08ccf65xzztGtt96qm266STExMU6nVwG7r6NWzZkzx/6JiYnRiBEjlJGRoUWLFmnRokVKT0/XjTfeqLPOOsvpVIF644EHHlBeXp4k6fvvv9f999+vK664Qunp6brvvvsczg4IPL5mj1NTUzV//nzNnTvX2eRq2HnnnaeXXnpJX375pZYtW6YhQ4ZIkrKystS0aVOHs/Ofpk2b6p577lFaWpq+/fZbnXPOObrpppsUFxene++9V9u2bXM6xRqRl5en3NxcGWOUn5+vvLw8++fAgQP6+OOPKzTqgSAlJUU9e/bUtm3btH//fv3888/aunWrevXqpeeee047d+5UbGys7r33XqdTPWUZGRn2z5NPPqnzzz9fmzZt0s8//6yff/5ZmzZtUvfu3fXEE084napfuN1uXXvttfrggw+0e/dujRw5Uo888ogSEhI0bNgwff75506n6M0ADjnrrLPM5s2bK8Q3b95smjRp4kBGQP0UERFhMjIyjDHGPPbYY+bXv/61McaYNWvWmJiYGAczAwJT+ffc1VdfbZ566iljjDE7duwwDRo0cDCzmrd8+XITHR1tXC6XueWWW+z4lClTzHXXXedgZrUjKyvLPPXUU6Zdu3YmIiLC3HzzzWbgwIEmKCjIzJw50+n0TptlWcblclX643a7zfTp051Os8a1adPGpKWlVYh/9913JjEx0RhjzH//+18TGxtby5n5R5s2bcx3331XIb569WrTunVrBzKqPd988425/fbbTVRUlDn77LPNo48+am677TYTHh5u7r//fqfTs3FMORxTXFysTZs2qX379l7xTZs2yePxOJQVUP+EhIToyJEjkqTPPvtMN998sySpSZMm9gw6gJpTOnt85ZVXatmyZfZMUyDOHvfv31/79u1TXl6e16Ew48aNU3h4uIOZ+c/Ro0f14Ycfas6cOVq6dKm6dOmie++9V6NGjbKPuV6wYIHuuOOOej2TKknLly+XMUaXXnqp3n//fTVp0sS+LSQkRK1atVJcXJyDGfrHnj17fO6SX1xcrOzsbElSXFyc8vPzazs1v9izZ4+OHj1aIV5SUqKffvrJgYz8KycnR2+++abmzJmjbdu26eqrr9aCBQs0ePBgWZYlSRoxYoSGDRumP/7xjw5newxNORxzyy236NZbb9X27dvtky98/fXXeuqpp7yOPQdwYhdffLHuu+8+9enTR99++63eeecdSdLWrVvtE1EBqDlPP/20rrvuOj377LMaPXq0unbtKkn68MMP7d3aA0VBQYGMMXZDvmPHDi1evFgdO3bU4MGDHc7OP1q0aCGPx6Pf/va3+vbbb3X++edXWGbw4MH2sbn1Wb9+/VRcXKybb75ZPXr0qLfHT1fXgAEDNH78eL322mvq1q2bJCktLU133HGHLr30UknHDgc7/rjs+uqyyy7Tbbfdptdff10XXHCBLMvS6tWrNX78eF1++eVOp1fj4uPj1bZtW916660aM2aMmjVrVmGZX/3qV+rZs6cD2fnGid7gGI/Hoz/+8Y967rnntGfPHknHBsJ77rlH999/f70+4yVQm3bu3KkJEyZo165dmjhxosaOHStJuvfee1VSUlKtM7ACqJqSkpIKs8c//vijfeKkQDFo0CANHz5ct99+uw4ePKgOHTooODhY+/bt08yZM3XHHXc4nWKNe/PNN/Wb3/xGDRo0cDqVWhMZGanvv/9erVu3djqVWpGdna2bbrpJ//73v+0T9xUXF+uyyy7Tm2++qZiYGC1fvlxHjx7VoEGDHM729O3du1ejR4/WkiVLvOodPHiw5s6dG1CfWZL05Zdf6pJLLnE6jWqhKUedULqLbaNGjRzOBAAAlDrrrLO0YsUKnXfeeXrttdf0/PPPKy0tTe+//74effRRbdq0yekUUQOGDRumYcOGacyYMU6nUqs2b96srVu3yhijDh06VDikMtBs3bpVmzdvljFGHTt2VLt27ZxOyS8uvfRSLVq0qMLeLHl5eXXzJG9i93XUETTjwOkpKSnRBx98oE2bNsmyLHXs2FHXXnste5wAfpCYmGgfl+hLIF1e6MiRI/Zx1EuXLtXw4cPlcrl04YUXaseOHQ5n5z+rVq3SwoULtXPnThUVFXndtmjRIoey8p+hQ4dqypQp2rBhgy644AJFRER43X7NNdc4lJl/dejQQR06dHA6jVrTrl27gG3Ey1uxYkWF960k/fLLL/ryyy8dyOjkaMpRq7p3765///vfaty4sbp163bCjZrvvvuuFjMD6q/t27friiuu0O7du9W+fXsZY7R161YlJCToo48+Utu2bZ1OEQgokyZN8vr96NGjSktL05IlS/TAAw84k5SfnHPOOfrggw903XXX6dNPP7VPbJaTkxOwX6gvWLBAN998swYNGqRly5Zp0KBB2rZtm7Kzs3Xdddc5nZ5flB6GMHPmzAq3WZalkpKS2k7Jr0pKSjR37lz9+9//Vk5OToUTDNfFmdTTcabUu379ekmSMUY//PCDfdI+6dhzsGTJErVs2dKp9E6Iphy16tprr1VoaKikY7tKATh9EydOVNu2bfX111/bZ87dv3+/fve732nixIn66KOPHM4QCCz33HOPz/gLL7yg1atX13I2/vXoo49q5MiRuvfee3XppZfqoosuknRs1rz0BFmBJiUlRX/+85915513KjIyUs8995wSExM1fvx4tWjRwun0/OJMu+rNPffco7lz5+rKK69Up06dTjhJFAjOlHrPP/98WZYly7LsE/aVFxYWpueff96BzE6OY8oBoJ6LiIjQ119/rc6dO3vF161bpz59+ujQoUMOZQacWdLT03X++ecH3KUIs7OztWfPHnXt2lUul0uS9O2336pRo0YBuetvRESENm7cqNatW+uss87S8uXL1blzZ23atEmXXnqpfXJa1F9nnXWW/va3v+mKK65wOpVacabUu2PHDhlj1KZNG3377bdeZ10PCQlR8+bN6+xhfcyUw3Fr1qyxj4M999xzA/abd8BfQkNDfV5L9dChQwoJCXEgI+DM9N5773ld5zlQxMbG6tChQ1q2bJn69u2rsLAw9ezZM2Bn25o0aWJ/prZs2VIbNmxQ586ddfDgQR05csTh7Pzn8OHDWrFihc/j6CdOnOhQVv4REhKic845x+k0as2ZUm+rVq0k1c89P2jK4ZicnBzdeOON+uKLLxQdHS1jjHJzczVgwAAtWLDA5zUFAVR01VVXady4cXr99dftayR/8803uv322wP25DyAk44/J4oxRtnZ2dq7d6/++te/OphZzdu/f79GjBih5cuXy7Isbdu2TW3atNHvf/97RUdH609/+pPTKda4Sy65RMuWLVPnzp01YsQI3XPPPfr888+1bNkyXXbZZU6n5xdpaWm64oordOTIER0+fFhNmjTRvn377Ev8BVpTfv/99+u5557T7NmzA/bLpfLOhHo//PBDDR06VMHBwfrwww9PuGxd3DZi93U45oYbbtD//vc/vfnmm+rYsaMk6YcfftDo0aN1zjnn6O9//7vDGQL1w8GDBzV69Gj985//tK8/evToUV177bWaM2dOhUuCADg906ZN8/rd5XKpWbNm6t+/f8Dtzn3zzTcrJydHr732mjp27Kh169apTZs2Wrp0qe69915t3LjR6RRr3M8//6xffvlFcXFx8ng8+uMf/6j//Oc/Ouecc/TII494XZs+UPTv31/t2rXTiy++qOjoaK1bt07BwcH63e9+p3vuuUfDhw93OsUadd1112n58uVq0qSJzjvvPHvsLBVoZ9g/E+p1uVzKzs5W8+bN7cNsfKmrJy6kKYdjoqKi9Nlnn6lnz55e8W+//VaDBg3SwYMHnUkMqKe2b9+uTZs2yRijc88994zYVQ2Af8XGxurTTz9V165dFRkZaTflGRkZ6ty5M+esCBDR0dH65ptv1L59e0VHR+urr75Sx44d9c0332j06NHavHmz0ynWqFtuueWEt8+ZM6eWMqkdZ1q99RG7r8MxHo+nwjd1khQcHFwvjwUBatN9992nJ554QhEREbrvvvsq3P7FF1/Y//d1iRsAp6ekpESLFy+2z4nSsWNHXXvttQoKCqxNq8OHDys8PLxCfN++ffbVVAJBdU7OF4iXggsODrZ3a46JidHOnTvVsWNHRUVFaefOnQ5nV/POtCb0TKvXl4MHD9bpPQcDa+RAvXLppZfqnnvu0d///nfFxcVJknbv3q177703YI/ZAmpKWlqajh49av+/MoF67BjgpA0bNujaa69Vdna22rdvL0naunWrmjVrpg8//LDClRDqs759++pvf/ubnnjiCUnHPlM8Ho+effZZDRgwwOHsak50dHSVPy/r4q6vp6tbt25avXq12rVrpwEDBujRRx/Vvn379OabbwbU+nwmKy4u1hdffKH//e9/GjlypCIjI5WVlaVGjRqpYcOGTqdXo55++mm1bt1aN9xwgyTpN7/5jd5//321aNFCH3/8sbp27epwhhWx+zocs2vXLl177bXasGGDEhISZFmWdu7cqc6dO+sf//iH4uPjnU4RAIAKLrzwQjVv3lzz5s2zjy8+cOCAxowZo5ycHH311VcOZ1hzfvjhB/Xv318XXHCBPv/8c11zzTXauHGjfv75Z/33v/9V27ZtnU6xRqxYscL+/48//qgHH3xQY8aMsa/L/tVXX2nevHmaMWOGRo8e7VSafrN69Wrl5+drwIAB2rt3r0aPHm0fRz9nzpw62cRUV/fu3fXvf/9bjRs3rnCyxuN99913tZiZ/+3YsUNDhgzRzp07VVhYqK1bt6pNmzaaNGmSfvnlF7300ktOp1ij2rRpo7feeku9e/fWsmXLNGLECL3zzjt69913tXPnTi1dutTpFCugKYfjli1bps2bN9vHwV5++eVOpwQAQKXCwsK0evVqnXfeeV7xDRs2qGfPniooKHAoM//Izs7Wiy++qDVr1sjj8ah79+6688471aJFC6dT84vLLrtMv//97/Xb3/7WKz5//ny98sorXocHof6YNm2aHnjgAYWHh1c4WePxHnvssVrKqnYMGzZMkZGRev3119W0aVP73BArVqzQ73//e23bts3pFGtUWFiYtm7dqoSEBN1zzz365Zdf9PLLL2vr1q3q1auXDhw44HSKFbD7OhxRXFysBg0aaO3atRo4cKAGDhzodEoAAFRJ+/bt9dNPP1VoynNycgLyBIuxsbEnbWICyVdffeVz5rBHjx76/e9/70BGtScnJ0dbtmyRZVlq3759QF2etnyjHWhN98n85z//0X//+1+FhIR4xVu1aqXdu3c7lJX/NG7cWLt27VJCQoKWLFmi6dOnSzp2+cq6evhJ5eeLB/woKChIrVq1qrNvDAAAysvLy7N/UlJSNHHiRL333nvKzMxUZmam3nvvPU2aNElPP/2006nWqDlz5mjhwoUV4gsXLtS8efMcyMj/EhISfDblL7/8shISEhzIyP/y8vJ00003qWXLlurXr5/69u2ruLg4/e53v1Nubq7T6eE0eTwen9vcmZmZioyMdCAj/xo+fLhGjhypgQMHav/+/Ro6dKgkae3atXX2i1N2X4djSgf6t956S02aNHE6HQAAKuVyubyOQS3dfCqNlf89kL5wbt++vV566aUKJ3VbsWKFxo0bpy1btjiUmf98/PHH+vWvf622bdvqwgsvlCR9/fXX+t///qf3339fV1xxhcMZ1rwRI0Zo7dq1ev7553XRRRfJsiylpqbqnnvuUZcuXfTuu+86neJpa9y4cZVP5vfzzz/7OZvadcMNNygqKkqvvPKKIiMjtX79ejVr1kzXXnutzj777IA7O/vRo0f1l7/8RTt37tSYMWPUrVs3SdKsWbPUsGHDOrnHC005HNOtWzdt375dR48eVatWrRQREeF1e6CdZAMAUH+VPxHYyfTr18+PmdSuBg0aaPPmzWrdurVX/Mcff1THjh0D7vj5UpmZmXrxxRe1adMm+5w3t99+e8DOlEdEROjTTz/VxRdf7BX/8ssvNWTIEB0+fNihzGpOdfbsCLST+WVlZWnAgAFyu93atm2bevTooW3btumss87SypUr1bx5c6dTrDFHjx7VuHHj9Mgjj6hNmzZOp1NlHFMOxwwbNszpFAAAqJJTabQnTJigxx9/XGeddZYfMqodzZs31/r16ys05evWrVPTpk2dScrPioqKFB8fryeffLLCbfv27avXr2dlmjZtqqioqArxqKgo+woD9V2gNdrVERcXp7Vr12rBggX2CRvHjh2rUaNGKSwszOn0alRwcLAWL16sRx55xOlUqoWZcgAAAD9o1KiR1q5dW69ma443efJkvfvuu5ozZ4769u0r6dheA7feequuv/56/fGPf3Q4w5o3bNgwLVq0SC6X96mXfvrpJ1122WXasGGDQ5n5zyuvvKKFCxfqb3/7m31W/ezsbI0ePVrDhw/X+PHjHc6wZn388cdyu90aPHiwV3zp0qUqKSmxj0EOFG+99ZZ+97vf+bztgQce0LPPPlvLGfnXLbfcos6dO+u+++5zOpUqY6YcAADADwJh3mP69OnasWOHLrvsMgUFHdts9Hg8uvnmm5WSkuJwdv6xZ88ejR071us42z179ujSSy+tcMb9+uz4a3Vv27ZNrVq10tlnny1J2rlzp0JDQ7V3796Aa8offPBBPfXUUxXiHo9HDz74YMA15XfddZeio6N11VVXecXvvfdeLViwIOCa8nPOOUdPPPGEUlNTdcEFF1Q4RHbixIkOZVY5ZspRq87kk2wAAM4skZGR9vWA67tt27Zp7dq1CgsLU+fOndWqVSunU/Kb/fv3q2/fvho0aJD+/Oc/a/fu3br00kvVtWtXLViwoMIMen1VncvcBdolxMLCwrRp0yaf50o477zzAuIY+vKWLFmiG2+8UR9++KG9x8vdd9+tRYsW6d///rc6dOjgcIY1KzExsdLbLMtSenp6LWZTNcyUo1bNmjXL/v/+/fs1ffp0DR48WBdddJGkY9cG/fTTT+vdcSAAAASypKQkJSUlOZ1GrWjatKnXSc8++ugjde/eXW+//XbANOTSqTXaf//733XNNddUmHmsb6KiopSenl6hKd++fXu9r82XIUOG6KWXXtKwYcO0dOlSvfHGG/rHP/6h5cuXq127dk6nV+MyMjKcTqHamCmHY379619rwIABuuuuu7zis2fP1meffaYPPvjAmcQAAKgBgTBTfv3116tHjx568MEHveLPPvusvv32W5/XMA8U27Zt08UXX6yBAwfqzTffrPKefoEsEM6TIEnjxo3T119/rcWLF6tt27aSjjXkv/71r9WzZ0+99tprDmfoHy+++KLuvfdeNWvWTMuXL6+z1+yuKUVFRcrIyFDbtm3tw2/qKppyOKZhw4Zau3ZthQ+Ebdu2qVu3bjp06JBDmQEAcPoCoSlv1qyZPv/8c3Xu3Nkr/v333+vyyy/XTz/95FBmNauyw+uOHDmi0NBQud1uO3YmH14XCOu0JOXm5mrIkCFavXq14uPjJR27DN4ll1yiRYsWKTo62tkEa0BlJzl777331K1bN/vLCEmaOXNmbaVVK44cOaK7777bvgze1q1b1aZNG02cOFFxcXEVvmSsC+r2VwYIaE2bNtXixYv1wAMPeMU/+OCDgL3MCgDgzPG73/1OjRo1cjqN03Lo0CGFhIRUiAcHBysvL8+BjPyj/OF1CHxRUVFKTU3VsmXLtG7dOoWFhalLly728daBIC0tzWe8bdu2ysvLs28PxD1ApkyZonXr1umLL77QkCFD7Pjll1+uxx57rE425cyUwzFz587V2LFjNWTIEPuY8q+//lpLlizRa6+9pjFjxjibIAAAPixZskQNGza0jzl+4YUX9Oqrr+rcc8/VCy+8EDDXdZaknj176uqrr9ajjz7qFU9OTtY///lPrVmzxqHM4IRAmSnPyMg44cnAUL+1atVK77zzji688EKvdXb79u3q3r17nfxCMXDOVoF6Z8yYMUpNTVV0dLQWLVqk999/X1FRUfrvf/9LQw4AqLMeeOABe6Pu+++/1/33368rrrhC6enp9eq6uFXxyCOP6IknntDo0aM1b948zZs3TzfffLOefPLJgD4p6//+9z89/PDD+u1vf6ucnBxJx76M2bhxo8OZoSacc845GjBggN566y398ssvTqdTa7Zv365PP/1UBQUFkgLjso2+7N27V82bN68QP3z4cJ3dM4CmHI7q1auX3n77bX333XdKS0vT22+/rV69ejmdFgAAlcrIyNC5554rSXr//fd11VVXKSUlRX/961/1ySefOJxdzbrmmmv0wQcfaPv27ZowYYLuv/9+ZWZm6rPPPtOwYcOcTs8vVqxYoc6dO+ubb77RokWL7HPcrF+/PuAuDXamWrdunbp166b7779fsbGxGj9+vL755hun0/Kb/fv367LLLlO7du10xRVXaM+ePZKk3//+97r//vsdzq7m9ezZUx999JH9e2kj/uqrr9p759Y1NOVwlMfj0datW/Wf//xHK1eu9PoBAKAuCgkJ0ZEjRyRJn332mQYNGiRJatKkSZ3cLfJ0XXnllfrvf/+rw4cPa9++ffr888/Vr18/p9PymwcffFDTp0/XsmXLvI6nHzBggL766isHM6tZf/nLX+xZ4p07d1Zp1rRVq1YKDg72d2p+16lTJ82cOVO7d+/WnDlzlJ2drUsuuUTnnXeeZs6cqb179zqdYo269957FRwcrJ07dyo8PNyO33DDDVqyZImDmfnHjBkzNHXqVN1xxx0qLi7Wc889p4EDB2ru3Ll68sknnU7PJ44ph2O+/vprjRw5Ujt27KgwEFiWpZKSEocyAwCgctdcc42KiorUp08fPfHEE8rIyFDLli21dOlS3XXXXdq6davTKeI0NGzYUN9//70SExO9jkf98ccf1aFDh4DZ3TkoKEhZWVlq3ry53G639uzZ43OX3zNBYWGh/vrXv2rKlCkq+v/t3Xlcjen/P/DXqVDSrkhIyRZFyU5akOGDMCNjTcyYGaMw1rFlyRiDGstg7Ps6GDN2olEY0mZJoYhREpPQ0HLu3x9+zteZYopzuur0ej4e5/Fx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I4Dd14mIiIiK5dChQ+jUqROMjY3Rr18/5ObmwsfHB9evX8epU6dEx/tgb55pLJPJsGbNGhw7dgytW7cGAJw/fx53797FkCFDREUkomL4+OOP0b59e6SmpqJp06aKcU9PT/Tu3VtgMnqNe8qJiIiIiun06dPo1asXNm3ahLVr1+LWrVsIDQ1FtWrVREf7YO7u7kW6TyaTITQ0VM1piIg0H4tyIiIiovdw4MAB9O3bF40aNUJoaCiqVq0qOhIREZVBLMqJiIiI/kOfPn0KHT9//jzs7OyUCvK9e/eWVCwiItIA3FNORERE9B+MjIwKHffy8irhJEREpGk4U05ERERURJIkISUlBebm5qhcubLoOEREpAF4JBoRERFREUmShHr16uGvv/4SHYWIiDQEi3IiIiKiItLS0kK9evXw6NEj0VGIiEhDsCgnIiIiKoYFCxZgwoQJuHLliugoRESkAbinnIiIiKgYTExMkJ2djby8PFSsWBF6enpK1x8/fiwoGRERlUXsvk5ERERUDCEhIaIjEBGRBuFMOREREREREZEg3FNOREREVEy3bt3CtGnT8OmnnyI9PR0AcOTIEVy9elVwMiIiKmtYlBMREREVQ1hYGBwcHPDnn39i7969ePbsGQAgLi4OM2fOFJyOiIjKGhblRERERMUwefJkzJ07F8ePH0fFihUV4+7u7jh37pzAZEREVBaxKCciIiIqhsuXL6N3794Fxs3NzXl+ORERFRuLciIiIqJiMDY2RmpqaoHx6OhoWFlZCUhERERlGYtyIiIiomIYMGAAJk2ahLS0NMhkMsjlckRERGD8+PEYMmSI6HhERFTG8Eg0IiIiomLIzc2Fr68vduzYAUmSoKOjg7y8PAwcOBAbNmyAtra26IhERFSGsCgnIiIieg9JSUmIjIyETCaDk5MT7OzsREciIqIySEd0ACIiIqKyZu3atQgODsaNGzcAAPXq1cOYMWMwYsQIwcmIiKisYVFOREREVAzTp09HcHAwRo8ejTZt2gAAzp07h7Fjx+L27duYO3eu4IRERFSWcPk6ERERUTFUrVoVS5cuxaeffqo0vn37dowePRoZGRmCkhERUVnE7utERERExZCfnw8XF5cC482bN0deXp6AREREVJaxKCciIiIqhkGDBmHFihUFxn/++WcMHDhQQCIiIirLuKeciIiI6D+MGzdO8WuZTIY1a9bg2LFjaN26NQDg/PnzuHv3Ls8pJyKiYuOeciIiIqL/4O7uXqT7ZDIZQkND1ZyGiIg0CYtyIiIiIiIiIkG4p5yIiIiIiIhIEBblRERERERERIKwKCciIiIiIiIShEU5ERERERERkSAsyomIiIiISGHDhg0wNjYWHYOo3GBRTkRERESkoWQy2Ttfvr6+BX6Pj48PEhMTSz4sUTmlIzoAERERERGpR2pqquLXO3fuxIwZM5CQkKAY09PTU7o/NzcXenp6BcaJSH04U05EREREpKGqV6+ueBkZGUEmkynev3jxAsbGxti1axfc3Nygq6uLLVu2FFi+HhgYiGbNmmHVqlWoVasWKleujE8++QSZmZnCPi4iTcKinIiIiIioHJs0aRL8/f0RHx8PLy+vQu+5efMmdu3ahd9++w1HjhxBTEwMRo0aVcJJiTQTl68TEREREZVjY8aMQZ8+fd55z4sXL7Bx40bUrFkTALB06VJ0794dixYtQvXq1UsiJpHG4kw5EREREVE55uLi8p/31K5dW1GQA0CbNm0gl8uV9qcT0fthUU5EREREVI7p6+sX+/fIZDKl/yWi98einIiIiIiI3iklJQX3799XvD937hy0tLRQv359gamINAOLciIiIiIieiddXV0MHToUsbGxOHPmDPz9/dGvXz/uJydSATZ6IyIiIiKid7Kzs0OfPn3QrVs3PH78GN26dcNPP/0kOhaRRpBJkiSJDkFERERERKVTYGAg9u/fj5iYGNFRiDQSl68TERERERERCcKinIiIiIiIiEgQLl8nIiIiIiIiEoQz5URERERERESCsCgnIiIiIiIiEoRFOREREREREZEgLMqJiIiIiIiIBGFRTkRERERERCQIi3IiIiIiIiIiQViUExEREREREQnCopyIiIiIiIhIkP8HlNYhYQtSbRYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "os_accuracy = df.groupby('os')['is_correct'].mean() * 100\n", + "trip_accuracy = df.groupby('trip')['is_correct'].mean() * 100\n", + "\n", + "fig, axes = plt.subplots(1, 2, figsize=(12, 5))\n", + "os_accuracy.plot(kind='bar', ax=axes[0])\n", + "axes[0].set_title('Accuracy percent by Operating System', fontweight='bold')\n", + "axes[0].set_xlabel('Operating System')\n", + "axes[0].set_ylabel('Accuracy (%)')\n", + "axes[0].grid(axis='y', linestyle='--', alpha=0.7)\n", + "\n", + "trip_accuracy.plot(kind='bar', ax=axes[1])\n", + "axes[1].set_title('Accuracy percent by Trip', fontweight='bold')\n", + "axes[1].set_xlabel('Trip')\n", + "axes[1].set_ylabel('Accuracy (%)')\n", + "axes[1].grid(axis='y', linestyle='--', alpha=0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "40231135", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+UAAAKtCAYAAABBv88/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADfQUlEQVR4nOzdd3hUZfr/8c/JpJCEkABCQggCgUgTEAURUcACCqgg1oWVYgEXlaIrK6IYFIO6K6Ki7rLuAq6LKCqWr0pxpahRaQEEqRI6oZuEYto8vz/45SRDJpDATE4Y3q/rygW558zMfc+czHPueU6xjDFGAAAAAACgwgU5nQAAAAAAAOcrmnIAAAAAABxCUw4AAAAAgENoygEAAAAAcAhNOQAAAAAADqEpBwAAAADAITTlAAAAAAA4hKYcAAAAAACH0JQDAAAAAOAQmvJK7r777pNlWfbPuHHjnE4poEyaNEnJyclKTk4ucdvChQvt133gwIEVntvpbN261c6vS5cuFfrcW7Zs0fDhw9WiRQtFRUWpSpUqatCggfr27atvv/22QnPxta1bt9rrxCeffFLi9oEDB9qv+8KFCys8v5Nt2bJF9957r+rXr6/Q0FBFRUXpwgsv1DXXXKPhw4fr+PHjfn3+lStX2q9XZXg9AJzb2O7xL7Z7yq5BgwYe6+KpfqZNm3bKx+rSpYu97NatW/2eO849wU4ngNIdO3ZMs2bN8ohNnz5dY8eOlWVZDmUVWCZNmqRt27ZJktcBCiW9//77GjRoUIlmb9u2bdq2bZvee+89Pfroo3r55ZcdyvDsbN261d4IHDBggHr37u1sQqewZcsWtWvXTocOHbJjeXl5OnLkiHbs2KGFCxfq6aefVnh4uN9yWLlypcdGc0V/QQQgcLDd439s9wCVEzPlldhHH32k7OxsSbIHo/T0dC1evNjJtMrl2LFjTqdwxrp06SJjjIwxp/0G9HyxYsUK3XPPPXZDPnr0aO3du1dHjhzRO++8Yzd/EydO1BtvvOFkqpL8s/5NmzbNXi+cbkBfeeUVuyF/8skntX//fh0/flzr16/XO++8o5tuukkul8vRHAGgrNjucRbbPZ62bt1qvx7GGNWvX9++bcGCBR63lbZnQeH6sHDhQnvZBg0aVED2OOcYVFrXXnutkWQkmT/96U/2/wcOHOh1+V9++cXce++9pkGDBiY0NNRUq1bNtG7d2rzxxhsey/3444/mrrvuMnXr1jUhISGmevXq5vLLLzezZs0yxhiTnp5uP1fnzp097lu/fn37tkILFiywYwMGDDD//ve/TYsWLUxISIh55plnjDHGjB8/3lx11VWmTp06pkqVKiYsLMw0bNjQ3HvvvSY9Pb1ctRQUFJjGjRsbSSY8PNwcPHjQ474tW7Y0kkxoaKjZt2+f19dq6tSpds7efrzVVWjAgAF2fPbs2ea+++4zMTExJiYmxtx///0mKyvLrFu3ztxwww0mMjLS1K9f34wePdrk5uZ65JCbm2teeeUV065dO1O1alUTGhpqLrroIvOXv/zFZGZmes27uJPfp4ULF5oOHTqYKlWqmNjYWDN8+HBz7NgxY4wxixYtspe98847PR5n+fLl9m29e/c+5XP27t3bXvamm24qcfsLL7xg316rVi2Tl5dX4vV+5plnzKRJk0xSUpIJDQ01SUlJJdZRY4zZu3evefTRR02TJk1MlSpVTEREhGnbtq35+9//btxud6mvw+eff24uu+wyExYWZr9v//jHP8y1115r6tatayIiIkxISIipW7euueuuu8yqVavsx+rcuXOp60ThYxV//xcsWGDftzBWv359s2TJEnP99debiIgIEx8fb4YMGWKys7M96tuxY4e54447TFRUlKlWrZq58847zfbt2z0e53S6detmL//dd9+dctlx48bZy7755pset7388sv2bZMmTTLGGLNz507Tv39/k5CQYEJCQkxkZKRp2LCh6dWrl5k7d64xxvPz4OSfwr99Y4xZuXKl6du3r8dnzg033GC+/vprjzyKrydjx441EyZMMPXq1TPh4eHm+uuvNxs2bDC//fabGTx4sKlRo4a54IILzJ133mn27t172tcKQOXHdg/bPafixHZPccXXheLjvzGe2wCpqammU6dOJiIiwl6fim9fFL7/J9czd+5cc/nll3utB4GPpryS2rZtmwkKCjKSTHx8vMnKyjLh4eFGkqlatao5cuSIx/JffPGFCQsL8/pB26tXL3u5KVOm2I978s/w4cONMWc3OF1wwQVeN8xbt25d6kBQp04djwGmLLW8+eabduzFF1+077t69Wo7fvfdd5f6+vpqcKpVq1aJ+1533XWmZs2aJeIpKSn2Y/z++++nbACbNWtmDh06VGr+J79PtWrVMiEhISUe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2z2Va7vnTNSqVUv16tUr9/3KUg8CG015JVT8jJeHDx/WpZdeqjZt2qhjx4724GCM0fTp0yWdaAIKrVu3Tm632+vjFl9uzZo1pT5/lSpV7P8XP4vokSNHPAYPbyIiIkrEZs6cqYKCAklSv379dODAARlj9Nprr50yx1PVIp1oEgvPdvn111/bl2UKDw/XgAEDTplnobO9xErhxkJZ44ViY2Pt///www8eZ/As/Nm9e3eZ89ixY4fHhkTh5U4kqXbt2vb/Bw0apJo1a0o6cebujz/+WJJ02223qVatWqd8DpfLpa5du9q///vf/y6xzL/+9S/7/7Vq1dKll15aYpniuXnLtWbNmvbrFxUVpZycHK+vT2EzWZy39e+TTz7R0aNHJUnXXnutdu3aJWOMPvvsM691nu06ERISctrHK/5aF25QSSfOMlwexb8ACQsLU4cOHTR69GiP1+bgwYMe93n88cclSQUFBRo4cKC9kfunP/3JY7muXbvq119/1ebNm/XFF19o4sSJiouL02+//ab777/f/ps+1etVfD2/4YYbvL6Pbrfb68bkmf5tATj3sN1zAts9lWu750x4Wx/Koqz1IHDRlFcy3q7RWZrp06fLGKOOHTvaf7CbN2/WkCFDtH37dh09elQ//fSTpkyZIknq3r27PfAsWLBAY8eO1d69e5WVlaUFCxbo/fffl3Tig7NwubVr1yo9PV0FBQUaM2aMPciUR/EP6ipVqig8PFyrVq3Sq6++WmLZstZS6NFHH1VQUJCMMVq4cKEk6e6771ZMTEyZciv8oJZOXG+5ohTOVkonvvlevny5cnJydPDgQX355Ze64447NGHChDI/3q5du/T8888rKytLP/74o/75z3/at3Xr1s3+f0REhB566CFJ0rJly+xLzzz44INlep6nnnrKbjo///xzPf300zpw4ICOHTum//73vx7XPB07dqzXQfrjjz/WF198oSNHjmj69On64YcfJJ3YqLjqqqtUpUoV3XjjjZKk7Oxs3Xvvvdq6davy8vK0Y8cOTZ8+XR07dizzJXKK5xAaGqrIyEj9+uuvGj9+vNfli68TmzZtsht6Xyr+nowfP15bt27V3r179ec//7lcj/PII4+oe/fuevfdd7Vt2zbl5eVp3759Hk15ixYtPO5z+eWXq1OnTpJOfA5IJ7786Nu3r8dyDz30kObMmaPQ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M3o8AABQceM4AAAovzKd6K20gfz3338v1/IAAKDiMY4DAFB5lfvs6263W88995zq1q2rqlWrasuWLZKkp59+Wv/61798niAAAPAdxnEAACqXcjfl48eP17Rp0/TSSy95fJPesmVLvf322z5NDgAA+BbjOAAAlUu5m/J33nlHU6ZMUb9+/eRyuex4q1attH79ep8mBwAAfItxHACAyqXcTfmuXbvUuHHjEnG32628vDyfJAUAAPyDcRwAgMql3E15ixYt9O2335aIz5o1S23atPFJUgAAwD8YxwEAqFzKdEm04p555hndc8892rVrl9xutz7++GNt2LBB77zzjv7v//7PHzkCAAAfYRwHAKByKfdM+c0336z3339fX375pSzL0tixY7Vu3Tp9/vnn6tq1qz9yBAAAPsI4DgBA5VLumXJJuuGGG3TDDTf4OhcAAFABGMcBAKg8zqgpL3TkyBG53W6PWLVq1c4qIQAAUDEYxwEAcF65d19PT09Xz549FRkZqejoaFWvXl3Vq1dXTEyMqlev7o8cAQCAjzCOAwBQuZR7prxfv36SpH//+9+KjY2VZVk+TwoAAPgH4zgAAJVLuZvy1atXa/ny5WrSpIk/8gEAAH7EOA4AQOVS7t3X27Vrpx07dvgjFwAA4GeM4wAAVC7lnil/++239eCDD2rXrl26+OKLFRIS4nF7q1atfJYcAADwLcZxAAAql3I35fv379evv/6qQYMG2THLsmSMkWVZKigo8GmCAADAdxjHAQCoXMrdlN97771q06aN3nvvPU4QAwDAOYZxHACAyqXcTfm2bdv02WefqXHjxv7IBwAA+JET4/iuXbv0l7/8RV999ZWOHz+uiy66SP/617902WWXSZKMMRo3bpymTJmiw4cPq3379nrjjTfUokWLCssRAACnlPtEb9dee61WrVrlj1wAAICfVfQ4fvjwYXXs2FEhISH66quv9Msvv+jll19WTEyMvcxLL72kiRMnavLkyVq6dKni4uLUtWtXZWdnV1ieAAA4pdwz5TfffLNGjhypn3/+WS1btixxgphbbrnFZ8kBAADfquhx/MUXX1S9evU0depUO9agQQP7/8YYTZo0SWPGjFGfPn0kSdOnT1dsbKxmzJihIUOGlHjMnJwc5eTk2L9nZWVJkvLz85Wfny9JCgoKUlBQkNxut9xut71sYbygoEDG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0MiRIzVy5Eh/5QMAAPyEcRwAgMqHr8MBAAAAAHAITTkAAAAAAA6hKQcAAAAAwCE05QAAAAAAOISmHAAAAAAAh5S7KW/QoIGeffZZbd++3R/5AAAAP2IcBwCgcil3U/7YY4/p008/VWJiorp27aqZM2cqJyfHH7kBAAAfYxwHAKByKXdT/sgjj2j58uVavny5mjdvrmHDhqlOnTp6+OGHtWLFCn/kCAAAfIRxHACAyuWMjylv3bq1Xn31Ve3atUvPPPOM3n77bbVr106tW7fWv//9bxljfJknAADwIcZxAAAqh+AzvWNeXp5mz56tqVOnav78+briiit03333affu3RozZoy+/vprzZgxw5e5AgAAH2EcBwCgcih3U75ixQpNnTpV7733nlwul+655x698soratq0qb1Mt27d1KlTJ58mCgAAzh7jOAAAlUu5m/J27dqpa9eueuutt9S7d2+FhISUWKZ58+a6++67fZIgAADwHcZxAAAql3I35Vu2bFH9+vVPuUxkZKSmTp16xkkBAAD/YBwHAKByKfeJ3vbt26effvqpRPynn37SsmXLfJIUAADwD8ZxAAAql3I35Q899JB27NhRIr5r1y499NBD5Xqst956S61atVK1atVUrVo1dejQQV999ZV9uzFGycnJio+PV3h4uLp06aK1a9eWN2UAAPD/+XIcBwAAZ6/cTfkvv/yiSy+9tES8TZs2+uWXX8r1WAkJCXrhhRe0bNkyLVu2TNdee6169eplN94vvfSSJk6cqMmTJ2vp0qWKi4tT165dlZ2dXd60AQCAfDuOAwCAs1fuY8rDwsK0d+9eJSYmesT37Nmj4ODyPdzNN9/s8fvzzz+vt956Sz/++KOaN2+uSZMmacyYMerTp48kafr06YqNjdWMGTM0ZMgQr4+Zk5OjnJwc+/esrCxJUn5+vvLz8yVJQUFBCgoKktvtltvttpctjBcUFHhcn7W0uMvlkmVZ9uMWj0tSQUFBmeLBwcEyxnjELcuSy+UqkWNhPMgycllFj+E2UoGx5LKMgorFC4zkNpaCLSOreNwtuVUynu+WjCyFBHlen/ZEXAo56WucPLdkSQouEbdkyXjEjZHyjaUgGbm8xQOwptLWsXN53Qu0miQF5LoXaDVJCqh17+T7ViRfjuMAAODslXv07dq1q0aPHq1PP/1U0dHRkqTffvtNTz75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qVOnOpUmcE6ZM2eOqlatqquuukqS9MYbb+if//ynmjdvrjfeeEPVq1d3OEMgsFx99dUaPHiw7rnnHmVkZKhJkyZq0aKFNm7cqGHDhgVUo1q1alWtWbNGDRo00C233KKOHTvqL3/5i7Zv364mTZqcUzNR5XHw4EG9++67mjZtmtasWaPrr79e9913n3r16qWQkBCn0/M5l8ulPXv2qHbt2h7xAwcOKC4uTvn5+Q5l5h8NGzbU/v37dezYMVWvXl3GGP3222+KiIhQ1apVtW/fPiUmJmrBggWqV6+e0+mekYYNG3r8XlhvTEyMJNn11q5dW1u2bHEgQ/8qKCjQ//3f/2nq1Kn68ssv1bhxY91777265557FBsb63R6JbD7OirU1KlT7Z/Y2FjdeeedSk9P18cff6yPP/5YW7Zs0d13360LLrjA6VSBc8bjjz+urKwsSdLPP/+sxx57TD169NCWLVv06KOPOpwdEHi8zR6npqZqxowZmjZtmrPJ+ViLFi3097//Xd9++63mz5+vG2+8UZK0e/du1axZ0+Hs/KdmzZoaPny40tLStGTJEjVu3Fj33HOP4uPjNXLkSG3atMnpFH0iKytLmZmZMsYoOztbWVlZ9s/hw4f15ZdflmjUA0FKSoratWunTZs26eDBgzp06JA2btyo9u3b69VXX9X27dsVFxenkSNHOp3qGUtPT7d/nn/+eV1yySVat26dDh06pEOHDmndunW69NJL9dxzzzmdql+4XC716tVLn3zyiXbt2qW+ffvq6aefVr169dS7d2998803TqfoyQAOueCCC8z69etLxNevX29q1KjhQEbAuSkyMtKkp6cbY4x55plnzG233WaMMWb58uUmNjbWwcyAwFT8b+7mm282L7zwgjHGmG3btpkqVao4mJnvLViwwMTExJigoCAzaNAgOz569Ghz6623OphZxdi9e7d54YUXzEUXXWQiIyNN//79TdeuXU1wcLCZOHGi0+mdNcuyTFBQUKk/LpfLjB8/3uk0fS4xMdGkpaWViK9YscI0bNjQGGPM999/b+Li4io4M/9ITEw0K1asKBFftmyZadCggQMZVZyffvrJPPjggyY6OtpceOGFZuzYseaBBx4wERER5rHHHnM6PRvHlMMx+fn5WrdunZo0aeIRX7dundxut0NZAeee0NBQHTt2TJL09ddfq3///pKkGjVq2DPoAHyncPa4Z8+emj9/vj3TFIizx126dNGBAweUlZXlcSjM4MGDFRER4WBm/pOXl6fPPvtMU6dO1bx589SqVSuNHDlS/fr1s4+5njlzpv70pz+d0zOpkrRgwQIZY3Tttdfqo48+Uo0aNezbQkNDVb9+fcXHxzuYoX/s2bPH6y75+fn5ysjIkCTFx8crOzu7olPziz179igvL69EvKCgQHv37nUgI//at2+f/vOf/2jq1KnatGmTbr75Zs2cOVM33HCDLMuSJN15553q3bu3/va3vzmc7Qk05XDMoEGDdO+992rz5s32yRd+/PFHvfDCCx7HngM4tauuukqPPvqoOnbsqCVLluj999+XJG3cuNE+ERUA33nxxRd166236q9//asGDBig1q1bS5I+++wze7f2QHH8+HEZY+yGfNu2bZo9e7aaNWumG264weHs/KNOnTpyu936wx/+oCVLluiSSy4pscwNN9xgH5t7LuvcubPy8/PVv39/tW3b9pw9frq8rrnmGg0ZMkRvv/222rRpI0lKS0vTn/70J1177bWSThwOdvJx2eeq6667Tg888ID+9a9/6bLLLpNlWVq2bJmGDBmi66+/3un0fC4hIUGNGjXSvffeq4EDB6pWrVollrn88svVrl07B7LzjhO9wTFut1t/+9vf9Oqrr2rPnj2STgyEw4cP12OPPXZOn/ESqEjbt2/X0KFDtWPHDg0bNkz33XefJGnkyJEqKCgo1xlYAZRNQUFBidnjrVu32idOChTdunVTnz599OCDD+q3335T06ZNFRISogMHDmjixIn605/+5HSKPvef//xHd9xxh6pUqeJ0KhUmKipKP//8sxo0aOB0KhUiIyND99xzj/73v//ZJ+7Lz8/Xddddp//85z+KjY3VggULlJeXp27dujmc7dnbv3+/BgwYoDlz5njUe8MNN2jatGkB9ZklSd9++62uvvpqp9MoF5pyVAqFu9hWq1bN4UwAAEChCy64QIsWLVKLFi309ttv6/XXX1daWpo++ugjjR07VuvWrXM6RfhA79691bt3bw0cONDpVCrU+vXrtXHjRhlj1LRp0xKHVAaajRs3av369TLGqFmzZrroooucTskvrr32Wn388ccl9mbJysqqnCd5E7uvo5KgGQfOTkFBgT755BOtW7dOlmWpWbNm6tWrF3ucAH7QsGFD+7hEbwLp8kLHjh2zj6OeN2+e+vTpo6CgIF1xxRXatm2bw9n5z9KlSzVr1ixt375dubm5Hrd9/PHHDmXlP927d9fo0aO1Zs0aXXbZZYqMjPS4/ZZbbnEoM/9q2rSpmjZt6nQaFeaiiy4K2Ea8uEWLFpX4u5Wk33//Xd9++60DGZ0eTTkq1KWXXqr//e9/ql69utq0aXPKjZoVK1ZUYGbAuWvz5s3q0aOHdu3apSZNmsgYo40bN6pevXr64osv1KhRI6dTBALKiBEjPH7Py8tTWlqa5syZo8cff9yZpPykcePG+uSTT3Trrbdq7ty59onN9u3bF7BfqM+cOVP9+/dXt27dNH/+fHXr1k2bNm1SRkaGbr31VqfT84vCwxAmTpxY4jbLslRQUFDRKflVQUGBpk2bpv/973/at29fiRMMV8aZ1LNxvtS7evVqSZIxRr/88ot90j7pxGswZ84c1a1b16n0TommHBWqV69eCgsLk3RiVykAZ2/YsGFq1KiRfvzxR/vMuQcPHtQf//hHDRs2TF988YXDGQKBZfjw4V7jb7zxhpYtW1bB2fjX2LFj1bdvX40cOVLXXnutOnToIOnErHnhCbICTUpKil555RU99NBDioqK0quvvqqGDRtqyJAhqlOnjtPp+cX5dtWb4cOHa9q0aerZs6cuvvjiU04SBYLzpd5LLrlElmXJsiz7hH3FhYeH6/XXX3cgs9PjmHIAOMdFRkbqxx9/VMuWLT3iq1atUseOHXXkyBGHMgPOL1u2bNEll1wScJcizMjI0J49e9S6dWsFBQVJkpYsWaJq1aoF5K6/kZGRWrt2rRo0aKALLrhACxYsUMuWLbVu3Tpde+219slpce664IIL9M4776hHjx5Op1Ihzpd6t23bJmOMEhMTtWTJEo+zroeGhqp27dqV9rA+ZsrhuOXLl9vHwTZv3jxgv3kH/CUsLMzrtVSPHDmi0NBQBzICzk8ffvihx3WeA0VcXJyOHDmi+fPnq1OnTgoPD1e7du0CdratRo0a9mdq3bp1tWbNGrVs2VK//fabjh075nB2/nP06FEtWrTI63H0w4YNcygr/wgNDVXjxo2dTqPCnC/11q9fX9K5uecHTTkcs2/fPt19991auHChYmJiZIxRZmamrrnmGs2cOdPrNQUBlHTTTTdp8ODB+te//mVfI/mnn37Sgw8+GLAn5wGcdPI5UYwxysjI0P79+/Xmm286mJnvHTx4UHfeeacWLFggy7K0adMmJSYm6v7771dMTIxefvllp1P0uauvvlrz589Xy5Ytdeedd2r48OH65ptvNH/+fF133XVOp+cXaWlp6tGjh44dO6ajR4+qRo0aOnDggH2Jv0Bryh977DG9+uqrmjx5csB+uVTc+VDvZ599pu7duyskJESfffbZKZetjNtG7L4Ox9x111369ddf9Z///EfNmjWTJP3yyy8aMGCAGjdurPfee8/hDIFzw2+//aYBAwbo888/t68/mpeXp169emnq1KklLgkC4OyMGzfO4/egoCDVqlVLXbp0Cbjdufv37699+/bp7bffVrNmzbRq1SolJiZq3rx5GjlypNauXet0ij536NAh/f7774qPj5fb7dbf/vY3fffdd2rcuLGefvppj2vTB4ouXbrooosu0ltvvaWYmBitWrVKISEh+uMf/6jhw4erT58+TqfoU7feeqsWLFigGjVqqEWLFvbYWSjQzrB/PtQbFBSkjIwM1a5d2z7MxpvKeuJCmnI4Jjo6Wl9//bXatWvnEV+yZIm6deum3377zZnEgHPU5s2btW7dOhlj1Lx58/NiVzUA/hUXF6e5c+eqdevWioqKspvy9PR0tWzZknNWBIiYmBj99NNPatKkiWJiYvTDDz+oWbNm+umnnzRgwACtX7/e6RR9atCgQae8ferUqRWUScU43+o9F7H7OhzjdrtLfFMnSSEhIefksSBARXr00Uf13HPPKTIyUo8++miJ2xcuXGj/39slbgCcnYKCAs2ePds+J0qzZs3Uq1cvBQcH1qbV0aNHFRERUSJ+4MAB+2oqgaA8J+cLxEvBhYSE2Ls1x8bGavv27WrWrJmio6O1fft2h7PzvfOtCT3f6vXmt99+q9R7DgbWyIFzyrXXXqvhw4frvffeU3x8vCRp165dGjlyZMAeswX4SlpamvLy8uz/lyZQjx0DnLRmzRr16tVLGRkZatKkiSRp48aNqlWrlj777LMSV0I4l3Xq1EnvvPOOnnvuOUknPlPcbrf++te/6pprrnE4O9+JiYkp8+dlZdz19Wy1adNGy5Yt00UXXaRrrrlGY8eO1YEDB/Sf//wnoNbn81l+fr4WLlyoX3/9VX379lVUVJR2796tatWqqWrVqk6n51MvvviiGjRooLvuukuSdMcdd+ijjz5SnTp19OWXX6p169YOZ1gSu6/DMTt27FCvXr20Zs0a1atXT5Zlafv27WrZsqU+/fRTJSQkOJ0iAAAlXHHFFapdu7amT59uH198+PBhDRw4UPv27dMPP/zgcIa+88svv6hLly667LLL9M033+iWW27R2rVrdejQIX3//fdq1KiR0yn6xKJFi+z/b926VU888YQGDhxoX5f9hx9+0PTp0zVhwgQNGDDAqTT9ZtmyZcrOztY111yj/fv3a8CAAfZx9FOnTq2UTUx5XXrppfrf//6n6tWrlzhZ48lWrFhRgZn537Zt23TjjTdq+/btysnJ0caNG5WYmKgRI0bo999/19///nenU/SpxMREvfvuu7ryyis1f/583XnnnXr//ff1wQcfaPv27Zo3b57TKZZAUw7HzZ8/X+vXr7ePg73++uudTgkAgFKFh4dr2bJlatGihUd8zZo1ateunY4fP+5QZv6RkZGht956S8uXL5fb7dall16qhx56SHXq1HE6Nb+47rrrdP/99+sPf/iDR3zGjBmaMmWKx+FBOHeMGzdOjz/+uCIiIkqcrPFkzzzzTAVlVTF69+6tqKgo/etf/1LNmjXtc0MsWrRI999/vzZt2uR0ij4VHh6ujRs3ql69eho+fLh+//13/eMf/9DGjRvVvn17HT582OkUS2D3dTgiPz9fVapU0cqVK9W1a1d17drV6ZQAACiTJk2aaO/evSWa8n379gXkCRbj4uJO28QEkh9++MHrzGHbtm11//33O5BRxdm3b582bNggy7LUpEmTgLo8bfFGO9Ca7tP57rvv9P333ys0NNQjXr9+fe3atcuhrPynevXq2rFjh+rVq6c5c+Zo/Pjxkk5cvrKyHn5S+vniAT8KDg5W/fr1K+0fBgAAxWVlZdk/KSkpGjZsmD788EPt3LlTO3fu1IcffqgRI0boxRdfdDpVn5o6dapmzZpVIj5r1ixNnz7dgYz8r169el6b8n/84x+qV6+eAxn5X1ZWlu655x7VrVtXnTt3VqdOnRQfH68//vGPyszMdDo9nCW32+11m3vnzp2KiopyICP/6tOnj/r27auuXbvq4MGD6t69uyRp5cqVlfaLU3Zfh2MKB/p3331XNWrUcDodAABKFRQU5HEMauHmU2Gs+O+B9IVzkyZN9Pe//73ESd0WLVqkwYMHa8OGDQ5l5j9ffvmlbrvtNjVq1EhXXHGFJOnHH3/Ur7/+qo8++kg9evRwOEPfu/POO7Vy5Uq9/vrr6tChgyzLUmpqqoYPH65WrVrpgw8+cDrFs1a9evUyn8zv0KFDfs6mYt11112Kjo7WlClTFBUVpdWrV6tWrVrq1auXLrzwwoA7O3teXp5ee+01bd++XQMHDlSbNm0kSZMmTVLVqlUr5R4vNOVwTJs2bbR582bl5eWpfv36ioyM9Lg90E6yAQA4dxU/EdjpdO7c2Y+ZVKwqVapo/fr1atCggUd869atatasWcAdP19o586deuutt7Ru3Tr7nDcPPvhgwM6UR0ZGau7cubrqqqs84t9++61uvPFGHT161KHMfKc8e3YE2sn8du/erWuuuUYul0ubNm1S27ZttWnTJl1wwQVavHixateu7XSKPpOXl6fBgwfr6aefVmJiotPplBnHlMMxvXv3djoFAADK5Ewa7aFDh+rZZ5/VBRdc4IeMKkbt2rW1evXqEk35qlWrVLNmTWeS8rPc3FwlJCTo+eefL3HbgQMHzun3szQ1a9ZUdHR0iXh0dLR9hYFzXaA12uURHx+vlStXaubMmfYJG++77z7169dP4eHhTqfnUyEhIZo9e7aefvppp1MpF2bKAQAA/KBatWpauXLlOTVbc7JRo0bpgw8+0NSpU9WpUydJJ/YauPfee3X77bfrb3/7m8MZ+l7v3r318ccfKyjI89RLe/fu1XXXXac1a9Y4lJn/TJkyRbNmzdI777xjn1U/IyNDAwYMUJ8+fTRkyBCHM/StL7/8Ui6XSzfccINHfN68eSooKLCPQQ4U7777rv74xz96ve3xxx/XX//61wrOyL8GDRqkli1b6tFHH3U6lTJjphwAAMAPAmHeY/z48dq2bZuuu+46BQef2Gx0u93q37+/UlJSHM7OP/bs2aP77rvP4zjbPXv26Nprry1xxv1z2cnX6t60aZPq16+vCy+8UJK0fft2hYWFaf/+/QHXlD/xxBN64YUXSsTdbreeeOKJgGvKH374YcXExOimm27yiI8cOVIzZ84MuKa8cePGeu6555SamqrLLrusxCGyw4YNcyiz0jFTjgp1Pp9kAwBwfomKirKvB3yu27Rpk1auXKnw8HC1bNlS9evXdzolvzl48KA6deqkbt266ZVXXtGuXbt07bXXqnXr1po5c2aJGfRzVXkucxdolxALDw/XunXrvJ4roUWLFgFxDH1xc+bM0d13363PPvvM3uPlkUce0ccff6z//e9/atq0qcMZ+lbDhg1Lvc2yLG3ZsqUCsykbZspRoSZNmmT//+DBgxo/frxuuOEGdejQQdKJa4POnTv3nDsOBACAQJaUlKSkpCSn06gQNWvW9Djp2RdffKFLL71U//3vfwOmIZfOrNF+7733dMstt5SYeTzXREdHa8uWLSWa8s2bN5/ztXlz44036u9//7t69+6tefPm6d///rc+/fRTLViwQBdddJHT6flcenq60ymUGzPlcMxtt92ma665Rg8//LBHfPLkyfr666/1ySefOJMYAAA+EAgz5bfffrvatm2rJ554wiP+17/+VUuWLPF6DfNAsWnTJl111VXq2rWr/vOf/5R5T79AFgjnSZCkwYMH68cff9Ts2bPVqFEjSSca8ttuu03t2rXT22+/7XCG/vHWW29p5MiRqlWrlhYsWFBpr9ntK7m5uUpPT1ejRo3sw28qK5pyOKZq1apauXJliQ+ETZs2qU2bNjpy5IhDmQEAcPYCoSmvVauWvvnmG7Vs2dIj/vPPP+v666/X3r17HcrMt0o7vO7YsWMKCwuTy+WyY+fz4XWBsE5LUmZmpm688UYtW7ZMCQkJkk5cBu/qq6/Wxx9/rJiYGGcT9IHSTnL24Ycfqk2bNvaXEZI0ceLEikqrQhw7dkyPPPKIfRm8jRs3KjExUcOGDVN8fHyJLxkrg8r9lQECWs2aNTV79mw9/vjjHvFPPvkkYC+zAgA4f/zxj39UtWrVnE7jrBw5ckShoaEl4iEhIcrKynIgI/8ofngdAl90dLRSU1M1f/58rVq1SuHh4WrVqpV9vHUgSEtL8xpv1KiRsrKy7NsDcQ+Q0aNHa9WqVVq4cKFuvPFGO3799dfrmWeeqZRNOTPlcMy0adN033336cYbb7SPKf/xxx81Z84cvf322xo4cKCzCQIA4MWcOXNUtWpV+5jjN954Q//85z/VvHlzvfHGGwFzXWdJateunW6++WaNHTvWI56cnKzPP/9cy5cvdygzOCFQZsrT09NPeTIwnNvq16+v999/X1dccYXHOrt582ZdeumllfILxcA5WwXOOQMHDlRqaqpiYmL08ccf66OPPlJ0dLS+//57GnIAQKX1+OOP2xt1P//8sx577DH16NFDW7ZsOaeui1sWTz/9tJ577jkNGDBA06dP1/Tp09W/f389//zzAX1S1l9//VVPPfWU/vCHP2jfvn2STnwZs3btWoczgy80btxY11xzjd599139/vvvTqdTYTZv3qy5c+fq+PHjkgLjso3e7N+/X7Vr1y4RP3r0aKXdM4CmHI5q3769/vvf/2rFihVKS0vTf//7X7Vv397ptAAAKFV6erqaN28uSfroo4900003KSUlRW+++aa++uorh7PzrVtuuUWffPKJNm/erKFDh+qxxx7Tzp079fXXX6t3795Op+cXixYtUsuWLfXTTz/p448/ts9xs3r16oC7NNj5atWqVWrTpo0ee+wxxcXFaciQIfrpp5+cTstvDh48qOuuu04XXXSRevTooT179kiS7r//fj322GMOZ+d77dq10xdffGH/XtiI//Of/7T3zq1saMrhKLfbrY0bN+q7777T4sWLPX4AAKiMQkNDdezYMUnS119/rW7dukmSatSoUSl3izxbPXv21Pfff6+jR4/qwIED+uabb9S5c2en0/KbJ554QuPHj9f8+fM9jqe/5ppr9MMPPziYmW+99tpr9izx9u3byzRrWr9+fYWEhPg7Nb+7+OKLNXHiRO3atUtTp05VRkaGrr76arVo0UITJ07U/v37nU7Rp0aOHKmQkBBt375dERERdvyuu+7SnDlzHMzMPyZMmKAxY8boT3/6k/Lz8/Xqq6+qa9eumjZtmp5//nmn0/OKY8rhmB9//FF9+/bVtm3bSgwElmWpoKDAocwAACjdLbfcotzcXHXs2FHPPfec0tPTVbduXc2bN08PP/ywNm7c6HSKOAtVq1bVzz//rIYNG3ocj7p161Y1bdo0YHZ3Dg4O1u7du1W7dm25XC7t2bPH6y6/54OcnBy9+eabGj16tHJzcxUSEqK77rpLL774ourUqeN0emctLi5Oc+fOVevWrT3W6fT0dLVs2TIgr3j0888/629/+5uWL18ut9utSy+9VH/5y19KXEmisuDs63DMgw8+qLZt2+qLL75QnTp1Ku0xHgAAFDd58mQNHTpUH374od566y3VrVtXkvTVV195nOk3EBQUFOiVV17RBx98oO3btys3N9fj9kC8PFhMTIz27NlT4kRgaWlp9nsdCOLj4/XRRx+pR48eMsZo586dpX7hcOGFF1ZwdhVj2bJl+ve//62ZM2cqMjJSf/7zn3Xfffdp9+7dGjt2rHr16qUlS5Y4neZZO3r0qMcMeaEDBw4oLCzMgYz8r2XLlvYl0c4FzJTDMZGRkVq1alWJ65QDAIDKYezYsXr77bf16KOP6umnn9aYMWO0detWffLJJxo7dqyGDRvmdIo+N2rUKP3www+aNWuWLrroIq1YsUJ79+5V//791b9//4A5rnzKlCl65JFHlJ+fX+oyxpiA3Htx4sSJmjp1qjZs2KAePXro/vvvV48ePRQUVHRk7+bNm9W0adNTvj7nip49e+rSSy/Vc889p6ioKK1evVr169fX3XffLbfbrQ8//NDpFH3qmmuu0R//+Efdfvvtio6OdjqdMqEph2OuvfZajRo1KuBmFQAAgW3FihUKCQmxd4P89NNPNXXqVDVv3lzJycler+t9rmrUqJFee+019ezZU1FRUVq5cqUd+/HHHzVjxgynU/S5vLw8DRw4UDNnzpQxRsHBwSooKFDfvn01bdo0uVwup1P0mezsbG3btk2tWrXS119/rZo1a3pdrnXr1hWcmX8lJSXp3nvv1aBBgxQXF+d1mdzcXL333nsaMGBABWfne7/88ou6dOmiyy67TN98841uueUWrV27VocOHdL333+vRo0aOZ2iTw0bNkyzZs3Sb7/9ph49euiee+5Rjx49KvVnM005HDN79mw99dRTevzxx9WyZcsSJw5p1aqVQ5kBAFC6du3a6YknntBtt92mLVu2qEWLFrr11lu1dOlS9ezZU5MmTXI6RZ+JjIzUunXrdOGFF6pOnTr64osvdOmll2rLli1q06aNMjMznU7Rb3799VelpaXJ7XarTZs2SkpKcjolv5k+fbruvvvugN2VGVJGRobefPNNrVixwj7G+qGHHgqIY+a9cbvd+vrrrzVjxgzNnj1bLpdLt99+u/r161cpT1RJUw7HFN9F6GSBuKsUACAwREdHa8WKFWrUqJFefPFFffPNN5o7d66+//573X333dqxY4fTKfpMkyZN9M4776h9+/a6+uqr1bNnTz3xxBN6//339cgjj9jX8A5Eubm5Sk9PV6NGjRQcHNinYdqxY4csy1JCQoIkacmSJZoxY4aaN2+uwYMHO5yd702dOlVVq1bVHXfc4RGfNWuWjh07FhCz4yjy+++/6/PPP9fzzz+vn3/++f+1d+dxNab//8Bfp0JJuyIhJSKK7GtaUGMGYUbGmpgxPkbZt7FkCWNQ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "os_accuracy = df.groupby('os').apply(weighted_avg, include_groups=False) * 100\n", + "trip_accuracy = df.groupby('trip').apply(weighted_avg, include_groups=False) * 100\n", + "\n", + "fig, axes = plt.subplots(1, 2, figsize=(12, 5))\n", + "os_accuracy.plot(kind='bar', ax=axes[0])\n", + "axes[0].set_title('Accuracy time by Operating System', fontweight='bold')\n", + "axes[0].set_xlabel('Operating System')\n", + "axes[0].set_ylabel('Accuracy (time)')\n", + "axes[0].grid(axis='y', linestyle='--', alpha=0.7)\n", + "\n", + "trip_accuracy.plot(kind='bar', ax=axes[1])\n", + "axes[1].set_title('Accuracy time by Trip', fontweight='bold')\n", + "axes[1].set_xlabel('Trip')\n", + "axes[1].set_ylabel('Accuracy (time)')\n", + "axes[1].grid(axis='y', linestyle='--', alpha=0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0b93ba45", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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vtvt+e7du2vJkiUV5rBlyxadPHlSl1xyicd5HzhwQLt27dJtt92mO+64w4oXFhYqKirKmm+HDh1Uo0YNtzw81b59eyUmJuq9997TkiVL9Oc//1lBQUHlcnc4HOrWrZsVi4mJUatWrbRlyxZrmquvvtrtdd27d9eCBQusx2vWrNGqVavczvw7nU6dOHFCx48fd2uDL1AEAAAAAIAAlJKSon/9618KCgpSXFxcuS+5NWvWdHvscrnUoEEDpaWllZvX6d7oLywszOvXuFwuSUWXBJT+Ai5JdrtdkmSa5mnlU9qtt96qf/7zn9q8ebN1WUJplS3DNE0ZhuFxHi6XS+PHj9c111xT7rnQ0FAvs/591XpPgK+++kpXXHGF4uLiZBiGdROKYqZpaty4cYqLi1NYWJiSk5O1adMmt2lOnjyp++67T3Xq1FHNmjV15ZVXavfu3WewFQAAAABw9qlZs6YSEhLUpEmTcgWAipx//vnau3evHA6HEhIS3P7q1KkjSWrdurW+++47t9eVfVxaYmKiwsLC9MUXX1T4fHBwsKSiM+PF6tevr4YNG2rbtm3l8ii+kWCbNm20fv165eXleZRHRW688UZ9//33ateundq0aVPu+TZt2qiwsFArVqywYocOHVJGRoZat25tTfN76+P888/X1q1by7UlISFBNpvvv7JXaxEgNzdXHTp00NSpUyt8/vnnn9eLL76oqVOnatWqVYqNjVXfvn117Ngxa5qRI0dq3rx5mjNnjpYtW6acnBwNGjTIbSMBAAAAAPwxl156qbp3766rrrpKCxcu1I4dO7R8+XI98cQTWr16tSTpgQce0IwZMzRjxgxlZGRo7Nix5U7klhYaGqoxY8Zo9OjReuutt/Tzzz/ru+++0/Tp0yVJ9erVU1hYmBYsWKB9+/YpKytLUtGvF0yePFlTpkxRRkaGvv/+e82cOVMvvviipKIv8DabTbfddps2b96szz77TH//+9+9am+tWrWUmZlZaYEiMTFRgwcP1h133KFly5Zp/fr1GjZsmBo2bKjBgwdLku6//34tWLBAzz//vDIyMjR16lS3SwEk6amnntJbb72lcePGadOmTdqyZYveeecdPfHEE17l66lqLQJcdtllmjBhQoXDHkzT1Msvv6zHH39c11xzjdq1a6dZs2bp+PHjmj17tiQpKytL06dP1z/+8Q9deuml6tSpk/773//q+++/1+eff36mmwMAAAAA5yzDMPTZZ5+pd+/euvXWW9WyZUvdcMMN2rFjh3U3/+uvv15PPfWUxowZo86dO2vnzp265557TjnfJ598Ug8//LCeeuoptW7dWtdff732798vSXI4HHrllVf0xhtvKC4uzvpyffvtt+vNN99UamqqzjvvPPXp00epqanWSIDw8HB9/PHH2rx5szp16qTHH39czz33nNdtjo6OLndZRGkzZ85U586dNWjQIHXv3l2maeqzzz6zRlZceOGFevPNN/Xqq6+qY8eOWrRoUbkv9/3799cnn3yixYsX64ILLtCFF16oF198UU2aNPE6X08Ypi8ulvABwzA0b9486/cit23bphYtWmjt2rXq1KmTNd3gwYMVHR2tWbNm6csvv7R+jqJWrVrWNB06dNBVV12l8ePHV7iskydP6uTJk9bj7OxsNWrUSIcOHVJkZKQkyWazyWazyeVyWdeclI47nU636zsqi9vtdhmGUe43HouvVSk7YqGyuMPhkGmabnHDMGS328vlWFmcNtEm2kSbaBNtok20iTbRJtp06jZlZ2crJiZGWVlZ1neDs8GJEye0fft2NWvWrEquI4f/83Qb8NsbA+7du1eSrIpSsfr162vnzp3WNMHBwW4FgOJpil9fkcmTJ1dYIFi3bp1V5albt65atGih7du368CBA9Y08fHxio+PV0ZGhjUURZKaN2+uevXqaePGjSXXnZxcopbxixRd81et/XGYXK6S62zaNZ2nYEeu1v40zC2H8xP+q/zCmtq4o+QOkjZbgbok/ldHcxsqY3c/Kx4afFTtm83T/qMttWNfTyseWfNXJcUv0u6DHbXnUEkBpU5UhprHfqNte3vqYFZLKx4Xs06N273rWZskJSUlKTo6WuvWrXPbobdv317BwcHWUKBiXbp0UX5+vjZs2GDF7Ha7LrjgAmVlZemHH36w4mFhYerQoYMOHjyobdu2WfGoqCi1bt1ae/bsKbrnw8klv9um+Drp2rq7n7JzG1rxpvW/Ub3oDH2//WqdyI+24lXZT2HRl3vWpt/4ZNvT6fXTpX97TZe3qWPFCp2m3lu/X7GRwUpOKHmfZZ8o1GebD6l5TJi6Nik5OO7NzlfaT0fUrkFNtWsQbsW3HcrTyp3Z6tokUs1jSm7+sjEzRxszc5WcUEuxkcFWfOXObG07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/fr102WXXaadO3dW+porrrhCGRkZeuONNyqd5m9/+5s13+K/bt26VUUTzircEwAAAAAAUG1q1qyphIQE63Hnzp0VFRWladOmacKECRW+ZtiwYbryyit16623yul0atSoUeWmqVOnjtt8UYQiAAAAAADAbxiGIZvNpry8vFNO95e//EV2u10333yzXC6XRo8efYYyPLtRBAAAAAAAVJuTJ09q7969kqQjR45o6tSpysnJ0RVXXPG7r73ppptks9n05z//WS6XS4888oj13LFjx6z5FqtRo4YiIyN924CzDEUAAAAAADhHLXbNre4UfteCBQusu/tHREQoKSlJc+fOVXJyskevHzp0qOx2u2666Sa5XC499thjkqSnnnpKTz31lNu0d911l15//XWf5n+2oQgAAAAAAKgWqampSk1NPeU0pmme8rEkDRkyREOGDLEe79ixwxfpnZP4dQAAAAAAAAIERQAAAAAAAAIERQAAAAAAAAIERQAAAAAAAAIERQAAAAAAAAIERQAAAAAAAAIERQAAAAAAAAIERQAAAAAAAAIERQAAAAAAAAKEo7oTAAAAAABUjb49JpzR5S1e/sQZXR68x0gAAAAAAEC1GD58uAzDsP5iYmI0YMAAbdiwQZK0Y8cOGYah9PT0cq+96qqrNHz4cOvxtm3bNHToUMXFxSk0NFTx8fEaPHiwMjIyzlBrzg4UAQAAAAAA1WbAgAHKzMxUZmamvvjiCzkcDg0aNMireeTn56tv377Kzs7WBx98oK1bt+qdd95Ru3btlJWVVUWZn524HAAAAAAAUG1CQkIUGxsrSYqNjdWYMWPUu3dvHThwwON5bN68Wdu2bdOXX36pJk2aSJKaNGminj17VknOZzNGAgAAAAAA/EJOTo7efvttJSQkKCYmxuPX1a1bVzabTe+9956cTmcVZnj2owgAAAAAAKg2n3zyicLDwxUeHq6IiAjNnz9f77zzjmw2z7+uNmzYUK+88oqeeuop1apVSxdffLGeeeYZbdu2rQozPztRBAAAAAAAVJuUlBSlp6crPT1dK1asUL9+/XTZZZdp586dXs3n3nvv1d69e/Xf//5X3bt319y5c9W2bVstXry4ijI/O1EEAAAAAABUm5o1ayohIUEJCQnq2rWrpk+frtzcXE2bNk1RUVGSVOHN/Y4ePWo9XywiIkJXXnmlJk6cqPXr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/7ga7/4P4K9Tp1/6SUUkhcivZWgIU5mEkAnlnm5huxkTZmKb79owrM2d3d9by9z9sm8UC8MMsSIzW34Um26msblvtdyqpaRf5/P9o/tc6zinX3RUzuv5eFyPh+tzfa7r+nw+1+VzTu/rc64P6QgGAYiIiIiIiIh0BIMARERERERERDqCQQAiIiIiIiIiHcEgABEREREREZGOYBCAiIiIiIiISEcwCEBERERERESkIxgEICIiIiIiItIRDAIQERERERER6QgGAYiIiIiIiIh0BIMARERERERERDqCQQAiIiIiIiIiHcEgABEREREREZGOYBCAiIiIiIiISEcwCEBERERERESkIxgEICIiIiIiItIRDAIQERERERER6QgGAYiIiIiIiIh0BIMARERERERERDqCQQAiIiIiIiIiHcEgABEREREREZGOYBCAiIiIiIiISEcwCEBERERERESkIxgEICIiIiIiItIRDAIQERERERER6QgGAYiIiIiIiIh0BIMARERERERERDqCQQAiIiIiIiIiHcEgABEREREREZGOYBCAiIiIiIiISEfIW7oAREREj+RsVkuXgIiIiKjN4UgAIiIiIiIiIh3BIAARERERERGRjmAQgIiIiIiIiEhHMAhAREREREREpCMYBCAiIiIiIiLSEQwCEBEREREREekIBgGIiIiIiIiIdIS8pQtARK0I510nIvYDRERETzWOBCAiIiIiIiLSEQwCEBEREREREemIpyYIEBkZie7du8PY2BhDhgxBenp6SxeJiIiIiIiIqFV5Kt4JkJSUhGXLliEyMhIjR47Etm3bMGHCBFy5cgXdunVr6eKRNvA3q0RERERERE32VIwE+Otf/4r58+fj5ZdfRt++fbFlyxY4ODjgk08+aemiEREREREREbUabX4kQEVFBc6fP4/Vq1erpI8bNw5nzpzRuE95eTnKy8ul9d9//x0AUFBQgKqqKgCAnp4e9PT0oFAooFAopLzK9Orqaggh6k83UKC6SgGhEJAb6quUoaqyGhBQT6+oBmSA3EA9XaYng778j7iNEALVlYo60/X0ZdDT/yNdoRBQVCmgJ9eDnp7sj/RqBYqLixtXJwD6+vqQyWRSW9VOB4Dq6upGpcvl8pqy1kqXyWTQ19dXa3e1dANFg3VSVAvoG+hBJvsjXXk96krXxnUqLCxsXJ3+q1nuPTza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K1eiQ4cO6NatG8LDw3H//n3Mnz8fALBw4UJs3rwZr7/+OhYsWCAN/a9t1apVGD58OBYvXoxXXnkFpqamyM7ORkpKCv73f/9XY9lWrlyJmTNnYvDgwXjhhRdw8OBB7N27F8ePH3/k+jaGs7MzduzYgaNHj6J79+747LPPkJGRge7duzf6GIcOHcLPP/+M0aNHo3379jh8+DAUCgVcXFw05td0PxAREVHbwZEARERPqejoaIwdO1YtAAAA/v7+yMzMxIULF+Dp6Yk9e/bgwIEDePbZZzFmzBiV4eRr167FzZs30bNnT9ja2gKoefIdGRmJrVu3YuDAgfj+++/xxhtvqJwjJiYGhYWFGDRoEIKCgqSp+x6HhYWFSqDhYZs2bYK/vz+CgoIwePBgXL9+HUePHkX79u0B1AznT05OxsGDBzFw4EBERUVhw4YNKsdwdXXFyZMn8dNPP+H555/HoEGD8D//8z/o3LlzneedOnUqPv74Y3z44Yfo378/tm3bhtjYWHh6ej5WfRuycOFCTJs2DQEBARg2bBju3r2LRYsWNekYVlZW2Lt3L8aMGYO+ffsiKioKu3btQv/+/TXm13Q/EBERUdshE435gSQRERERERERtXkcCUBERERERESkIxgEICIiIiIiItIRDAIQERERERER6QgGAYiIiIiIiIh0BIMARERERERERDqCQQAiIiIiIiIiHcEgABEREREREZGOYBCAiIiIiIiISEcwCEBERERERESkIxgEICIiIiIiItIRDAIQERERERER6Yj/B0u31vn/SGpeAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "confusion_matrix = pd.crosstab(df['actual_mode'], df['predicted_mode'])\n", + "normalized_matrix = confusion_matrix.div(confusion_matrix.sum(axis=1), axis=0) * 100\n", + "ax = normalized_matrix.plot(kind='bar', \n", + " stacked=True, \n", + " figsize=(10, 7),\n", + " colormap='viridis')\n", + "\n", + "plt.title('Confusion Matrix', fontweight='bold')\n", + "plt.ylabel('Percentage of Predictions (%)')\n", + "plt.xlabel('Actual Mode of Transit')\n", + "plt.xticks(rotation=0)\n", + "plt.legend(title='Predicted Mode', bbox_to_anchor=(1.05, 1), loc='upper left')\n", + "plt.grid(axis='y', linestyle='--', alpha=0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee243513", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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uNBIMvfcc48pLCw0RUVF5sQTT4y/hpLMz372s6TPSd97RZIpLy838+bNM7W1tfE+9O+zMcb88pe/NLm5uUaSKSoqMnPnzo0/hzabzTzwwAPDei0aGhrMggULzJQpU4wkM2vWrITn5LHHHoufO5Lv1aH0fR+ffvrp5txzz40//ty5c43T6TSSzOGHH26ampoG3HbmzJnx52r27Nlmzpw58e9lt9s94Hv5oosuMrNmzTKSzJQpUxL6eMMNN8TPO5jXEBgPBFhgBL73ve8ZSWbevHlJj19zzTVGkrn44osT2gcLsLFYzMybNy8eRvuHgj/84Q+moKDASDIPPfRQwu0OJsDm5OSYFStWmEgkYowxJhQKmcsuu8xIMvPnzx/O0xA3VICNxWJm7ty5RpK58cYb4+2DBdg9e/bEQ+HXv/51EwwGjTHGRKNRc9ddd8Vrf+eddxJud/vttxtJ5vbbb0+p9j7f/OY3jSRTXV1t3nzzzXj7+++/b4488kgjyXz+858fcLu+H/Sphn6v12sOOeSQeODp6ekxxvT28wc/+IHJyclJKcD+v//3/4wkM2fOHFNXV5dwfnNzs7nvvvvij9FnsPvv09nZaZ544gnT1taW0N7R0WFuuOEGI8lceeWVA27X95zk5OSYG264wfj9fmNM73vh29/+dvx57nvv9bnvvvuMJJOfn29+9rOfmWg0Gj/W1tZmfvCDH5jm5uZ42zvvvGNcLpfJy8szP/3pTxPO/+1vf2uKi4uNw+EwmzZtGrSP++t7Lz/++ONJj4/0e3Uofd/HTqfTFBcXmz//+c/xYzt37jRz5swxksxFF1004LarVq0yH374YUJbOBw2jz76qHE6neawww5LeF6MGfo/j31G+hoC44UAC4zA7t274yNCW7duTTgWDAZNWVmZkWSef/75hGODBdg1a9YYScblcsVHv/rrG42rra1NGNk5mAB73nnnDTjW0tISH/lsb28f6ilIMFiADQaD5pZbbonX8te//jV+bLAforfddlt8xDOZT33qU0aSufzyyxPaDybAejwek5+fbySZZ599dsDx119/PT6i98EHHyQcG2mAffTRR40kM23aNBMKhQYcP//881MKsCtWrDCSzP333z/sGg4UYA+kpqbG5Ofnm3A4nNDe95zMmTNnQHgKhULxEdK33nor3u7z+Ux5ebmRZJ588slhPf6FF144ZJ9/9KMfGUnm6quvHnafDhRgR/q9OpS+72NJ5t577x1w/J133om///YPq0P54he/aCSZV155JaE9lQCbymsIjCfmwAIjMG3aNC1evFjSvqWy+vz+979XR0eHpkyZorPOOmtY97d69WpJ0uc+97mkyy999atflcvl0s6dO7Vt27aDrL7Xv//7vw9oq6ioiM/P/eijj1K+zz/84Q867bTTdNppp2nevHmqqKjQPffcI0n6xje+EZ8LO5S+5+KGG25IevzrX/96wnmj4eWXX5bP59P06dP16U9/esDxk046SaeccoqMMVqzZs2oPOYf//hHSdKXv/zlpMthXXfddSndX9+Fgs8///yA+boH689//rO+8Y1v6Nxzz9Xpp58ef409Ho98Pt+gc5uvvvpq2e2JP2ZycnI0Z84cSYnvsVdeeUVtbW2qrq4e1jrLoVBIL7zwghwOx6Bzjs8//3xJ0rp164bTzWEZy+/V3NzcpN+Xxx13nE477TQZY5K+77du3arbb79dF154oRYtWhR/ffr6/c4776RUR3+pvIbAeHKmuwDAqi6//HK99NJLeuqpp/Rf//Vf8fa+QHvJJZfI6Rzet9h7770nSTr66KOTHi8qKlJNTY0++OADvffeezryyCMPsnoNuhbtlClTtG3btmGtc7u/5uZmNTc3S+pdsWHSpEk67bTT9JWvfEUXXHDBsO7jQM9F36YQTU1N6urqUnFxccp1DvaYRx555KC7lx1zzDF69dVX4+eO1mMeddRRSY8P1j6YCy64QDNmzNDq1atVXV2tT37yk/rEJz6hRYsWjXgjjVAopC984QsHXC90sAuMhnqPSUp4j7377ruSpJNPPnlAYErmvffeUyAQUG5urj71qU8lPcfsvZhqz549B7y/4RrL79VDDjlERUVFSY8dddRRevnllwe8/1asWKH/+I//UCwWG/R+B3t9hiOV1xAYT4zAAiP02c9+Vvn5+froo4+0YcMGSVJnZ6deeOEFSYmrDxxI3w+Bvh8KyVRWVkqSuru7R1pygoKCgqTtfeGh74d/Kq644gqZ3qlJikQiam5u1gsvvDDs8Cod+Lnoex6k0Xsu0vH89z3m5MmTh3y84SooKNBf//pXXXXVVYrFYvrlL3+pG264QbNnz9Yxxxyj3//+9ynXePfdd+s3v/mNqqqq9OSTT2rHjh0KBALx13jBggWSFF/dIFlNySR7j3V1dUmSSktLh1Wbx+OR1BuyX3nllaR/+r4vA4HAsO5zOMbyvZLqfa5fv17f+c53ZLPZtGLFCm3evFler1exWEzGGN12222SBn99hmMsPieA0UCABUaosLAwHsz6Rl2feeYZBYNBHXXUUTrxxBNTui9J8dHLZPqW7BpshCZTHOi56L902Wg9F+l4/vses6WlJenxoWoZzCGHHKL/+Z//UXt7u1577TXdfffdmjdvnrZs2aILLrhAf/vb31K6v761jp944gldfvnlqq2tlcvlih+vq6tLucbB9D2vnZ2dwzq/7/mbNm1aPFAP9We0jOV7ZbD3Qv/H63+ffa/Pt771Ld166606+uijVVBQEP8twmi+PsBEQ4AFDkLf1rLPPPOMwuHwgK1jh+tjH/uYJGnLli1Jj3d3d8d/GPWdm6kO9Fz0rW1ZWVmZMH1gsF/9p/KY77777qBhp+9xR+v577ufwXZL6/uV+kg4nU7Nnz9f3/72t7Vx40ZdfPHFikaj+p//+Z+U7qdvPdhTTz11wLG2trZR/dV83zSHjRs3Dvnr8D6zZs1STk6OGhoaDupX5Ps70PtoLL9X6+rqBv2VfN/7of99DvX6SIPPfT2Y7xVgoiDAAgfhX//1X1VVVaW2tjY9/PDDevnllxO2jh2us88+W5L0q1/9So2NjQOOP/zwwwoGg6qtrdURRxwxKrVPVH3PxYMPPpj0+AMPPJBwXp++nbD6dsZKxWmnnab8/HzV1dXpueeeG3D8jTfe0KuvviqbzaYzzzwz5ftPpu8Cv8ceeyzpr3gfeuihUXkcSfr4xz8uSaqvr09oP9Bz1nc82YYdP/jBDxSNRketxgULFqiiokJ79uzR008/fcDz8/PzdfbZZysWi8XfE6PhQM/JWH6vhkIhPfbYYwPa//nPf+qvf/3rgPffUK/P6tWrBw2wB/O9AkwUBFjgIDgcDl166aWSen+NZ4zRwoULNX369JTu54wzztBJJ52kYDCoSy65JOHXk6tXr47vMnXrrbdm/OjJ1772NRUXF2vTpk36xje+oVAoJEmKxWJauXKlnn/+eeXk5Oib3/xmwu0OO+wwSdKGDRsUiURSeszi4mJ97Wtfk9S7+sHbb78dP/bhhx/qiiuukCR9/vOfH/SillRdcsklmjZtmnbv3q1rr702HiaMMbr//vvjc6mH64c//KHuu+++AWFm165devTRRyVJJ5xwQsKxvudssKv0+1aN+OY3vxkfGTTG6Mknn9Q999yjvLy8lGocSl5env7zP/9TknTttdfq6aefThgN7+jo0A9/+MOEX7P/13/9l1wul+68807dfffdAwJZQ0OD7r//fv33f//3sOvoe07Wr1+fdDR+LL9XnU6nbr/99oTXY/fu3fHf9Fx44YUJ77++1+fuu+/W9u3b4+0bN27U1VdfPejr09fHjRs3jvqKFcC4Ga/1uoBM9fbbb8fXcJSUsGPP/g60E1ffwvYul8uccMIJ5vDDD4/f7+WXXz6qO3Htv6NRn5Gsa3qgnbiSOdBOXH27K5WVlZmTTjopvkOS3W43Dz/88IDbeDye+Pq7U6dONQsWLDALFy40K1asGFY9Pp/PLF68OP68HX300WbOnDnG4XDE18PsvxNXn5GuA2uMMX/+85/j6+4WFxebk046acQ7cX3961+Pnz9jxgxz8sknmyOPPDJe/+zZs01nZ2fC/dxxxx1GknE4HOb44483CxcuNAsXLoyvb/rGG28k1HfiiSea6urq+PtxsL4f6DkZbK3VWCxmvva1r8X7UVFRYU466SQzY8aMeD/2f9/++te/jq/hm5eXZ+bOnWtOPvnk+E5Zksy3v/3tYb0exhjzwQcfxN97tbW15hOf+IRZuHBhQq0j+V4dSrKduD72sY+Z448/Pr4T12GHHTZg3VmPxxPfASw3N9cce+yx5ogjjoi/f2+++eakayNHo9H4blzl5eXmlFNOMQsXLjRf//rX4+eM9DUExgsjsMBBmjt3ro499lhJvaNIF1100Yju5/DDD9fbb7+tW265RdOnT9fmzZvV3Nys008/XT/72c/i+5Zng/PPP19vvvmmLrvsMuXl5WnTpk0yxugzn/mMXn75ZX3lK18ZcJvi4mKtXr1a55xzjoLBoF599VWtW7du0Dmm+3O73frjH/+o+++/X/PmzdPOnTv13nvv6eijj9add96pDRs2qLy8fFT7uXjxYr322ms677zzZLPZtGXLFtXU1Ojpp5/Wt771rZTu66tf/aqWLl2q008/XeFwWJs2bVJHR4dOOukk/ehHP9Lrr7+ukpKShNvceuutuv3223X44Ydry5YtWrdundatWxe/av/EE0/U+vXrdeaZZyoWi2nr1q2aMmWKHnjgAa1atWrUnoc+NptNDz30kJ5//nn927/9m2w2m9555x2Fw2EtXLhQDz30kKqrqxNu85nPfEZbtmzR17/+dc2YMUPbtm3Tli1blJ+fr8985jNatWqVbr311mHXMHPmTP3ud7/TwoUL1dHRoZdfflnr1q2LzzeVxu571Waz6dlnn9XSpUsVi8W0ZcsWTZ48WV/72tf0t7/9bcC6s8XFxXr55Zf1pS99ScXFxdq2bZtCoZBuvvlmvfrqq4NeRGa32/X888/roosuksPh0Ouvv65169Zp06ZNKdcMpIvNGNbAAAAgXdauXavFixdr4cKFWrt2bbrLASyBEVgAAABYCgEWAAAAlkKABQAAgKUQYAEAAGApXMQFAAAAS2EEFgAAAJbiTHcB4yEWi6m+vl5FRUVZs44mAACAlRhj1N3drerqatntQ4+xZkWAra+vV01NTbrLAAAAwAHU1dXpkEMOGfKcrAiwfbuR1NXVqbi4OM3VAAAAYH9dXV2qqakZdBe5/rIiwPZNGyguLibAAgAATGDDme7JRVwAAACwFAIsAAAALIUACwAAAEshwAIAAMBSCLAAAACwFAIsAAAALIUACwAAAEshwAIAAMBSCLAAAACwFAIsAAAALIUACwAAAEshwAIAAMBSCLAAAACwFAIsAAAALIUACwAAAEshwAIAAMBSnOkuAEAvXyiS7hIAZLj8XH7sIzPwTgYmiKO/+8d0lwAgw+24+9x0lwCMCqYQAAAAwFIYgQUmiC13nJ3uEmARvlBE8+58SZL0xn/8C78WBpB1+NQDJghCCEYiP9fJewdA1mEKAQAAACyFAAsAAABLIcACAADAUgiwAAAAsBQCLAAAACyFAAsAAABLIcACAADAUgiwAAAAsBQCLAAAACyFAAsAAABLIcACAADAUtIeYJcuXSqbzZbwp6qqKn7cGKOlS5equrpabrdbixYt0ubNm9NYMQAAANIp7QFWko455hg1NDTE//zjH/+IH1u5cqXuvfdePfjgg9q4caOqqqp05plnqru7O40VAwAAIF0mRIB1Op2qqqqK/5k8ebKk3tHX++67T7fddpsuvPBCzZ49W6tWrZLP59NTTz2V5qoBAACQDs50FyBJ77//vqqrq+VyuTR//nwtX75chx12mLZv367GxkadddZZ8XNdLpcWLlyoDRs26Nprr016f8FgUMFgMP7vrq4uSVIsFlMsFpOk+HQFY4yMMfFz+9r7zhvtdrvdPuAxR6udPtEn+pQdfdr/NpnQp5G20yf6RJ8yp0/7tw8l7QF2/vz5evLJJ/Wxj31MTU1NuvPOO3Xqqadq8+bNamxslCRVVlYm3KayslI7d+4c9D5XrFihZcuWDWivq6tTUVGRJKmwsFAVFRVqa2uT1+uNn1NaWqrS0lK1tLTI7/fH28vLy1VUVKSGhgaFw+GEWtxut+rq6hJe7OrqajmdTu3atSuhhunTpysSiai+vj7eZrPZVFtbq0AgoKampnh7Tk6Opk2bJq/Xq7a2tni72+1WZWWlPB6POjs74+30iT7Rp+zokz+c+CGfCX3qk0mvE32iT/QptT7V1dVpuGxm/0ieZj09PZo5c6aWLFmij3/841qwYIHq6+s1derU+DnXXHON6urq9OKLLya9j2QjsDU1Nero6FBxcbGk9P8vIxP/50Sf6BN9Gp8++UIRzV66RpK05Y6z5c5xWL5PI22nT/SJPmVOnzwej8rKyuTxeOJ5bTBpH4HdX0FBgY499li9//77uuCCCyRJjY2NCQG2ubl5wKhsfy6XSy6Xa0C73W6X3Z447bfvyUx2bjKj0T7YY451O32iT/QpM/o03M8xK/VprNrpE32iT9bp02DnJ72PYZ85ToLBoN59911NnTpVhx56qKqqqrRmzZr48VAopHXr1unUU09NY5UAAABIl7SPwN5yyy0677zzNH36dDU3N+vOO+9UV1eXrrjiCtlsNt10001avny5Zs2apVmzZmn58uXKz8/XpZdemu7SAQAAkAZpD7C7d+/WJZdcotbWVk2ePFkf//jH9dprr6m2tlaStGTJEvn9fl133XXq6OjQ/PnztXr16vjFWAAAAMguE+4irrHQ1dWlkpKSYU0KBoCJzheK6Ojv/lFS70Vc+blpH4sAgIOWSl6bcHNgAQAAgKEQYAEAAGApBFgAAABYCgEWAAAAlkKABQAAgKUQYAEAAGApBFgAAABYCgEWAAAAlkKABQALy4K9aABgAAIsAFhMJBqLfx3q9zUAZAsCLABYTDCyL7QGwgRYANmHAAsAFhPsF1pDBFgAWYgACwAWE2AEFkCWI8ACgMX4w9H414FIdIgzASAzEWABwGKC/QJs/zALANmCAAsAFtM/tPpCkTRWAgDpQYAFAIvxh/YF2GA4ylqwALIOARYALCQSjSnc7yKuWCxxWS0AyAYEWACwkGRzXgPMgwWQZQiwAGAhyQMsI7AAsgsBFgAsJBAaGFZZiQBAtiHAAoCFJFv3tf9FXQCQDQiwAGAhwSTTBYJsZgAgyxBgAcBCQtGBYTXEKgQAsgwBFgAsJNkIbChKgAWQXQiwAGAhwSRhNRSJsZkBgKxCgAUAizDGKBodGFSNkSIxAiyA7EGABQCLGCqkRgmwALIIARYALGKokEqABZBNCLAAYBFDhVSmEADIJgRYALCI2BAXanERF4BsQoAFAACApRBgAQAAYCkEWAAAAFgKARYAAACWQoAFAIuw22yDHrMNcQwAMg0BFgAswmEfPKQOdQwAMg0BFgAsYqhBVvIrgGxCgAUAi3AMkWCHml4AAJmGAAsAFsEUAgDoRYAFAIuw2WyyD/KpPdToLABkGgIsAFiII0mCtdslOyOwALIIARYALCTZSCvzXwFkGwIsAFhIsikEzH8FkG0IsABgIc4kCZYACyDbEGABwEKShdVkoRYAMhmfegBgIckCrINPcgBZho89ALAQZ5IAy0VcALINARYALCRZWGUKAYBsw6ceAFiI05FsCgEjsACyCwEWACwk2QgsARZAtiHAAoCFJL+IiwALILsQYAHAQpJdxEWABZBtCLAAYCHJ5sAmC7UAkMkIsABgIUk3MkgSagEgkxFgAcBC2EoWAAiwAGApyUZbc1gHFkCW4VMPACwkWVhlCgGAbEOABQALyUk2AuvgoxxAduFTDwAsxOmwa/+9DAiwALINn3oAYDH9A6vDbuMiLgBZhwALABbj7BdgnYy+AshCfPIBgMXkOu1JvwaAbMEnHwBYTG6/UddkF3UBQKYjwAKAxTACCyDb8ckHABbT/yIuAiyAbMQnHwBYTP9pA+zCBSAb8ckHABbDFAIA2Y5PPgCwmMSLuPgYB5B9+OQDAItx9ptC4GQVAgBZaEIF2BUrVshms+mmm26KtxljtHTpUlVXV8vtdmvRokXavHlz+ooEgDRLuIiLEVgAWWjCfPJt3LhRP/3pT3XccccltK9cuVL33nuvHnzwQW3cuFFVVVU688wz1d3dnaZKASC9Ei7iYgQWQBaaEAHW6/Xqsssu0yOPPKKysrJ4uzFG9913n2677TZdeOGFmj17tlatWiWfz6ennnoqjRUDQPrYbP2nEEyIj3EAGFfOdBcgSddff73OPfdc/eu//qvuvPPOePv27dvV2Nios846K97mcrm0cOFCbdiwQddee23S+wsGgwoGg/F/d3V1SZJisZhisZik3h8ANptNxhgZY+Ln9rX3nTfa7Xa7fcBjjlY7faJP9Ck7+rT/bTKhTyNtp0/0iT5lTp/2bx9K2gPsL37xC7311lvauHHjgGONjY2SpMrKyoT2yspK7dy5c9D7XLFihZYtWzagva6uTkVFRZKkwsJCVVRUqK2tTV6vN35OaWmpSktL1dLSIr/fH28vLy9XUVGRGhoaFA6HE2pxu92qq6tLeLGrq6vldDq1a9euhBqmT5+uSCSi+vr6eJvNZlNtba0CgYCampri7Tk5OZo2bZq8Xq/a2tri7W63W5WVlfJ4POrs7Iy30yf6RJ+yo0/+cOKHfCb0qU8mvU70iT7Rp9T6VFdXp+Gymf0j+Tiqq6vTvHnztHr1as2ZM0eStGjRIs2dO1f33XefNmzYoAULFqi+vl5Tp06N3+6aa65RXV2dXnzxxaT3m2wEtqamRh0dHSouLpaU/v9lZOL/nOgTfaJP49MnXyii2UvXSJK23HG23DkOy/dppO30iT7Rp8zpk8fjUVlZmTweTzyvDSatI7BvvvmmmpubdeKJJ8bbotGo1q9frwcffFDbtm2T1DsS2z/ANjc3DxiV7c/lcsnlcg1ot9vtsu+3a03fk5ns3GRGo32wxxzrdvpEn+hTZvRpuJ9jVurTWLXTJ/pEn6zTp8HOT3ofwz5zDPzLv/yL/vGPf2jTpk3xP/PmzdNll12mTZs26bDDDlNVVZXWrFkTv00oFNK6det06qmnprFyAAAApEtaR2CLioo0e/bshLaCggKVl5fH22+66SYtX75cs2bN0qxZs7R8+XLl5+fr0ksvTUfJAAAASLO0X8R1IEuWLJHf79d1112njo4OzZ8/X6tXr45fjAUAAIDsktaLuMZLV1eXSkpKhjUpGAAmOl8ooqO/+0dJvRdx5edO+LEIADigVPIaK2ADAADAUgiwAAAAsBQCLAAAACyFAAsAAABLIcACAADAUgiwAAAAsBQCLABYWBashAgAAxBgAcBi+ofWSIwACyD7EGABwGLC0X4BNkqABZB9CLAAYDGRWCz+dbjf1wCQLQiwAGAx4Ui/EdgII7AAsg8BFgAspv8UgjBTCABkIQIsAFhMOLpv2kAowhQCANmHAAsAFtM/wIYNARZA9iHAAoDFhPstnRVlCgGALESABQCLifQfgY0yAgsg+xBgAcBiIgkXcRFgAWQfAiwAWEz/tV+j7MQFIAsRYAHAYmIxtpIFkN0IsABgMf1HXWMEWABZiAALABbTP8BGDQEWQPYhwAKAxfQfdGUEFkA2IsACAADAUgiwAAAAsBQCLABYjBHTBgBkNwIsAAAALIUACwAW47DZ4l/b+30NANmCAAsAFmO325J+DQDZggALABbj6BdaGYAFkI0IsABgMf0HXR0kWABZiAALABbjsO/76HY6CLAAsg8BFgAsxtlvCNZp52McQPbhkw8ALKb/qKuDi7gAZCECLABYTP8pBDkOPsYBZB8++QDAYpw2ltECkN0IsABgMf2nEOQQYAFkIQIsAFhM/wu3mAMLIBsRYAHAYhJGYJkDCyAL8ckHABbTfxktRmABZCMCLABYTb/MamcnLgBZiAALABbTf9SVAVgA2YgACwAW40hYRiuNhQBAmvDRBwAWY2MKAYAsR4AFAAsjvwLIRgRYALAwY9JdAQCMPwIsAAAALIUACwAAAEshwAKAxfSfNhBjDgGALESABQCLifYLrbFYGgsBgDQhwAKAxURj/QIsA7AAshABFgAsxvQbdY0wBAsgCxFgAcBiIjGmEADIbgcVYGOxmHw+32jVAgAYhv6jruEoCRZA9kkpwAYCAT3xxBP63Oc+p+rqauXm5qqoqEj5+fmaN2+elixZonfeeWesagUASIpE943ARpgECyALOYdzkt/v18qVK3X//ffL4/HoyCOP1L/8y79oypQpysvLU3t7uz766CM98sgj+sEPfqBTTz1VK1eu1CmnnDLW9QNA1ukfWqOGEVgA2WdYAXbWrFkqKCjQf/zHf+iyyy5TZWVl0vOMMfrLX/6ixx9/XIsXL9aDDz6of//3fx/VggEg2/WfQtB/NBYAssWwAuwdd9yhK664Qg6HY8jzbDabzjjjDJ1xxhlatmyZdu3aNSpFAgD26R9ao0whAJCFhhVgr7766pTv+LDDDtNhhx2W8u0AAEPrH1q5iAtANmIZLQCwmHC/KQSMwALIRsMagd1fY2Oj/vd//1c7d+5UIBBIOGaz2XT//fePSnEAgIESR2AJsACyT8oB9o9//KM+85nPDAiufQiwADC2EreSJcACyD4pTyH41re+pblz52rTpk0KBoOKxWIJf6LR6FjUCQDYK5awExcBFkD2SXkE9sMPP9Svf/1rHXfccWNRDwDgAKKGEVgA2S3lEdgjjzxSXV1dY1ELAGAY+mdWAiyAbJRygL3jjjt01113qampaSzqAQAcgCG0AshyKU8hOPfcc/XWW29p5syZmjt3riZNmpRw3Gaz6bnnnhu1AgEAAID+Ug6wTzzxhG6//XY5HA5t375de/bsSThus9lGrTgAwEB8zgLIdikH2GXLlum8887TE088obKysrGoCQAAABhUynNgm5qadOONNxJeASBN+g/AMhoLIBulHGCPP/547d69e9QK+MlPfqLjjjtOxcXFKi4u1imnnKI//OEP8ePGGC1dulTV1dVyu91atGiRNm/ePGqPDwBW4+gXWh0EWABZKOUA+4Mf/EArV67Upk2bRqWAQw45RHfffbfeeOMNvfHGGzrjjDP06U9/Oh5SV65cqXvvvVcPPvigNm7cqKqqKp155pnq7u4elccHAKux221JvwaAbGEzKa7Hcuyxx6qxsVHt7e2aOnVq0lUI3nnnnYMqatKkSfr+97+vq6++WtXV1brpppv07W9/W5IUDAZVWVmp733ve7r22muHdX9dXV0qKSmRx+NRcXHxQdUGAOn21/dbdPljr0uSHr/yJC0+ckqaKwKAg5dKXkv5Iq7y8nJVVFSMuLihRKNR/epXv1JPT49OOeUUbd++XY2NjTrrrLPi57hcLi1cuFAbNmwYNMAGg0EFg8H4v/s2Xujb7lbqDdo2m03GmIQ1Ffva+84b7Xa73T7gMUernT7RJ/qUHX2yad8xp2NgjVbs00jb6RN9ok+Z06f924eScoBdu3Ztqjc5oH/84x865ZRTFAgEVFhYqGeffVZHH320NmzYIEmqrKxMOL+yslI7d+4c9P5WrFihZcuWDWivq6tTUVGRJKmwsFAVFRVqa2uT1+uNn1NaWqrS0lK1tLTI7/fH28vLy1VUVKSGhgaFw+GEWtxut+rq6hJe7OrqajmdTu3atSuhhunTpysSiai+vj7eZrPZVFtbq0AgkLBBRE5OjqZNmyav16u2trZ4u9vtVmVlpTwejzo7O+Pt9Ik+0afs6FNX677dEB12W0b0qU8mvU70iT7Rp9T6VFdXp+FKeQrBWAiFQtq1a5c6Ozv1v//7v3r00Ue1bt06dXZ2asGCBaqvr9fUqVPj519zzTWqq6vTiy++mPT+ko3A1tTUqKOjIz4kne7/ZWTi/5zoE32iT+PTp7d2duiih1+TJP3q2lM0b0aZ5fs00nb6RJ/oU+b0yePxqKysbPSmEPztb3/T/Pnzh3NqnN/v10cffaRjjjnmgOfm5ubq8MMPlyTNmzdPGzdu1P333x+f99rY2JgQYJubmweMyvbncrnkcrkGtNvtdtntidet9T2Zyc5NZjTaB3vMsW6nT/SJPmVGn3JzHPE2p8OWEX0aq3b6RJ/ok3X6NNj5Se9jOCctXLhQn/70p/WnP/3pgOc2NTXp+9//vg477DD9/ve/H3Yh/RljFAwGdeihh6qqqkpr1qyJHwuFQlq3bp1OPfXUEd03AFido9/KAw5WIQCQhYY1Art582bdcsstOuusszR16lSdfvrpOuGEEzRlyhTl5eWpvb1dH374oV577TW9/vrrKisr07Jly/SVr3zlgPf9ne98R+ecc45qamrU3d2tX/ziF1q7dq1efPFF2Ww23XTTTVq+fLlmzZqlWbNmafny5crPz9ell1560J0HACvK6TdK4UxhxAIAMsWwAuzMmTP17LPP6t1339VPfvITvfDCC/rlL3+ZcI7b7dYpp5yihx9+WJdeemnSX+En09TUpMsvv1wNDQ0qKSnRcccdpxdffFFnnnmmJGnJkiXy+/267rrr1NHRofnz52v16tXxi7EAINs4HftGXZ2MwALIQiO+iKulpUX19fXy+/2qqKhQbW2tcnJyRru+UcE6sAAyyc62Hi38/lpJ0p+/uVCHTS5Mb0EAMArGdB3YPpMnT9bkyZNHenMAwAj1n0LAHFgA2YjJUwBgMbZ+n9zMgQWQjfjkAwCL6T/qygAsgGxEgAUAi+kfWhmABZCN+OgDAIux22xJvwaAbEGABQCLIcACyHYHFWC3bdumV155RT09PaNVDwAAADCkEQXYJ598UocccoiOPvponX766dq2bZsk6fOf/7weeeSRUS0QAAAA6C/lAPurX/1KV155pU444QQ9+OCD6r8PwgknnKBnnnlmVAsEAAAA+ks5wK5YsUJXXXWVfvvb3+orX/lKwrGjjjpKW7ZsGbXiAAADGZmkXwNAtkg5wL777ru6+OKLkx6bNGmS2traDrooAMDg+m8AHiO/AshCKQfY/Px8eTyepMf27NmjsrKygy4KADC4WL8EGyXBAshCKQfYBQsWDJj72ueJJ57QokWLRqMuAMAgEkIr+RVAFnKmeoPvfve7Ou2003TyySfr0ksvlc1m069//WvdfvvtWr9+vV5//fWxqBMAsFcstu9rRmABZKOUR2DnzZunP/zhD/J6vfrmN78pY4yWL1+u9957Ty+88IJmz549FnUCAPbqH1ojBFgAWSjlEVhJWrx4sd599119+OGHampqUkVFhT72sY+Ndm0AgCQiBFgAWW5EAbbPzJkzNXPmzNGqBQAwDAkBNhob4kwAyEwpTyH43ve+pxtvvDHpsRtvvFH33HPPQRcFABhc/9AaZgQWQBZKOcCuWrVq0Hmuc+bM0apVqw66KADA4ML9ruKKxhiBBZB9Ug6wO3fuHHS+6+GHH64dO3YcbE0AgCGEIybp1wCQLVIOsDk5OWpubk56rKmpSTab7aCLAgAMLpwwhYARWADZZ0TLaD3yyCNJjz3yyCOaN2/eQRcFABhc/wAbihBgAWSflFchuOWWW3Tuuedq0aJFuu666zRt2jTt3r1b//3f/63169frhRdeGIs6AQB7hfqPwLIKAYAslHKA/eQnP6mf/vSn+uY3v6mLL75YNptNxhiVlJTokUce0dlnnz0WdQIA9opEWUYLQHYb0TqwX/7yl3XxxRdrw4YNamlp0eTJk3XqqaeqoKBgtOsDAPRjjFG437SBWKw3xDodKc8IAwDLGvFGBgUFBTrzzDNHsxYAwAGEkoy4hgiwALLMiAKsMUYbN27Uzp075ff7Bxz/0pe+dNCFAQAGCkcHLpsVjhgpNw3FAECapBxg33vvPZ1//vl6//33ZczAD1KbzUaABYAxkmzVgWA0Kiln/IsBgDRJOcBef/31CgQC+uUvf6njjjtOLpdrLOoCACSRbNWBZKOyAJDJUg6wr7/+uh555BFddNFFY1EPAGAIyUZgWQsWQLZJedZ/YWGhiouLx6IWAMABBAmwAJB6gL3qqqv01FNPjUUtAIADSD6FgAALILukPIVg9uzZevrpp3X++efrvPPOU3l5+YBzLrzwwlEpDgCQKOlFXIzAAsgyKQfYSy+9VJK0fft2/f73vx9w3GazKRqNHnxlAIABGIEFgBEE2L/85S9jUQcAYBi4iAsARhBgFy5cOBZ1AACGITjICKwxRjabLQ0VAcD4Y+9BALCIaMwommTNV2OSbzELAJlqRFvJvv/++3r44Yf17rvvDthK1maz6aWXXhqV4gAA+ww11zUcNXKN6BMdAKwn5Y+7f/7zn/r4xz+uadOm6YMPPtBxxx2n1tZW7dmzRzU1NZo5c+ZY1AkAWW+o1QZCkZjExogAskTKUwi+853v6Oyzz9bmzZtljNFjjz2muro6/e53v1MgENCdd945FnUCQNYb6mItLuQCkE1SDrBvvfWWrrjiCtntvTeNxXo/NM8991zdcsst+v/+v/9vdCsEAEgaep4rARZANkk5wHZ0dGjSpEmy2+3KyclRR0dH/Ni8efP01ltvjWqBAIBe4aFGYLmIC0AWSTnATps2Ta2trZKkww8/XOvXr48f+/vf/67CwsLRqw4AEMcILAD0SvkirtNOO00bNmzQBRdcoMsuu0y33367GhoalJubqyeeeEJf/OIXx6JOAMh6Q86BZQQWQBZJOcDedtttqq+vlyR9+9vfVmNjo37+85/LZrPp85//vL7//e+PepEAgKFDKtvJAsgmKQfYmTNnxpfKcjgceuCBB/TAAw+MemEAgERDjcAONT8WADJNynNgr776am3fvj3psZ07d+rqq68+6KIAAAMNNcqabItZAMhUKQfYJ554Qi0tLUmPtba2atWqVQddFABgoKECbDRqFIsN3GYWADJRygF2KO3t7XK52AoGAEZbOBpT7ACDrFzIBSBbDGsO7Pr167V27dr4vx999FG9+OKLCef4/X4999xzOvroo0e1QADA8C7SCkVjystxjEM1AJBewwqwf/nLX7Rs2TJJks1m06OPPpr0vNraWv34xz8eveoAAJKkcOTA0wO4kAtAthhWgF2yZIluuOEGGWM0ZcoU/fGPf9QJJ5yQcI7L5WITAwAYI8Fo9IDnMIUAQLYYVoB1u91yu92SpO3bt6u6ulo5OTljWhgAYJ/h7LTFblwAskXKF3FVVlbK7/cntD3zzDO69dZb9ac//WnUCgMA7BMcRjgdzjkAkAlSDrCXX365/s//+T/xfz/wwAO6+OKLtXLlSp199tl64YUXRrVAAAAjsADQX8oB9vXXX9cnP/nJ+L8feOABffGLX1RnZ6cuvPBC3XPPPaNaIABgeOGUEVgA2SLlANvS0qJp06ZJ6p0P+9FHH+nGG29UcXGxvvzlL+uf//znqBcJANnOHz7wRVyBYZwDAJkg5QCbn58vj8cjSfrrX/+qwsJCzZs3T5KUl5cnr9c7uhUCAIYdYI1hNy4AmW9YqxD0d+yxx+rHP/6xamtr9dBDD2nx4sWy2WySpF27dqmqqmrUiwSAbBaKxBSNHjiYGiMFwjG5c9nMAEBmSznA/ud//qf+7d/+TXPnzlVubm7CygPPP//8gPVhAQAHZzijr/3PJcACyHQpB9gzzjhD7777rt58803NnTtXhx12WMKxuXPnjmZ9AJD1eoKRlM6dVJA7htUAQPqlHGCl3i1ja2trB7Rfe+21B10QACBRd2D4AbYrEB7DSgBgYkj5Ii4AwPhKJZR2+YcfdgHAqoYVYB0Oh15//fXeG9jtcjgcg/5xOkc0qAsASMIYI28KI7C+UETRGCsRAMhsw0qb3/3ud3XIIYfEv+5bdQAAMLa6g6kFUmOkLn9YZcyDBZDBhhVgb7/99vjXS5cuHataAAD7afOGUr9NT5AACyCjMQcWACawNm8w5du0jiD0AoCVpDRhtaWlRQ8//LDWr1+v+vp6SVJ1dbUWL16sr3zlKyovLx+TIgEgG4WjMXn8qa8q4A1EFAhHlZfDerAAMtOwA+xLL72kz372s+rq6pLD4VBFRYWMMdq2bZv+9Kc/6Z577tGzzz6r008/fSzrBYCs0eYNaaQ7w7Z6gzqkLH90CwKACWJYUwhaWlr0hS98QSUlJXrmmWfk8XjU0NCgxsZGeTwe/eIXv1BBQYEuuugitbW1pVTAihUrdNJJJ6moqEhTpkzRBRdcoG3btiWcY4zR0qVLVV1dLbfbrUWLFmnz5s0pPQ4AWE29xz/i2zZ6AqNYCQBMLMMKsI899pii0aheeeUVXXTRRcrP3/e/+vz8fH3+85/Xyy+/rHA4rMceeyylAtatW6frr79er732mtasWaNIJKKzzjpLPT098XNWrlype++9Vw8++KA2btyoqqoqnXnmmeru7k7psQDAKgLhqNoPYi5rpy+c0g5eAGAlwwqwq1ev1tVXXx1fSiuZ6dOn66qrrtKLL76YUgEvvviirrzySh1zzDGaM2eOHn/8ce3atUtvvvmmpN7R1/vuu0+33XabLrzwQs2ePVurVq2Sz+fTU089ldJjAYBV1HeOfPR1NO8DACaiYc2Bfffdd3XjjTce8LxPfOITevrppw+qII/HI0maNGmSJGn79u1qbGzUWWedFT/H5XJp4cKF2rBhQ9Lta4PBoILBfVfudnV1SZJisZhisZgkyWazyWazyRgj02+SWV9733mj3W632wc85mi10yf6RJ8yo0+xWEx7Onwy/Y7Z9tYoY2RM4m362vedLNlsdtV3+nVoeb7sdlva+5SJrxN9ok/0aXT7tH/7UIYVYDs7OzVlypQDnjdlyhR1dnYO+8H3Z4zRzTffrNNOO02zZ8+WJDU2NkqSKisrE86trKzUzp07k97PihUrtGzZsgHtdXV1KioqkiQVFhaqoqJCbW1t8nq98XNKS0tVWlqqlpYW+f37Ri/Ky8tVVFSkhoYGhcP7rgqurKyU2+1WXV1dwotdXV0tp9OpXbt2JdQwffp0RSKR+CoOUu8LWltbq0AgoKampnh7Tk6Opk2bJq/XmzC32O12q7KyUh6PJ+H5pk/0iT5lRp/qO7xqrt+9r9FmV8nkqYqEg/J1tikYSfyQDwd88nfvq92Zm6eC0nJ1d3n09tYOTS50pb1Pmfg60Sf6RJ9Gt091dXUaLpvZP5InYbfb9dprr+nkk08e8ry//e1vOvXUUxWNRoddQH/XX3+9nn/+eb388svx6QobNmzQggULVF9fr6lTp8bPveaaa1RXV5d0ykKyEdiamhp1dHSouLhYUvr/l5GJ/3OiT/SJPo1On179sFXe/ZbP6j8CG4xEdcMv3pEk/fiS45XrtCcdgTXGyJ1j1ykzy+OPx+tEn+gTfZqoffJ4PCorK5PH44nntcEMexmtbdu2yekc+vStW7cO9+4GuPHGG/Xb3/5W69evT5hrW1VVJal3JLZ/gG1ubh4wKtvH5XLJ5XINaLfb7bLbE6f99j2Zyc5NZjTaB3vMsW6nT/SJPk38PrV0B9UTjMo2SF9ls8lmM0nbk50fiBi1eMOqKslLaOd1ok/0iT5NtD4Ndn4yww6wV1555QHPMcYk7fCBbnPjjTfq2Wef1dq1a3XooYcmHD/00ENVVVWlNWvW6Pjjj5ckhUIhrVu3Tt/73vdSeiwAmOi2t/Yc+KQR3GdlsSvlz2cAmKiGFWAff/zxMSvg+uuv11NPPaXnnntORUVF8TmvJSUlcrvdstlsuummm7R8+XLNmjVLs2bN0vLly5Wfn69LL710zOoCgPHW3B1Q1wh23jqQnmBEDZ6Aqkvdo37fAJAOwwqwV1xxxZgV8JOf/ESStGjRooT2xx9/PD7qu2TJEvn9fl133XXq6OjQ/PnztXr16vgFWQBgdbGY0ftN3gOfOEIftng1pcglp2P4v6IDgIlq2FMIxsowriGTzWbT0qVLtXTp0rEvCADSYGe7T/7QyC6AHY5gOKYdbT06fAr/8QdgffxXHADSLBCOascYzH3d3652n3whducCYH0EWABIsw+avYrGDvzbqIMVi0nbGtmCG4D1EWABII2auwNq9ATG7fHavCE1eNhiFoC1EWABIE1CkZi2Noz/iOi2xm4FwmM33xYAxhoBFgDS5L2mboX22xZ2PESihqkEACyNAAsAaTDeUwf219IdZCoBAMsiwALAOAuEo9pS35XuMrS1sZtVCQBYEgEWAMaRMUab6z2KRMd+1YEDiUaN/rmnS7FxWAEBAEYTARYAxtH21h519Iz+drEj1eUP68OWsdsBDADGAgEWAMZJpy+k7eOwYUGqdrb51OoNprsMABg2AiwAjINgJKp/7PFoGLtnp8Xm+i6W1gJgGQRYABhjxhj9c49HwfD4L5k1XOFITH/f7WE+LABLIMACwBj7oNk7oea9DqbLH9a2JtaHBTDxEWABYAw1dwW0s82X7jKGbU+HX/WdrA8LYGIjwALAGOkJRrS5If3rvaZqa2OXugITf8QYQPYiwALAGAhHY3qnrlPRCbDea6piMenvdZ60bHMLAMNBgAWAUda7WUGXfCHrXtUfCEf1jz2dXNQFYEIiwALAKPuwpUet3dZfV7WjJ6wP2OQAwAREgAWAUdTcFdCOCbhZwUjtavNxUReACYcACwCjpDsQ1uZ66120dSBbG7vU6QuluwwAiCPAAsAoCEaieqfOo2gGzhmNxaS/7/awUxeACYMACwAHKRYz+keGB7xQZO+qChkY0AFYDwEWAA7S1sZudfoyf93U7kBEW+q7ZAwhFkB6EWAB4CDsaO3JqoucmroC+rAlcy5SA2BNBFgAGKGmroA+aM6+ZaZ2tPZoTxaFdgATDwEWAEag0xfS5npPustIm60NXWrzWn+tWwDWRIAFgBT5QhG9s9ujWBbvtGqM9Pc9HnUHMn/uL4CJhwALACkIhKN6a2enwpEsTq97RaNGb+/qlC8USXcpALIMARYAhqk3vHZk9HJZqQpFYnprZ6f8IZ4TAOOHAAsAwxCKxPTWrg75CGoDBMJRvbWLYA9g/BBgAeAAwtG94TVIQBuMP9QbYoMRniMAY48ACwBDCISjenNnh7wB5nkeiC8Y1Zs7OphOAGDMEWABYBDdgbA27mgnvKbAF4pq4452efysTgBg7BBgASCJ9p6Q3tjZoWCY1QZS1XthV4daulknFsDYIMACwH4aPH5tqutQNGrSXYplRWNGf9/dqd0dvnSXAiADOdNdAABMFLGY0UetXu1oJXSNBmOkrQ3d6glGNWtKoex2W7pLApAhCLAAoN7dtf65p0tdzN0cdXXtPnX4Qjp2WokKXPzYAXDwmEIAIOs1ePz62/Z2wusY8gYien17O1MKAIwK/isMIGtFojFtbexWoyeQ7lKyQjRmtLWhW+09IR01tVg5DsZQAIwMARZAVmrvCendhi7WLE2D5q6gPP42HTW1WBWFrnSXA8CCCLAAskogHNUHzV5GXdMsGI5p065OTS5y6YiqIuXlONJdEgALIcACyAqxmNHuDr8+bPWyPNYE0tIdVHtPSDMqClQ7KZ+VCgAMCwEWQMbr9IW0tbGbHbUmqGjM6MNmrxo8fh1RWaRyphUAOAACLICMxXQBa/EFo3p7V6cqi/M0q7KQaQUABkWABZBxwtGYdrT2qK7Dpxg7wVpOU1dALd6AppXma0ZFvlxOgiyARARYABkjEo2prsOvHW09zHO1uFisdwOE+k6/aiblq7Y8n2W3AMQRYAFYXixmtKfTr+2tPQpFGHLNJNGY0Y7WHu3u8OnQigIdUpYvBxd6AVmPAAvAsowxavAE9FFLjwJh1nPNZJGo0ftNXu1q7w2y1SVuViwAshgBFoDlxGJGjV0B7WjtkY+NCLJKMBzT1oZu7WzzqbY8nyALZCkCLADLiMWM6j1+7Wj1MeKa5fyhqLY2dGt7a49mlBeoutTN1AIgixBgAUx40ZjRng6/drb3KBhmjiv2CYZj2tbYG2Rry/M1rdQtJxd7ARmPAAtgwopEY9rd4deudh8XZ2FIoUhM7zd59wbZAh1S5mbVAiCDEWABTDihSEy7O3za1e5ThOWwkIJItHdXrx1tPaopy1fNJDfryAIZiAALYMIIhKPa1e7Tng6/ojGCK0YuGu1dfmtXe4+qS92qnVQgdy5BFsgUBFgAadcTjGhHW48aPQEZcitGUSwm7W73a0+HX5XFeaotz1dRXk66ywJwkAiwANLG4wtrR1uPWrqD6S4FGc4YqdETUKMnoPLCXB1aUaDS/Nx0lwVghAiwAMZdmzeoHW0+dfSE0l0KslCbN6Q2b0il+TmaXp6vyYUu2WwswQVYCQEWwLgwxqipK6gdbT3yBiLpLgdQpy+sTp9HBS6nasvzVVWcx6YIgEUQYAGMqWjMqL7Tr51tbD6AiaknGNGW+i592OLV9EmsJQtYAQEWwJgIRWKq6/Bpd4dfYdZwhQUEw/vWkj2EJbiACY0AC2BU+UO9S2HVd7IUFqwp0m8JrqklbtWW5ys/lx+XwETCdySAUeHxh7WrzafmbpbCQmaIxaQ9Hb1LcE0ucqm2PJ+VC4AJggALYMSMMWr1hrSrvUcdPeF0lwOMmZbuoFq6gyrJz1EtKxcAaUeABZCyWMyooSugnW098gW5MAvZw+ML6+8+j/JzHaqZlK/qUrccrFwAjDsCLIBhC0dj2t3hV127TyEuzEIW84Wi2tbYrY9ae3RImVs1ZfnKdbJyATBeCLAADsgbjKiu3adGT4ALs4B+wpGYtrf0aGdbjyqL8zR9ElvVAuOBAAsgqb75rXUdPrV72TELGEosJjV0BtTQGVBZQY5qyvI1uYh5ssBYIcACSBCJxlTfGdDuDp98Iea3Aqnq6Amro8ejvByHaia5VV3qVg4bIwCjigALQJLkC0VU1+5XvcevaJRpAsDBCoSjer/Jq49aelRVkqeaSfkqdPFjFxgNfCcBWSwWM2rtCWpPh19tTBMAxkQ0ZuLryZYV5OqQMrcmF7pkZ/UCYMTS/juN9evX67zzzlN1dbVsNpt+85vfJBw3xmjp0qWqrq6W2+3WokWLtHnz5vQUC2QIfyiqD5q9evmDVv29zkN4BcZJR09I/9jt0V8/aNX7Td3yhSLpLgmwpLQH2J6eHs2ZM0cPPvhg0uMrV67UvffeqwcffFAbN25UVVWVzjzzTHV3d49zpYC1xWJGTV0BvbWrQ6980KodrT0shQWkSTgS0842nzZ80KY3d7ar0RNQjBU+gGFL+xSCc845R+ecc07SY8YY3Xfffbrtttt04YUXSpJWrVqlyspKPfXUU7r22mvHs1TAknyhiOo7/drTGVCYwApMOH0XfTkdNlWX9l70xVxZYGgT+jtk+/btamxs1FlnnRVvc7lcWrhwoTZs2DBogA0GgwoGg/F/d3V1SZJisZhisd4f4DabTTabTcYYmX4bt/e195032u12u33AY45WO32iT33t0ZhRo8evBk9AnT290wNse2vRfjUmbbdJNlsq7fv6lLw9JvV/2AO179enwdqztU/GJN4mE/p04Nozv0/hmLSzxaudrT0qK8hVVUmeJhfmxlcw4HOPPmV6n/ZvH8qEDrCNjY2SpMrKyoT2yspK7dy5c9DbrVixQsuWLRvQXldXp6KiIklSYWGhKioq1NbWJq/XGz+ntLRUpaWlamlpkd/vj7eXl5erqKhIDQ0NCof37fleWVkpt9uturq6hBe7urpaTqdTu3btSqhh+vTpikQiqq+vj7fZbDbV1tYqEAioqakp3p6Tk6Np06bJ6/Wqra0t3u52u1VZWSmPx6POzs54O33K7j7FYkaeQFhyT1K7P6zO5oaEPhVXTFUsFpW3vXlfo82ukslTFQkH5evcV7vdmaOiSVMUDvjk795XuzM3TwWl5Qr6uhXs2TeNJ8ddoPyiUvm9HoX9PfF2V0GR8gqK5fN0KBIK7HtuikqV6y6Qt6NVsci+PuWXlisnN09dbU1Sv5BWOGmK7HaHulrpk6+zTcH9RtIzoU99Mul1Opg+2Wylqm9qUSTYoxJ3ribl56p26mRNmlTG5x59ytg+1dXVabhsZv9InkY2m03PPvusLrjgAknShg0btGDBAtXX12vq1Knx86655hrV1dXpxRdfTHo/yUZga2pq1NHRoeLi4vhj8T8n+pQJfWr3BtTgCai5K6BI1DAKlgV9CkaiuuEX70iSfnzJ8b1bmFq8TweunT45nXZVFrtVWZSr0vwc2Wy2vadn3+cefcrMPnk8HpWVlcnj8cTz2mAm9AhsVVWVpN6R2P4Btrm5ecCobH8ul0sul2tAu91ul92eeN1a35OZ7NxkRqN9sMcc63b6lDl98gYjavQE1NQVkD++2YBNtn7L8tgG6ZMGqWVs2+1SkhWDBm0f5DmgT7a94cakdP7w23mdJnKfojGpvtOv+k6/XDl2TS3JU2VxXnzr2kz/3BtpO32yTp8GOz+ZCR1gDz30UFVVVWnNmjU6/vjjJUmhUEjr1q3T9773vTRXB4yvQDiqpq6AGj0BdQdYegfIZsFwTDtafdrR6lOBy6mpJXmaUuxSfu6E/rEOjJq0v9O9Xq8++OCD+L+3b9+uTZs2adKkSZo+fbpuuukmLV++XLNmzdKsWbO0fPly5efn69JLL01j1cD48AYjaukOqrmL0AoguZ5gRB80e/VBs1eFeU5NLnJpSpErPjILZKK0B9g33nhDixcvjv/75ptvliRdccUVeuKJJ7RkyRL5/X5dd9116ujo0Pz587V69er4xVhApvH4w2rpDqi5KyhffHoAAByYNxCRNxDR9pYeuXMdmlLk0pSiPBW7nUl/JQxY1YS6iGusdHV1qaSkZFiTgoHxZoxRpy+s5u6gmrsDCoZZqxVDC4ajuv7ptyX1XsTlynGkuSJMdK4cuyYXuTS50KWy/Fy2scWElEpeS/sILJCNYjGjtp6QWrqDavEG2WAAwJgKhmPa3e7X7na/nA6bKgpdmlLsUnmBSw7CLCyIAAuME38oqlZvUG09IXX0hBRl20gAaRCJGjV6ei8Itdul0vxcVRS4VFGUy0VgsAzeqcAYicWMOnwhtfWE1OoNyhdkPiuAiSUWk9q9IbV7Q3qvScrPdai80KXywlyV5ecyOosJiwALjKJAuHeUtdXLKCsA6/GFovK1+1TX7pPdLpXl56qi0KWKQpfcucy1xsRBgAUOQixm1OkPq21vaO0JstQVgMwQi0lt3pDavCFtU7fycx2qKHKpvCCXC8GQdgRYIEXeYKT3V26+kDp8IUWjjLICyHy+UFS72nza1eaTw25TaX6OJhXkalJBrgpdLNOF8UWABQ4gEI6qvScU/xNixQAAWS4aM/HRWUnKcdo1KT9XkwpzNSk/l+kGGHMEWGA/4WhMHT29I6zt3hCbCQDAAYQjMTV1BdTUFZDUezFY2d7R2bL8XOU6h7/HPTAcBFhkvb55rH0jrN2BsDJ/ew8AGDu+UFS+kF97OvySpKI8Z3y6QSmrG2AUEGCRdWIxo+5AJD6HtdMXUoxZAQAwZroDEXUHItrZ1ru6QYk7R2X5vYG2OC+HC8KQMgIsMl5fYO3w9U4L8PjCLG8FAGkSi0kdPWF19IT1UUuPHHabit05e6cb5BBoMSwEWGQcY4y6/L2BtcMXUqc/zEoBADBBRWNGHXt3KJQkh92mkvzeEVoCLQZDgIXlGWPUFYio09c7h5XACgDWFY2Z+O5gUmKgnZSfq6I8J4EWBFhYT//A2uELsxYrAGSw/oH2Q+0LtJPye1c4INBmJwIsJjxGWAEAfQYboSXQZhcCLCYc5rACAIZrqCkHzKHNXARYpF3/VQIIrACAg0GgzQ4EWIy7/ddhZVkrAMBYSRZoWbbL+giwGHPGGHUHI73bs/aE1ElgBQCkyWDLdk3Kz1VZQa6K85yy2Qi0Ex0BFmPC2y+wdvhCijAlAAAwAQ0YoXXY4kt2lRXkqNBFoJ2ICLAYFb5QpHdJq72hNRRhb1YAgPVEo0at3UG1dgclSTlOu8ry9219W+AiOk0EvAoYkUA42rs1a09IHT1hBcLRdJcEAMCoC0diau4KqrmrN9C6cuy9F4QV9I7SunMdaa4wOxFgMSzRmFGHL6Q2b0ht3qB8IQIrACD7BMMxNXoCavQEJEnuXIfKC3tHZyfl58rpsKe5wuxAgMWgugNhtfeE1OoNyeMPKcasAAAAEvhDUe1u92t3u192u1TizlF5gUuTCnNVxPzZMUOARVw4GtsbWINq7wkpGCaxAgAwXLGY1NETVkdPWGqWcp12TSrIVUWhS5MKcpXrZHR2tBBgs1jfjletPb2BtcsflmGxAAAARkUokjjdoCjPqfJClyoKc1l/9iARYLNMOBpTmzeklu6g2nqCLG8FAMA46Q5E1B2IaEdrjxwOm8oLcjW5yKWKQpdymDubEgJsFghGomrpDqqlO6gOH3NZAQBIt2jUxFc3sNmksoJcTS50aXKRS3k5rGxwIATYDOUPRdXcHVBLd1CdvnC6ywEAAIMwRvHNFLY1dqskPyceZll3NjmelQzSHQiree9IqzcQSXc5AABgBDy+sDy+sD5o9irf5dCUojxNLnKpxJ2T7tImDAKsxXUFwmr09I60+lmb1dKCbAaBYQpGokm/Bg7Exa+mLccXjGpHsEc7WnuUl+PQ5CKXqorzVJKf3WHWZkzmX3fe1dWlkpISeTweFRcXp7ucgxaMRNXkCare42ekNYP8+5NvpLsEABnu0S/NS3cJGCX5LoeqS9yqKsnLmDmzqeQ1RmAtIhYzau0JqqEzoFZvkOWuAADIYr5gVB80e/Vhi1eTCnJVXerW5EJX1izNRYCd4LoDYTV4AmrwBBSOsHxAJvvxJcenuwRYRDAS1c2/+rsk6d7PHSeXMzNGXwCkzhjt3eY9JKfDpqqSPE0tcWf8fFkC7AQUjvYufLynkykC2YS5aRgJl9PBeweAJCkSNfFtbQtcTlWX9obZTNwBjAA7gQQjUdW1+1TX4VeUDQYAAMAI9QQjer/Jq49aejStzK3pk/IzZq6sRICdEALhqHa1+7Snw69ojOAKAABGRzRmtKvNp90dPlWXujWjvCAjgiwBNo38oah2tPWoweNndywAADBmYjFpd7tfezr8qirJ06EVBcrPtW4MtG7lFuYLRbS9tUeNngCrCQAAgHFjjNTQGVCjJ6DK4jzNqChQoQV3+7JexRZmjNH21h5tb+0huAIAgLQxRmr09AbZGRX5mjm5UDabdZbgIsCOk2Akqs31XWr3htJdCgAAQNyOVp86fWHNnlZimfmxmbeuwgTU0RPS69vbCa8AAGBC6vSF9bft7WrzBtNdyrAQYMeQMUY7Wnv01q4OBcNcpQUAACaucCSmt3d16sMWr8wEn+tIgB1DH7Z49UGzl/muAADAMra39GhbU3e6yxgSAXYMNXqsMQwPAADQX1NXcEKPwhJgx0h3IKxAOJruMgAAAFIWjsTk8YfTXcagCLBjpJULtgAAgIW1TuALugiwY6QnGEl3CQAAACPWE5y4v0kmwI6Ro6YWq6LIle4yAAAAUlZWkKtjqovTXcagCLBjxGG36bhpJZpampfuUgAAAIatsjhPx9eUyumYuDFx4laWAex2m46pLtGMivx0lwIAAHBAh0xya/a0YtntE3tbWbaSHQeHTylSrsOhD1u8isYm7pIUAAAgO9nt0qEVhTq0oiDdpQwLAXacTC/P17Qyt1q6g2rqCqitJ6gYm3MBAIA0sdmkSQW5qirJ0+RC14SeMrA/Auw4cthtqirJU1VJnsLRmFq6g2rsCqijJ8RuXQAAYFyUFeSqstilKUV5ynVaJ7T2R4BNkxyHXdWlblWXuhWMRNXc1Tsy2+mbuIsGAwAAayrJz1FlUZ6mFLuUl+NIdzkHjQA7AbicDtVMylfNpHwFwlE1dQXU6AmoO8BasgAAYGQK85yqKs5TZXGe3LnWD639EWAnmLwch2rLC1RbXqBAOKruQERdgXDv3/6wQhEmzgIAgEQ5TruK85wqystRsdup4rycjBhpHQwBdgLLy3EoL8ehyf02RAiEo+oKhNXl3xdsw4RaAACyhtNhU7E7R8V5vUG12J3ZYTUZAqzF9IXaKUX72vyhqLoDYXUFwvL4I+oOhBWJclUYAABW53DYEoJqUZ5T+bnEN56BDODOdcid69CU4t5dv4wx8oej6tobZrsCYXUFIooSagEAmLAcdpuK8px7R1f7wqpDNtvE3lQgHQiwGchmsyk/t/d/aFUl+0KtLxSVNxiRLxRVTzAifzgqXyjKFAQAAMaR02FTgcspd45D+bkO5ec6VZjnVAFhddgIsFnCZuv9ZilwDXzJw9GYfKGo/KGoekIR+UO9wdYXijAVAQCAEXA4bMrPcfQG1dy9QTXHqXyXQzkW2jBgoiLAQjkOu0rcdpW4cwYcC0Vi8oUiewNtYshlW1wAQDZz2G37wmmuc+/fvdP6XM7suqhqvBFgMaRcp125zlyV5g88Fgj3BlpfOCp/KKKe4N6QG46wTS4AICPY7b0XUBfsDajufmE12678n0gIsBixvhURyvZrN8YoGInF59oGwlH5w1EFwjEFwlHWsgUATCi5Tvven2m9f/efm5qXY2de6gREgMWos9ls8XA7qSB3wPFYzCgQ6R29DUR6Q22gX8ANRqKM4AIARoXNpng4dTl7R1DzchzKi4dWhxx2AqrVEGAx7uz2faskJNM3ghsMxxSIRAeM4AbCUS4uAwBI6r1YKi8eTO3KczoSRlNdTkZQMxEBFhNO/xHcEg28sEzqXTlh/1HbQDi2N+hGFQwzhAsAmcC1N4j2BtN9o6Z9X3NFf3YiwMKSchx25TjsKspLfjwW6x3F3Td6uzfsRvYFXFZRAID0cthtcjntcu0NpO54ON03mmrn1/tIwjIB9qGHHtL3v/99NTQ06JhjjtF9992nT3ziE+kuCxOUfe/SJu7cgReZ9QlHY/GQG/97b8jt+5vdywBgZBx2W3z01OVM/jejpxgpSwTYX/7yl7rpppv00EMPacGCBXr44Yd1zjnnaMuWLZo+fXq6y4NF9Y3iFibZ3KFPJBpTIBJTMBzd93c4Fp+yEIwwHxdA9umbd+raO0qaLKgSTjGWbMaYCf/Td/78+TrhhBP0k5/8JN521FFH6YILLtCKFSsOePuuri6VlJTI4/GouLh4LEtFFookG8nd7+/hhNxgODoO1SITBCNR3fyrv0uS7v3ccSyYjmFzDWPdUqfDJpdz31X7eTl7f8Xv3Pe3k3CKMZBKXpvwI7ChUEhvvvmmbr311oT2s846Sxs2bEh6m2AwqGAwGP93V1eXJCkWiym2d30mm80mm80mY4z6Z/i+9th+6ziNVrvdbh/wmKPVTp/S0ye7TSpw9S5qPdj5vSG3b9Q2plDUyB+KxFdVCEZiuv7ptwWkqi/IAsPx+BUnKi/Xqbwch3IdtvhoqctpV74rR7kO24AlpZJ97sVisYz7LE+1nT6Nfp/2bx/KhA+wra2tikajqqysTGivrKxUY2Nj0tusWLFCy5YtG9BeV1enoqIiSVJhYaEqKirU1tYmr9cbP6e0tFSlpaVqaWmR3++Pt5eXl6uoqEgNDQ0Kh8MJdbjdbtXV1SW82NXV1XI6ndq1a1dCDdOnT1ckElF9fX28zWazqba2VoFAQE1NTfH2nJwcTZs2TV6vV21tbfF2t9utyspKeTwedXZ2xtvpk3X6NK2iQq2trfKGvL3fhRP+OxFAJjjUHUj83AtLEfX+Kd/7ubdrN5/l9Ck9faqrq9NwTfgpBPX19Zo2bZo2bNigU045Jd5+11136Wc/+5m2bt064DbJRmBramrU0dERH5JO9/8yMvF/TvTp4PrkD0czrk+Z+DrRJ/pk5T7l5zozrk9DtdMna/XJ4/GorKwsM6YQVFRUyOFwDBhtbW5uHjAq28flcsnlcg1ot9vtstsT5+30PZnJzk1mNNoHe8yxbqdPE7tPBS7mlAEYPxPhc2+oWkarnT5Zp0+DnZ/0PoZ9Zprk5ubqxBNP1Jo1axLa16xZo1NPPTVNVQEAACBdJvwIrCTdfPPNuvzyyzVv3jydcsop+ulPf6pdu3bpq1/9arpLAwAAwDizRID9whe+oLa2Nt1xxx1qaGjQ7Nmz9cILL6i2tjbdpQEAAGCcTfiLuEYD68ACAABMbKnktQk/BxYAAADojwALAAAASyHAAgAAwFIIsAAAALAUAiwAAAAshQALAAAASyHAAgAAwFIIsAAAALAUAiwAAAAshQALAAAASyHAAgAAwFIIsAAAALAUAiwAAAAsxZnuAsaDMUaS1NXVleZKAAAAkExfTuvLbUPJigDb3d0tSaqpqUlzJQAAABhKd3e3SkpKhjzHZoYTcy0uFoupvr5eRUVFstls6S4HAAAA+zHGqLu7W9XV1bLbh57lmhUBFgAAAJmDi7gAAABgKQRYAAAAWAoBFgAAAJZCgAUAAIClEGABAABgKQRYAAAAWAoBFgAAAJby/wPgMpi9RQObRQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data_series = tasks[0].distances\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 6))\n", + "violin_parts = ax.violinplot(\n", + " data_series,\n", + " showmeans=False,\n", + " showmedians=True,\n", + " showextrema=True\n", + ")\n", + "\n", + "ax.set_title('Violin Plot of distance to path', fontsize=16)\n", + "ax.set_ylabel('Distance (m)', fontsize=12)\n", + "\n", + "ax.set_xticks([])\n", + "ax.yaxis.grid(True, linestyle='--', which='major', color='grey', alpha=.25)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ad746acd", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/vy/6zt_lrw14ds4l_2w5nzv86bm0000gn/T/ipykernel_33455/4013545169.py:6: FutureWarning: The behavior of array concatenation with empty entries is deprecated. In a future version, this will no longer exclude empty items when determining the result dtype. To retain the old behavior, exclude the empty entries before the concat operation.\n", + " data_series = pd.concat([data_series, task.distances])\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsEAAAH8CAYAAAAwvXKaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABQoElEQVR4nO3de3hU1b3/8c/kShKSEBKSEAxBEBEEQUEpBAVUQCtSay0qiogUaVWUCiqntgoeBUVFVGrxwhFKRbS/I14RwQsgRgRR7OHqDSGYhMQYJoTcJjPr90eYLUMmkIHJdb9fz8MDWXvt2es7M0k+s1h7b4cxxggAAACwkZDGHgAAAADQ0AjBAAAAsB1CMAAAAGyHEAwAAADbIQQDAADAdgjBAAAAsB1CMAAAAGyHEAwAAADbIQQDAADAdgjBQDP0ww8/yOFwqFOnTkF5vDVr1sjhcGjIkCE1tjkcDjkcjqAcpz4sWrRIDodDN954Y2MP5aStWbNGQ4cOVVxcnPW8//DDDyf9uLW9hp06dQraMQB/hgwZIofDoTVr1jT2UIAaCMFAIxgzZowcDoeuu+66OvWfO3euHA6HzjzzzHoeWeO68cYbrcDm/RMeHq727dtr1KhRevfdd+t9DGvWrNGMGTMa/Jf2tm3bNGLECK1Zs0ZJSUnKzMxUZmamWrVq1aDjOBEzZszQjBkzGnsYTcrrr7+uGTNmaMuWLY09lHqzZcsWzZgxQ6+//npjDwU4IYRgoBHccMMNkqp/UZaUlBy3/7/+9S9J0tixYyVJ4eHh6tatm7p06VJ/gzysW7du6tatW70f50jJyclWCOzdu7cOHTqkt956S7/+9a/1l7/8pV6PvWbNGs2cObPBQ/DChQtVWVmpyZMn6/vvv9f69eu1fv16paam1tsxu3Tpom7duik8PPykHmfmzJmaOXNmkEbVMrz++uuaOXNmiw/BM2fOJASj2SIEA41g2LBhSk1NVWlpqZYvX37Mvjt27NCXX37pM3PcoUMH7dy5Ux988EG9j3Xnzp3auXNnvR/nSJdeeqkVAj///HP99NNPmjZtmiRp9uzZ+vTTTxt0PA3B+xxfeumlDXbMDz74QDt37lSHDh0a7JgA0FQQgoFGEBoaqmuvvVaS9NJLLx2z75IlSyRVr61LT0+v97E1RREREZozZ4769OkjSVq2bFnjDqgelJWVSZKioqIaeSQAYA+EYKCReJc2vP/++9q/f7/fPsYYLV261Ke/dPwT4woLC3X33XerW7duioqKUkJCgoYMGaKXXnpJxpiAxlmXk6o2bNigSy+9VAkJCYqJidH555+vDz/8MKDj1GUcgwYNkiR98803dd5v27ZtGjt2rE455RRFREQoJSVFv/vd77Rhwwa/x/D+t/7MmTN91iYHcuKdy+XS008/rfPOO09xcXGKiYlR79699dBDD6m0tNSnr3cdtHf5xdChQ0/omP/5z3/0m9/8RgkJCWrdurX69+9/3A8LtZ0Yd+jQIT3wwAM666yzFBMTo1atWik9PV1DhgzRww8/LJfLJal6LfCR742j13N7H9ftduuNN97QTTfdpDPPPFPx8fGKjo5W9+7ddffdd+unn37yO74jT6rauXOnfv/73yspKUlRUVHq27evXn311WPWt3r1al155ZVKS0tTZGSk0tLSNHToUP39739XRUVFjf47d+7UTTfdpE6dOikyMlKJiYm67LLLAnove783Fy9eLEkaP368z3Ny9NrpYH6vHnmCq8vl0syZM3X66aerVatW6tChg2699Vb9/PPPfvfdsGGD7r77bvXr10/JycmKjIxUenq6xo4dq23bttXo36lTJ40fP16StHjxYp8a/Z1gK+mEXkOgXhkAjaZnz55GknniiSf8bl+7dq2RZKKioozT6bTad+/ebSSZjIyMGvt88803Jj093UgyERER5pxzzjGdO3c2kowkc8MNNxiPx+Ozz0cffWQkmcGDB9d4PO9+R8vIyDCSzNNPP23Cw8NNYmKi6du3r4mPjzeSTFhYmPnoo48CeTrMuHHjjCQzbtw4v9tvvfVWI8lceumlVtuLL75Y6z5vvPGGiYyMNJJMmzZtTL9+/Uy7du2MJBMSEmKee+45n/6ZmZnWc5eenm4yMzOtPw899FCdaigtLTUXXnih9bx1797dnHXWWSYkJMRIMn369DE//fST1f+hhx4ymZmZJi4uzkgyPXv2DPiYa9euNVFRUUaSiYuLM/369TOpqalGkpkzZ85xX8Pdu3dbbS6Xy/zqV7+ynqNu3bqZfv36mbS0NKuGoqIiY4wxCxcuNJmZmdbjH/l8ZWZmmtzcXGOMMdnZ2dbjtW/f3pxzzjnmjDPOMK1atTKSTKdOnUxeXl6N8Q0ePNhIMo899php3bq1iY2NNX379rVeQ0lmyZIlfp8T73tFkklMTDT9+vUzGRkZVg1H1myMMa+88oqJiIgwkkxsbKzp06eP9Rw6HA7z1FNP1em1yM3NNZmZmSY5OdlIMl27dvV5ThYuXGj1PZHv1WPxfh9fcMEF5rLLLrOO36dPHxMWFmYkmdNOO83s37+/xr5dunSxnquePXua3r17W9/LUVFRNb6Xr7rqKtO1a1cjySQnJ/vUeNttt1n9TuY1BOobIRhoRI888oiRZPr16+d3+8SJE40kc8011/i01xaCPR6P6devnxVojwwW7777romJiTGSzDPPPOOz38mE4PDwcDN79mxTVVVljDGmsrLSXHfddUaS6d+/f12eBsuxQrDH4zF9+vQxkszkyZOt9tpC8I8//mgFyzvuuMNUVFQYY4xxu93moYcessb+1Vdf+ex3//33G0nm/vvvD2jsXlOnTjWSTFpamtm8ebPV/s0335gzzjjDSDKjR4+usZ83LAT6waGkpMSccsopVmg6dOiQMaa6zscff9yEh4cHFIL/3//7f0aS6d27t8nOzvbpn5+fb+bNm2cdw6u2x/c6cOCAWbRokSksLPRpLyoqMrfddpuRZG688cYa+3mfk/DwcHPbbbeZsrIyY0z1e+Gee+6xnmfve89r3rx5RpKJjo42S5YsMW6329pWWFhoHn/8cZOfn2+1ffXVVyYyMtK0atXKPPfccz7933zzTRMXF2dCQ0PNli1baq3xaN738osvvuh3+4l+rx6L9/s4LCzMxMXFmQ8//NDatmfPHtO7d28jyVx11VU19l28eLH57rvvfNpcLpd54YUXTFhYmOncubPP82LMsT+Aep3oawg0BEIw0Ij27dtnzUzt3LnTZ1tFRYVJSEgwksw777zjs622ELx69WojyURGRlqzcEfyzgpmZGT4zDCdTAi+/PLLa2wrKCiwZmB//vnnYz0FPmoLwRUVFWbatGnWWD7++GNrW22/iO+9915r5tWfX//610aSGTt2rE/7yYRgp9NpoqOjjSSzfPnyGts3btxozSx+++23PttONAS/8MILRpLp0KGDqaysrLF91KhRAYXg2bNnG0nmySefrPMYjheCjyc9Pd1ER0cbl8vl0+59Tnr37l0jgFVWVloztV988YXVXlpaahITE40k889//rNOx7/yyiuPWfPTTz9tJJmbbrqpzjUdLwSf6PfqsXi/jyWZuXPn1tj+1VdfWe+/owPvsVx//fVGkvnkk0982gMJwYG8hkBDYU0w0Ig6dOigoUOHSvrlMmheb7/9toqKipScnKzhw4fX6fFWrVolSfr973/v99Jaf/zjHxUZGak9e/Zo165dJzn6an/4wx9qtCUlJVnrlb///vuAH/Pdd9/VoEGDNGjQIPXr109JSUl67LHHJEl//vOfrbXBx+J9Lm677Ta/2++44w6ffsGwfv16lZaWqmPHjvrNb35TY/u5556rAQMGyBij1atXB+WY7733niRpwoQJfi91dssttwT0eN6TL995550a65dP1ocffqg///nPuuyyy3TBBRdYr7HT6VRpaWmta71vuukmhYT4/roKDw9X7969Jfm+xz755BMVFhYqLS2tTtfhrqys1IoVKxQaGlrrGuxRo0ZJktauXVuXMuukPr9XIyIi/H5fnnXWWRo0aJCMMX7f9zt37tT999+vK6+8UkOGDLFeH2/dX331VUDjOFIgryHQUMIaewCA3Y0dO1YffPCBli5dqv/+7/+22r2h+Nprr1VYWN2+Vb/++mtJUo8ePfxuj42NVXp6ur799lt9/fXXOuOMM05y9Kr1WsXJycnatWtXna6DfLT8/Hzl5+dLqr6SRtu2bTVo0CDdfPPNuuKKK+r0GMd7Lrw3Htm/f7+Ki4sVFxcX8DhrO+YZZ5xR6132zjzzTH366adW32Ads3v37n6319ZemyuuuEKdOnXSqlWrlJaWpksuuUTnn3++hgwZcsI3a6msrNTVV1993OvJ1nbS1rHeY5J83mM7duyQJJ133nk1Qpc/X3/9tcrLyxUREaFf//rXfvuYwyeo/fjjj8d9vLqqz+/VU045RbGxsX63de/eXevXr6/x/ps9e7b++te/yuPx1Pq4tb0+dRHIawg0FGaCgUb2u9/9TtHR0fr++++VlZUlSTpw4IBWrFghyfeqEMfj/UXi/cXiT0pKiiTp4MGDJzpkHzExMX7bvQHEGyACMW7cOJnq5VqqqqpSfn6+VqxYUecALB3/ufA+D1LwnovGeP69x2zXrt0xj1dXMTEx+vjjjzV+/Hh5PB698soruu2229SzZ0+deeaZevvttwMe48MPP6zXX39dqamp+uc//6kffvhB5eXl1mucmZkpSdZVJ/yNyR9/77Hi4mJJUps2beo0NqfTKak6qH/yySd+/3i/L8vLy+v0mHVRn++VQB9z3bp1+stf/iKHw6HZs2dr27ZtKikpkcfjkTFG9957r6TaX5+6qI+fE8DJIgQDjax169ZWuPPO/r766quqqKhQ9+7d1bdv34AeS5I1i+qP93Jstc0UtRTHey6OvCxdsJ6Lxnj+vccsKCjwu/1YY6nNKaecov/5n//Rzz//rA0bNujhhx9Wv379tH37dl1xxRX67LPPAno877WwFy1apLFjxyojI0ORkZHW9uzs7IDHWBvv83rgwIE69fc+fx06dLBC+bH+BEt9vldqey8cebwjH9P7+tx1112aPn26evTooZiYGOt/M4L5+gBNCSEYaAK8t1F+9dVX5XK5atwmua5OP/10SdL27dv9bj948KD1C83bt6U63nPhvfZpSkqKz1KI2pYxBHLMHTt21BqYvMcN1vPvfZza7urnXR5wIsLCwtS/f3/dc8892rRpk6655hq53W79z//8T0CP471e8MCBA2tsKywsDOoyA++SjU2bNh3zv/a9unbtqvDwcOXm5p7Uf/cf7Xjvo/r8Xs3Ozq51eYH3/XDkYx7r9ZFqXwt8Mt8rQFNACAaagIsvvlipqakqLCzUs88+q/Xr1/vcJrmuRowYIUn697//rby8vBrbn332WVVUVCgjI0PdunULytibKu9zMX/+fL/bn3rqKZ9+Xt47tnnv4BaIQYMGKTo6WtnZ2XrjjTdqbP/888/16aefyuFwaNiwYQE/vj/ekyYXLlzo97+rn3nmmaAcR5J+9atfSZJycnJ82o/3nHm3+7spzOOPPy632x20MWZmZiopKUk//vijXn755eP2j46O1ogRI+TxeKz3RDAc7zmpz+/VyspKLVy4sEb71q1b9fHHH9d4/x3r9Vm1alWtIfhkvleApoAQDDQBoaGhGjNmjKTq/5I0xmjw4MHq2LFjQI9z4YUX6txzz1VFRYWuvfZan/9qXbVqlXU3tOnTp7f4WZw//elPiouL05YtW/TnP/9ZlZWVkiSPx6M5c+bonXfeUXh4uKZOneqzX+fOnSVJWVlZqqqqCuiYcXFx+tOf/iSp+qoUX375pbXtu+++07hx4yRJo0ePrvVEoUBde+216tChg/bt26dJkyZZgcQYoyeffNJaW15XTzzxhObNm1cjEO3du1cvvPCCJOmcc87x2eZ9zmq7eoL3ah5Tp061ZiiNMfrnP/+pxx57TK1atQpojMfSqlUr/e1vf5MkTZo0SS+//LLPrHxRUZGeeOIJnyUD//3f/63IyEg9+OCDevjhh2uEutzcXD355JNasGBBncfhfU7WrVvn938F6vN7NSwsTPfff7/P67Fv3z7rf5yuvPJKn/ef9/V5+OGHtXv3bqt906ZNuummm2p9fbw1btq0KehXEgEaRENdiw3AsX355ZfWNT4l+dxZ6mjHu2Oc9+YJkZGR5pxzzjGnnXaa9bhjx44N6h3jjr7zlteJXPf2eHeM8+d4d4zz3gUsISHBnHvuudadvEJCQsyzzz5bYx+n02ldn7l9+/YmMzPTDB482MyePbtO4yktLTVDhw61nrcePXqY3r17m9DQUOt6qUfeMc7rRK8TbIwxH374oXVd5ri4OHPuueee8B3j7rjjDqt/p06dzHnnnWfOOOMMa/w9e/Y0Bw4c8HmcBx54wEgyoaGh5uyzzzaDBw82gwcPtq5/+/nnn/uMr2/fviYtLc16P9ZW+/Gek9quxevxeMyf/vQnq46kpCRz7rnnmk6dOll1HP2+fe2116xrPLdq1cr06dPHnHfeedYd3SSZe+65p06vhzHGfPvtt9Z7LyMjw5x//vlm8ODBPmM9ke/VY/F3x7jTTz/dnH322dYd4zp37lzjusROp9O6U11ERITp1auX6datm/X+vfPOO/1eO9vtdlt3jUtMTDQDBgwwgwcPNnfccYfV50RfQ6AhMBMMNBF9+vRRr169JFXPZl111VUn9DinnXaavvzyS02bNk0dO3bUtm3blJ+frwsuuEBLlizR4sWLW/wssNeoUaO0efNmXXfddWrVqpW2bNkiY4x++9vfav369br55ptr7BMXF6dVq1bp0ksvVUVFhT799FOtXbu21jW3R4uKitJ7772nJ598Uv369dOePXv09ddfq0ePHnrwwQeVlZWlxMTEoNY5dOhQbdiwQZdffrkcDoe2b9+u9PR0vfzyy7rrrrsCeqw//vGPmjFjhi644AK5XC5t2bJFRUVFOvfcc/X0009r48aNio+P99ln+vTpuv/++3Xaaadp+/btWrt2rdauXWtdTaFv375at26dhg0bJo/Ho507dyo5OVlPPfWUFi9eHLTnwcvhcOiZZ57RO++8o5EjR8rhcOirr76Sy+XS4MGD9cwzzygtLc1nn9/+9rfavn277rjjDnXq1Em7du3S9u3bFR0drd/+9rdavHixpk+fXucxdOnSRW+99ZYGDx6soqIirV+/XmvXrrXW30r1973qcDi0fPlyzZgxQx6PR9u3b1e7du30pz/9SZ999lmN6xLHxcVp/fr1uuGGGxQXF6ddu3apsrJSd955pz799NNaT8wLCQnRO++8o6uuukqhoaHauHGj1q5dqy1btgQ8ZqAxOIzhuiQAADR3a9as0dChQzV48GCtWbOmsYcDNHnMBAMAAMB2CMEAAACwHUIwAAAAbIcQDAAAANvhxDgAAADYDjPBAAAAsJ2wxh5Ac+LxeJSTk6PY2FjbXGcVAACgOTHG6ODBg0pLS1NISO3zvYTgAOTk5Cg9Pb2xhwEAAIDjyM7O1imnnFLrdkJwALx3zcnOzlZcXFwjjwYAAABHKy4uVnp6eq13O/QiBAfAuwQiLi6OEAwAANCEHW/pKifGAQAAwHYIwQAAALAdQjAAAABshxAMAAAA2yEEAwAAwHYIwQAAALAdQjAAAABshxAMAAAA2yEEAwAAwHYIwQAAALAdQjAAAABshxAMAAAA2yEEAwAAwHYIwQAAALAdQjAAAABshxAMAAAA2wlr7AEACK7SyqrGHgKAFi46gviA5o93MdDC9LjvvcYeAoAW7oeHL2vsIQAnjeUQAAAAsB1mgoEWZvsDIxp7CGgmSiur1O/BDyRJn//1Iv6LG4Ct8BMPaGEIMjgR0RFhvHcA2ArLIQAAAGA7hGAAAADYDiEYAAAAtkMIBgAAgO0QggEAAGA7hGAAAADYDiEYAAAAtkMIBgAAgO0QggEAAGA7hGAAAADYDiEYAAAAtkMIBgAAgO0QggEAAGA7hGAAAADYDiEYAAAAttPoIXjdunW6/PLLlZaWJofDoddff93a5nK5dM8996hXr16KiYlRWlqabrjhBuXk5Pg8RkVFhSZPnqykpCTFxMRo1KhR2rdvn0+foqIijR07VvHx8YqPj9fYsWN14MCBBqgQAAAATU2jh+BDhw6pd+/emj9/fo1tpaWl+uKLL/S3v/1NX3zxhV577TV9/fXXGjVqlE+/KVOmaPny5Vq2bJnWr1+vkpISjRw5Um632+ozZswYbdmyRStXrtTKlSu1ZcsWjR07tt7rAwAAQNPjMMaYxh6El8Ph0PLly3XFFVfU2mfTpk0677zztGfPHnXs2FFOp1Pt2rXTkiVLdPXVV0uScnJylJ6erhUrVmjEiBHasWOHevTooQ0bNqh///6SpA0bNmjAgAHauXOnunXrVqfxFRcXKz4+Xk6nU3FxcSddLwA0ptLKKvW47z1J0vYHRig6IqyRRwQAJ6+uea3Z/cRzOp1yOBxq06aNJGnz5s1yuVwaPny41SctLU09e/ZUVlaWRowYoU8//VTx8fFWAJakX/3qV4qPj1dWVlatIbiiokIVFRXW18XFxZIkj8cjj8cjqTq4OxwOGWN05OcJb7u3X7DbQ0JCahwzWO3URE3UZI+ajt6nJdR0ou3URE3U1HJqOrq9Ns0qBJeXl2v69OkaM2aMlezz8vIUERGhhIQEn74pKSnKy8uz+iQnJ9d4vOTkZKuPP7Nnz9bMmTNrtGdnZys2NlaS1Lp1ayUlJamwsFAlJSVWnzZt2qhNmzYqKChQWVmZ1Z6YmKjY2Fjl5ubK5XL5jDcqKkrZ2dk+b5i0tDSFhYVp7969PmPo2LGjqqqqfNZHOxwOZWRkqLy8XPv377faw8PD1aFDB5WUlKiwsNBqj4qKUkpKipxOp8/6aGqiJmqyR01lLt9fFC2hJq+W9DpREzVRU2A1ZWdnqy6azXIIl8ul3//+99q7d6/WrFljheClS5dq/PjxPjO2kjRs2DB16dJFCxYs0KxZs7R48WLt2rXLp0/Xrl01YcIETZ8+3e94/M0Ep6enq6ioyDp+Y3/aaYmf4KiJmqipYWoqraxSzxmrJVUvh4gKD232NZ1oOzVREzW1nJqcTqcSEhJaxnIIl8ul0aNHa/fu3frwww99CkpNTVVlZaWKiop8ZoPz8/M1cOBAq8+Rn2i8CgoKlJKSUutxIyMjFRkZWaM9JCREISG+5xR6XxB/ff0JRnttx6zvdmqiJmpqGTXV9edYc6qpvtqpiZqoqfnUVFv/GvvXqVcj8gbgb775Ru+//74SExN9tvft21fh4eFavXq11Zabm6utW7daIXjAgAFyOp3auHGj1eezzz6T0+m0+gAAAMA+Gn0muKSkRN9++6319e7du7Vlyxa1bdtWaWlpuuqqq/TFF1/o7bffltvtttbwtm3bVhEREYqPj9eECRM0depUJSYmqm3btpo2bZp69eqliy++WJLUvXt3XXLJJZo4caKeffZZSdLNN9+skSNH1vnKEAAAAGg5Gj0Ef/755xo6dKj19Z133ilJGjdunGbMmKE333xTktSnTx+f/T766CMNGTJEkvTEE08oLCxMo0ePVllZmS666CItWrRIoaGhVv+XXnpJt99+u3UViVGjRvm9NjEAAABaviZ1YlxTx3WCAbQkXCcYQEtU17zW5NcEAwAAAMFGCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO4RgAAAA2A4hGAAAALZDCAYAAIDtEIIBAABgO40egtetW6fLL79caWlpcjgcev311322G2M0Y8YMpaWlKSoqSkOGDNG2bdt8+lRUVGjy5MlKSkpSTEyMRo0apX379vn0KSoq0tixYxUfH6/4+HiNHTtWBw4cqOfqAAAA0BQ1egg+dOiQevfurfnz5/vdPmfOHM2dO1fz58/Xpk2blJqaqmHDhungwYNWnylTpmj58uVatmyZ1q9fr5KSEo0cOVJut9vqM2bMGG3ZskUrV67UypUrtWXLFo0dO7be6wMAAEDT4zDGmMYehJfD4dDy5ct1xRVXSKqeBU5LS9OUKVN0zz33SKqe9U1JSdEjjzyiSZMmyel0ql27dlqyZImuvvpqSVJOTo7S09O1YsUKjRgxQjt27FCPHj20YcMG9e/fX5K0YcMGDRgwQDt37lS3bt3qNL7i4mLFx8fL6XQqLi4u+E8AADSg0soq9bjvPUnS9gdGKDoirJFHBAAnr655rUn/xNu9e7fy8vI0fPhwqy0yMlKDBw9WVlaWJk2apM2bN8vlcvn0SUtLU8+ePZWVlaURI0bo008/VXx8vBWAJelXv/qV4uPjlZWVVWsIrqioUEVFhfV1cXGxJMnj8cjj8UiqDu4Oh0PGGB35ecLb7u0X7PaQkJAaxwxWOzVREzXZo6aj92kJNZ1oOzVREzW1nJqObq9Nkw7BeXl5kqSUlBSf9pSUFO3Zs8fqExERoYSEhBp9vPvn5eUpOTm5xuMnJydbffyZPXu2Zs6cWaM9OztbsbGxkqTWrVsrKSlJhYWFKikpsfq0adNGbdq0UUFBgcrKyqz2xMRExcbGKjc3Vy6Xy2e8UVFRys7O9nnDpKWlKSwsTHv37vUZQ8eOHVVVVaWcnByrzeFwKCMjQ+Xl5dq/f7/VHh4erg4dOqikpESFhYVWe1RUlFJSUuR0On3WR1MTNVGTPWoqc/n+omgJNXm1pNeJmqiJmgKrKTs7W3XRpJdDZGVlKTMzUzk5OWrfvr3Vb+LEicrOztbKlSu1dOlSjR8/3mfGVpKGDRumLl26aMGCBZo1a5YWL16sXbt2+fTp2rWrJkyYoOnTp/sdj7+Z4PT0dBUVFVnT6439aaclfoKjJmqipoapqbSySj1nrJZUvRwiKjy02dd0ou3URE3U1HJqcjqdSkhIaN7LIVJTUyVVz+QeGYLz8/Ot2eHU1FRVVlaqqKjIZzY4Pz9fAwcOtPoc+YnGq6CgoMYs85EiIyMVGRlZoz0kJEQhIb7nFHpfEH99/QlGe23HrO92aqImamoZNdX151hzqqm+2qmJmqip+dRUW/8a+9epVyM59dRTlZqaqtWrV1ttlZWVWrt2rRVw+/btq/DwcJ8+ubm52rp1q9VnwIABcjqd2rhxo9Xns88+k9PptPoAAADAPhp9JrikpETffvut9fXu3bu1ZcsWtW3bVh07dtSUKVM0a9Ysde3aVV27dtWsWbMUHR2tMWPGSJLi4+M1YcIETZ06VYmJiWrbtq2mTZumXr166eKLL5Ykde/eXZdccokmTpyoZ599VpJ08803a+TIkXW+MgQAAABajkYPwZ9//rmGDh1qfX3nnXdKksaNG6dFixbp7rvvVllZmW655RYVFRWpf//+WrVqlXVimiQ98cQTCgsL0+jRo1VWVqaLLrpIixYtUmhoqNXnpZde0u23325dRWLUqFG1XpsYAAAALVuTOjGuqeM6wQBaEq4TDKAlqmtea9JrggEAAID6QAgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANgOIRgAAAC2QwgGAACA7RCCAQAAYDuEYAAAANhOkw/BVVVV+utf/6pTTz1VUVFR6ty5sx544AF5PB6rjzFGM2bMUFpamqKiojRkyBBt27bN53EqKio0efJkJSUlKSYmRqNGjdK+ffsauhwAAAA0AU0+BD/yyCNasGCB5s+frx07dmjOnDl69NFH9fTTT1t95syZo7lz52r+/PnatGmTUlNTNWzYMB08eNDqM2XKFC1fvlzLli3T+vXrVVJSopEjR8rtdjdGWQAAAGhEYY09gOP59NNP9Zvf/EaXXXaZJKlTp056+eWX9fnnn0uqngWeN2+e7r33Xl155ZWSpMWLFyslJUVLly7VpEmT5HQ6tXDhQi1ZskQXX3yxJOlf//qX0tPT9f7772vEiBGNUxwAAAAaRZMPwYMGDdKCBQv09ddf6/TTT9dXX32l9evXa968eZKk3bt3Ky8vT8OHD7f2iYyM1ODBg5WVlaVJkyZp8+bNcrlcPn3S0tLUs2dPZWVl1RqCKyoqVFFRYX1dXFwsSfJ4PNZyDIfDIYfDIWOMjDFWX2/7kcs2gtkeEhJS45jBaqcmaqIme9R09D4toaYTbacmaqKmllPT0e21afIh+J577pHT6dQZZ5yh0NBQud1uPfTQQ7r22mslSXl5eZKklJQUn/1SUlK0Z88eq09ERIQSEhJq9PHu78/s2bM1c+bMGu3Z2dmKjY2VJLVu3VpJSUkqLCxUSUmJ1adNmzZq06aNCgoKVFZWZrUnJiYqNjZWubm5crlcPmOJiopSdna2zxsmLS1NYWFh2rt3r88YOnbsqKqqKuXk5FhtDodDGRkZKi8v1/79+6328PBwdejQQSUlJSosLLTao6KilJKSIqfTqQMHDljt1ERN1GSPmspcvr8oWkJNXi3pdaImaqKmwGrKzs5WXTjM0ZG+iVm2bJnuuusuPfroozrzzDO1ZcsWTZkyRXPnztW4ceOUlZWlzMxM5eTkqH379tZ+EydOVHZ2tlauXKmlS5dq/PjxPrO6kjRs2DB16dJFCxYs8HtsfzPB6enpKioqUlxcnKTG/7TTEj/BURM1UVPD1FRaWaWeM1ZLkrY/MEJR4aHNvqYTbacmaqKmllOT0+lUQkKCnE6nldf8afIzwXfddZemT5+ua665RpLUq1cv7dmzR7Nnz9a4ceOUmpoqqXq298gQnJ+fb80Op6amqrKyUkVFRT6zwfn5+Ro4cGCtx46MjFRkZGSN9pCQEIWE+J5T6H1B/PX1JxjttR2zvtupiZqoqWXUVNefY82ppvpqpyZqoqbmU1Nt/WvsX6detfB4PCotLT2Zhziu0tLSGsWEhoZa6f/UU09VamqqVq9ebW2vrKzU2rVrrYDbt29fhYeH+/TJzc3V1q1bjxmCAQAA0DIFNBNcXl6uZcuW6Z133tEnn3yi/Px8GWMUGRmpHj166MILL9R1112n3r17B22Al19+uR566CF17NhRZ555pr788kvNnTtXN910k6TqxD9lyhTNmjVLXbt2VdeuXTVr1ixFR0drzJgxkqT4+HhNmDBBU6dOVWJiotq2batp06apV69e1tUiAAAAYB91CsFlZWWaM2eOnnzySesktYsuukjJyclq1aqVfv75Z33//fd6/vnn9fjjj2vgwIGaM2eOBgwYcNIDfPrpp/W3v/1Nt9xyi/Lz85WWlqZJkybpvvvus/rcfffdKisr0y233KKioiL1799fq1atsk5ek6QnnnhCYWFhGj16tMrKynTRRRdp0aJFCg0NPekxAgAAoHmp04lxp5xyimJiYjRp0iRdd911Na7E4GWM0UcffaQXX3xR//73vzV//nz94Q9/CPqgG0txcbHi4+OPu9AaAJqD0soq9bjvPUnVJ8ZFRzT500QA4Ljqmtfq9BPvgQce0Lhx4447a+pwOHThhRfqwgsv1MyZM2tcugIAAABoCuoUgr3rbwPRuXNnde7cOeD9AAAAgPp2UleHAAAAAJqjE1oAlpeXp//93//Vnj17VF5e7rPN4XDoySefDMrgAAAAgPoQcAh+77339Nvf/rZG+PUiBAMAAKCpC3g5xF133aU+ffpoy5YtqqiokMfj8fnjdrvrY5wAAABA0AQ8E/zdd9/ptdde01lnnVUf4wEAAADqXcAzwWeccYaKi4vrYywAAABAgwg4BD/wwAN66KGHtH///voYDwAAAFDvAl4Ocdlll+mLL75Qly5d1KdPH7Vt29Znu8Ph0BtvvBG0AQIAAADBFnAIXrRoke6//36FhoZq9+7d+vHHH322OxyOoA0OAAAAqA8Bh+CZM2fq8ssv16JFi5SQkFAfYwIAAADqVcBrgvfv36/JkycTgAEAANBsBRyCzz77bO3bt68+xgIAAAA0iIBD8OOPP645c+Zoy5Yt9TAcAAAAoP4FvCZ44sSJKigoUN++fdW+fXu/V4f46quvgjZAAAAAINgCDsGJiYlKSkqqj7EAAAAADSLgELxmzZp6GAYAAADQcAJeEwwAAAA0d3UKwZ999lnAD1xWVqZt27YFvB8AAABQ3+oUggcPHqzf/OY3ev/994/bd//+/Xr00UfVuXNnvf322yc9QAAAACDY6rQmeNu2bZo2bZqGDx+u9u3b64ILLtA555yj5ORktWrVSj///LO+++47bdiwQRs3blRCQoJmzpypm2++ub7HDwAAAASsTiG4S5cuWr58uXbs2KF//OMfWrFihV555RWfPlFRURowYICeffZZjRkzRpGRkfUyYAAAAOBkBXR1iO7du+upp57SU089pYKCAuXk5KisrExJSUnKyMhQeHh4fY0TAAAACJqAL5Hm1a5dO7Vr1y6YYwEAAAAaBJdIAwAAgO0QggEAAGA7hGAAAADYDiEYAAAAtkMIBgAAgO2cVAjetWuXPvnkEx06dChY4wEAAADq3QmF4H/+85865ZRT1KNHD11wwQXatWuXJGn06NF6/vnngzpAAAAAINgCDsH//ve/deONN+qcc87R/PnzZYyxtp1zzjl69dVXgzpAAAAAINgCDsGzZ8/W+PHj9eabb+rmm2/22da9e3dt3749aIMDAAAA6kPAIXjHjh265ppr/G5r27atCgsLT3pQAAAAQH0KOARHR0fL6XT63fbjjz8qISHhpAcFAAAA1KeAQ3BmZmaNtcBeixYt0pAhQ4IxLgAAAKDehAW6w3333adBgwbpvPPO05gxY+RwOPTaa6/p/vvv17p167Rx48b6GCcAAAAQNAHPBPfr10/vvvuuSkpKNHXqVBljNGvWLH399ddasWKFevbsWR/jBAAAAIIm4JlgSRo6dKh27Nih7777Tvv371dSUpJOP/30YI8NAAAAqBcnFIK9unTpoi5dugRrLAAAAECDCHg5xCOPPKLJkyf73TZ58mQ99thjJz0oAAAAoD4FHIIXL15c67rf3r17a/HixSc9KAAAAKA+BRyC9+zZU+v639NOO00//PDDyY4JAAAAqFcBh+Dw8HDl5+f73bZ//345HI6THhQAAABQn07oEmnPP/+8323PP/+8+vXrd9KDAgAAAOpTwFeHmDZtmi677DINGTJEt9xyizp06KB9+/ZpwYIFWrdunVasWFEf4wQAAACCJuAQfMkll+i5557T1KlTdc0118jhcMgYo/j4eD3//PMaMWJEfYwTAAAACJoTuk7whAkTdM011ygrK0sFBQVq166dBg4cqJiYmGCPDwAAAAi6E75ZRkxMjIYNGxbMsQAAAAAN4oRCsDFGmzZt0p49e1RWVlZj+w033HDSAwMAAADqS8Ah+Ouvv9aoUaP0zTffyBhTY7vD4SAEAwAAoEkLOATfeuutKi8v1yuvvKKzzjpLkZGR9TEuAAAAoN4EHII3btyo559/XldddVV9jAcAAACodwHfLKN169aKi4urj7EAAAAADSLgEDx+/HgtXbq0PsZSqx9//FHXX3+9EhMTFR0drT59+mjz5s3WdmOMZsyYobS0NEVFRWnIkCHatm2bz2NUVFRo8uTJSkpKUkxMjEaNGqV9+/Y1aB0AAABoGgJeDtGzZ0+9/PLLGjVqlC6//HIlJibW6HPllVcGZXCSVFRUpMzMTA0dOlTvvvuukpOT9d1336lNmzZWnzlz5mju3LlatGiRTj/9dD344IMaNmyYdu3apdjYWEnSlClT9NZbb2nZsmVKTEzU1KlTNXLkSG3evFmhoaFBGy8AAACaPofxd4mHYwgJOfbkscPhkNvtPqlBHWn69On65JNP9PHHH/vdboxRWlqapkyZonvuuUdS9axvSkqKHnnkEU2aNElOp1Pt2rXTkiVLdPXVV0uScnJylJ6erhUrVtT5LnfFxcWKj4+X0+lkSQiAZq+0sko97ntPkrT9gRGKjjjhS8cDQJNR17wW8E+8jz766KQGFqg333xTI0aM0O9//3utXbtWHTp00C233KKJEydKknbv3q28vDwNHz7c2icyMlKDBw9WVlaWJk2apM2bN8vlcvn0SUtLU8+ePZWVlVVrCK6oqFBFRYX1dXFxsSTJ4/HI4/FIqg793ltHH/l5wtvu7Rfs9pCQkBrHDFY7NVETNdmjpqP3aQk1nWg7NVETNbWcmo5ur03AIXjw4MGB7nJSvv/+e/3jH//QnXfeqb/85S/auHGjbr/9dkVGRuqGG25QXl6eJCklJcVnv5SUFO3Zs0eSlJeXp4iICCUkJNTo493fn9mzZ2vmzJk12rOzs61lFq1bt1ZSUpIKCwtVUlJi9WnTpo3atGmjgoICnxuKJCYmKjY2Vrm5uXK5XD5jiYqKUnZ2ts8bJi0tTWFhYdq7d6/PGDp27Kiqqirl5ORYbQ6HQxkZGSovL9f+/fut9vDwcHXo0EElJSUqLCy02qOiopSSkiKn06kDBw5Y7dRETdRkj5rKXL6/KFpCTV4t6XWiJmqipsBqys7OVl0EvByioUVERKhfv37Kysqy2m6//XZt2rRJn376qbKyspSZmamcnBy1b9/e6jNx4kRlZ2dr5cqVWrp0qcaPH+8zqytJw4YNU5cuXbRgwQK/x/Y3E5yenq6ioiJrer2xP+20xE9w1ERN1NQwNZVWVqnnjNWSqpdDRIWHNvuaTrSdmqiJmlpOTU6nUwkJCcFfDiFJ33zzjZ599lnt2LGjxm2THQ6HPvjggxN5WL/at2+vHj16+LR1795d//u//ytJSk1NlVQ923tkCM7Pz7dmh1NTU1VZWamioiKf2eD8/HwNHDiw1mNHRkb6vRlISEhIjbXR3hfEX19/gtFe2zHru52aqImaWkZNdf051pxqqq92aqImamo+NdXWv8b+dep1hK1bt+rss8/WW2+9pZUrV6qoqEjffPON1qxZo++++67GJ4STlZmZqV27dvm0ff3118rIyJAknXrqqUpNTdXq1aut7ZWVlVq7dq0VcPv27avw8HCfPrm5udq6desxQzAAAABapoBD8F/+8heNGDFC27ZtkzFGCxcuVHZ2tt566y2Vl5frwQcfDOoA//znP2vDhg2aNWuWvv32Wy1dulTPPfecbr31VknViX/KlCmaNWuWli9frq1bt+rGG29UdHS0xowZI0mKj4/XhAkTNHXqVH3wwQf68ssvdf3116tXr166+OKLgzpeAAAANH0BL4f44osv9Mwzz1hTzd71GJdddpmmTZum//qv/9LatWuDNsBzzz1Xy5cv13/913/pgQce0Kmnnqp58+bpuuuus/rcfffdKisr0y233KKioiL1799fq1atsk5ek6QnnnhCYWFhGj16tMrKynTRRRdp0aJFXCMYAADAhgI+MS4mJkbvvfeeBg0apMjISL399tsaNmyYpOrLp40aNUoHDx6sl8E2Nq4TDKAl4TrBAFqiuua1gJdDdOjQQT/99JMk6bTTTtO6deusbf/5z3/UunXrExguAAAA0HAC/tg/aNAgZWVl6YorrtB1112n+++/X7m5uYqIiNCiRYt0/fXX18c4AQAAgKAJOATfe++91oWV77nnHuXl5emll16Sw+HQ6NGj9eijjwZ9kAAAAEAwNfmbZTQlrAkG0JKwJhhAS1Rva4Jvuukm7d692++2PXv26Kabbgr0IQEAAIAGFXAIXrRokQoKCvxu++mnn7R48eKTHhQAAABQnwIOwcfy888/+73NMAAAANCU1GkB2Lp167RmzRrr6xdeeEErV6706VNWVqY33nhDPXr0COoAAQAAgGCrUwj+6KOPNHPmTEnVtyl+4YUX/PbLyMjQ3//+9+CNDgAAAKgHdQrBd999t2677TYZY5ScnKz33ntP55xzjk+fyMhIbpQBAACAZqFOITgqKkpRUVGSpN27dystLU3h4eH1OjAAAACgvgR8YlxKSorKysp82l599VVNnz5d77//ftAGBgAAANSXgEPw2LFjdfvtt1tfP/XUU7rmmms0Z84cjRgxQitWrAjqAAEAAIBgCzgEb9y4UZdccon19VNPPaXrr79eBw4c0JVXXqnHHnssqAMEAAAAgi3gEFxQUKAOHTpIql4f/P3332vy5MmKi4vThAkTtHXr1qAPEgAAAAimgENwdHS0nE6nJOnjjz9W69at1a9fP0lSq1atVFJSEtwRAgAAAEFWp6tDHKlXr176+9//royMDD3zzDMaOnSoHA6HJGnv3r1KTU0N+iABAACAYAo4BP/tb3/TyJEj1adPH0VERPhcEeKdd96pcf1gAAAAoKkJOARfeOGF2rFjhzZv3qw+ffqoc+fOPtv69OkTzPEBAAAAQRdwCJaqb4+ckZFRo33SpEknPSAAAACgvgV8YhwAAADQ3NUpBIeGhmrjxo3VO4SE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data_series = pd.Series()\n", + "\n", + "for task in tasks:\n", + " if len(task.distances) == 0:\n", + " continue\n", + " data_series = pd.concat([data_series, task.distances])\n", + "\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 6))\n", + "violin_parts = ax.violinplot(\n", + " data_series,\n", + " showmeans=False,\n", + " showmedians=True,\n", + " showextrema=True\n", + ")\n", + "\n", + "ax.set_title('Violin Plot of distance to path', fontsize=16)\n", + "ax.set_ylabel('Distance (m)', fontsize=12)\n", + "\n", + "ax.set_xticks([])\n", + "ax.yaxis.grid(True, linestyle='--', which='major', color='grey', alpha=.25)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c31ae41c", + "metadata": {}, + "outputs": [], + "source": [ + "data_list = []\n", + "for task in tasks:\n", + " if len(task.distances) == 0:\n", + " continue\n", + " for distance in task.distances:\n", + " data_list.append({'profile': task.view, 'distance_error': distance})\n", + "df = pd.DataFrame(data_list)\n", + "grouped = df.groupby('profile')['distance_error']\n", + "\n", + "sorted_profiles = sorted(grouped.groups.keys())\n", + "plot_data = [grouped.get_group(profile).values for profile in sorted_profiles]\n", + "\n", + "fig, ax = plt.subplots(figsize=(12, 8))\n", + "\n", + "violin_parts = ax.violinplot(\n", + " plot_data,\n", + " showmeans=False,\n", + " showmedians=True,\n", + " showextrema=True\n", + ")\n", + "\n", + "for pc in violin_parts['bodies']:\n", + " pc.set_facecolor('#8A2BE2')\n", + " pc.set_edgecolor('black')\n", + " pc.set_alpha(0.7)\n", + "\n", + "ax.set_title('Distribution of Distance Error by Profile', fontsize=16)\n", + "ax.set_xlabel('Profile', fontsize=12)\n", + "ax.set_ylabel('Distance Error (m)', fontsize=12)\n", + "ax.yaxis.grid(True, linestyle='--', which='major', color='grey', alpha=.25)\n", + "\n", + "ax.set_xticks(range(1, len(sorted_profiles) + 1))\n", + "ax.set_xticklabels(sorted_profiles, rotation=30, ha='right')\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c793860", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "emissioneval", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/transit_matching_evaluation_optimized_motion_activity.ipynb b/transit_matching_evaluation_optimized_motion_activity.ipynb new file mode 100644 index 0000000..fe9be4c --- /dev/null +++ b/transit_matching_evaluation_optimized_motion_activity.ipynb @@ -0,0 +1,5277 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "756e5588", + "metadata": {}, + "outputs": [], + "source": [ + "import folium\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import emeval.input.spec_details as eisd\n", + "import emeval.input.phone_view as eipv\n", + "from transit_matching.matching import get_graph_match, get_transit_match\n", + "from transit_matching.analysis_helper import create_tasks" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f454eb96", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_path(path, df):\n", + " locations = df[['latitude', 'longitude']]\n", + " locations = locations.to_numpy()\n", + " \n", + " m = folium.Map(location=path[0], zoom_start=15)\n", + " folium.PolyLine(\n", + " locations=path,\n", + " color='red',\n", + " weight=5,\n", + " opacity=0.8\n", + " ).add_to(m)\n", + "\n", + " for i in range(len(locations)):\n", + " folium.CircleMarker(\n", + " location=[locations[i][0], locations[i][1]],\n", + " radius=1\n", + " ).add_to(m)\n", + "\n", + " display(m)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "94f45bd7", + "metadata": {}, + "outputs": [], + "source": [ + "NON_TRANSIT_ERROR_FACTOR = 1.7\n", + "TRANSIT_ERROR_FACTOR = 1\n", + "MODERN_ERROR_FACTOR = 1.2\n", + "\n", + "mode_name_map = {0: 'CAR', 1: 'BIKE', 2: 'WALK'}\n", + "\n", + "def choose_best(df, map_data, non_transit_mode):\n", + " nx_map = map_data['nx_maps'][non_transit_mode]\n", + " best_mode = mode_name_map[non_transit_mode]\n", + " best_error, best_path, best_distances = get_graph_match(df, nx_map)\n", + " best_error *= NON_TRANSIT_ERROR_FACTOR\n", + " modern = True\n", + "\n", + " if non_transit_mode != 0:\n", + " return (best_error, best_path, best_mode, modern, best_distances)\n", + " \n", + " error_transit, path_transit, mode_transit, distances_transit = get_transit_match(df, map_data['historic'])\n", + " error_modern_transit, path_modern_transit, mode_modern_transit, distances_modern_transit = get_transit_match(df, map_data['modern'])\n", + " error_modern_transit *= MODERN_ERROR_FACTOR\n", + "\n", + " if error_modern_transit < best_error:\n", + " best_error, best_path, best_mode, best_distances = error_modern_transit, path_modern_transit, mode_modern_transit, distances_modern_transit\n", + "\n", + " if error_transit < best_error:\n", + " best_error, best_path, best_mode, best_distances = error_transit, path_transit, mode_transit, distances_transit\n", + " modern = False\n", + "\n", + " best_mode = best_mode.upper()\n", + "\n", + " return (best_error, best_path, best_mode, modern, best_distances)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9280672e", + "metadata": {}, + "outputs": [], + "source": [ + "AUTHOR_EMAIL = \"shankari@eecs.berkeley.edu\"\n", + "DATASTORE_LOC = \"bin/data/\"\n", + "views = ['car_scooter_brex_san_jose', 'train_bus_ebike_mtv_ucb', 'unimodal_trip_car_bike_mtv_la']\n", + "\n", + "sds = {view: eisd.FileSpecDetails(DATASTORE_LOC, AUTHOR_EMAIL, view) for view in views}\n", + "pvs = {view: eipv.PhoneView(sd) for view, sd in sds.items()}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d850d81a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "After iterating over 1 entries, entry found\n", + "Found spec = Multi-modal car scooter BREX trip to San Jose\n", + "Evaluation ran from 2019-07-20T00:00:00-07:00 -> 2020-04-29T17:00:00-07:00\n", + "After iterating over 1 entries, entry found\n", + "Found spec = Multimodal multi-train, multi-bus, ebike trip to UC Berkeley\n", + "Evaluation ran from 2019-07-16T00:00:00-07:00 -> 2020-04-30T00:00:00-07:00\n", + "After iterating over 1 entries, entry found\n", + "Found spec = Round trip car and bike trip in the South Bay\n", + "Evaluation ran from 2019-07-20T00:00:00-07:00 -> 2020-04-29T17:00:00-07:00\n", + "-------------------- About to read transitions from server --------------------\n", + "Reading data for android phones\n", + "Loading transitions for phone ucb-sdb-android-1\n", + "Loading transitions for phone ucb-sdb-android-2\n", + "Loading transitions for phone ucb-sdb-android-3\n", + "Loading transitions for phone ucb-sdb-android-4\n", + "Reading data for ios phones\n", + "Loading transitions for phone ucb-sdb-ios-1\n", + "Loading transitions for phone ucb-sdb-ios-2\n", + "Loading transitions for phone ucb-sdb-ios-3\n", + "Loading transitions for phone ucb-sdb-ios-4\n", + "-------------------- About to fill calibration ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for android phones\n", + "---------- ucb-sdb-android-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-1\n", + "---------- ucb-sdb-android-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-2\n", + "---------- ucb-sdb-android-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-3\n", + "---------- ucb-sdb-android-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "---------- ucb-sdb-ios-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-1\n", + "---------- ucb-sdb-ios-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-2\n", + "---------- ucb-sdb-ios-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-3\n", + "---------- ucb-sdb-ios-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-4\n", + "-------------------- About to fill evaluation ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 14 calibration transitions \n", + "Processing data for android phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563821438.276, 1563821438.28)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563846248.068, 1563846248.119)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563896743.138, 1563896743.139)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563917431.4410002, 1563917431.489)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564244087.214, 1564244087.215)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564263878.522, 1564263878.59)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565026006.791, 1565026006.793)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565050217.336, 1565050217.383)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565116007.627, 1565116007.631)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565140213.782, 1565140213.84)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565194658.166, 1565194658.17)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565217816.716, 1565217816.765)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583349554.574, 1583349554.576)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583372563.541, 1583372563.606)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-android-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563821451.359, 1563821451.365)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563846294.729, 1563846294.773)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563896762.637, 1563896762.638)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563917454.9840002, 1563917455.038)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564244097.157, 1564244097.158)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564263896.952, 1564263897.006)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565026017.466, 1565026017.472)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565050237.326, 1565050237.388)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565116024.099, 1565116024.103)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565140246.34, 1565140246.406)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565194646.72, 1565194646.726)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565217853.294, 1565217853.529)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1583349567.43, 1583349567.431)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1583372601.824, 1583372601.881)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'MAMFDC v/s HAMFDC:MAMFDC', 'HAHFDC v/s MAHFDC:HAHFDC'}\n", + "Found 7 ranges for phone ucb-sdb-android-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563821466.017, 1563821466.019)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563846343.288, 1563846343.356)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563896782.97, 1563896782.972)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563917505.091, 1563917505.1820002)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564244108.505, 1564244108.508)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564263930.867, 1564263930.928)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565026028.415, 1565026028.417)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565050275.541, 1565050275.592)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565116061.46, 1565116061.463)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565140296.017, 1565140296.074)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565194636.417, 1565194636.421)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565217890.176, 1565217890.224)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1583349576.563, 1583349576.565)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1583372653.463, 1583372653.522)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC', 'MAMFDC v/s HAMFDC:HAMFDC'}\n", + "Found 7 ranges for phone ucb-sdb-android-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563821473.884, 1563821473.886)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563846366.351, 1563846366.416)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563896793.681, 1563896793.685)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563917534.25, 1563917534.3000002)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564244116.133, 1564244116.137)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564263954.141, 1564263954.233)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565026039.441, 1565026039.443)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565050297.435, 1565050297.499)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565116073.831, 1565116073.834)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565140325.749, 1565140325.815)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565194628.574, 1565194628.578)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565217931.162, 1565217931.226)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583349589.4, 1583349589.403)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583372691.902, 1583372691.965)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563821361.667, 1563821361.9869251)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563846149.683, 1563846150.16837)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563896677.989, 1563896678.241638)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563917566.035, 1563917566.5567281)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564244009.482, 1564244009.635462)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564263803.96, 1564263804.405366)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565025962.886, 1565025963.03954)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565050123.902, 1565050124.3998442)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565115912.452, 1565115912.62001)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565140051.668, 1565140052.158344)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565194748.742, 1565194748.934565)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565217732.48, 1565217732.972708)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583349504.524, 1583349504.692752)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1583372462.124, 1583372462.538796)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-ios-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563821384.042, 1563821384.124948)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563846170.128, 1563846170.6134238)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563896695.361, 1563896695.465279)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563917643.812, 1563917644.283163)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564244028.252, 1564244028.345111)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564263832.942, 1564263833.387823)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565025979.227, 1565025979.312614)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565050142.928, 1565050143.419801)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565115934.82, 1565115934.904733)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565140079.688, 1565140080.093207)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565194737.837, 1565194737.9074302)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565217755.574, 1565217756.026194)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1583349519.859, 1583349519.980233)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1583372484.251, 1583372484.715636)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC', 'MAMFDC v/s MAHFDC:MAMFDC'}\n", + "Found 7 ranges for phone ucb-sdb-ios-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563821405.658, 1563821405.729749)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563846186.56, 1563846186.997916)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563896711.943, 1563896712.148884)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563917670.325, 1563917670.784336)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564244052.15, 1564244052.238229)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564263855.541, 1564263855.954498)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565025989.841, 1565025989.940984)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565050161.585, 1565050162.005754)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565115954.526, 1565115954.616665)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565140342.348, 1565140342.774678)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565194722.345, 1565194722.424724)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565217783.792, 1565217784.212751)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1583349532.033, 1583349532.106073)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1583372502.781, 1583372503.177521)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAMFDC', 'MAMFDC v/s MAHFDC:MAHFDC', 'HAHFDC v/s MAHFDC:MAHFDC'}\n", + "Found 7 ranges for phone ucb-sdb-ios-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563821424.149, 1563821424.2870421)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563846220.99, 1563846221.430156)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563896726.108, 1563896726.293744)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563917689.529, 1563917689.911433)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564244069.123, 1564244069.2081819)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564263869.097, 1564263869.479578)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565025999.628, 1565025999.709025)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565050201.885, 1565050202.3005052)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565115979.61, 1565115979.7075438)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565140155.815, 1565140156.261787)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565194696.089, 1565194696.183675)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565217805.313, 1565217805.7350268)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583349541.352, 1583349541.440731)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1583372529.856, 1583372530.709937)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 7 ranges for phone ucb-sdb-ios-4\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill evaluation trips --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Lengths (accuracy, power, eval) = (2, 2, 2)\n", + "keys (accuracy, power, eval) = (dict_keys(['android', 'ios']), dict_keys(['android', 'ios']), dict_keys(['android', 'ios']))\n", + "eval_phone_keys (android, ios) = (dict_keys(['ucb-sdb-android-2', 'ucb-sdb-android-3']), dict_keys(['ucb-sdb-ios-2', 'ucb-sdb-ios-3']))\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1563821490.454, 1563821490.509112)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1563823372.396, 1563823372.411165)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563837063.339, 1563837063.391155)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563842712.795, 1563842712.805215)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1563896809.293, 1563896809.3391)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1563898778.313, 1563898778.321992)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563910899.716, 1563910899.755117)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1563915663.367, 1563915663.379727)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1564244129.756, 1564244129.8092852)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1564245644.12, 1564245644.135222)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1564257218.165, 1564257218.202683)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1564261860.997, 1564261861.00942)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1565026080.197, 1565026080.249002)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1565027779.142, 1565027779.148538)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565042553.796, 1565042553.864901)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565047154.386, 1565047154.399231)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1565116093.197, 1565116093.2607632)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1565117985.809, 1565117985.816486)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565131571.647, 1565131571.6941152)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565136626.443, 1565136626.4601789)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1565194760.749, 1565194760.832793)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1565196562.819, 1565196562.819)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565210416.666, 1565210416.767767)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1565214708.219, 1565214708.819)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "('START_EVALUATION_TRIP', 'freeway_driving_weekday', 1583349616.581, 1583349616.665268)\n", + "('STOP_EVALUATION_TRIP', 'freeway_driving_weekday', 1583351508.552, 1583351508.554702)\n", + "('START_EVALUATION_TRIP', 'bus trip with e-scooter access', 1583364868.374, 1583364868.447122)\n", + "('STOP_EVALUATION_TRIP', 'bus trip with e-scooter access', 1583370583.544, 1583370583.5469341)\n", + "All ranges are complete, nothing to change\n", + "{'freeway_driving_weekday', 'bus trip with e-scooter access'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "-------------------- About to fill in evaluation sections --------------------\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563821490.536, 1563821490.568365)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563821613.43, 1563821613.593749)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1563821613.43, 1563821613.614884)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1563823270.634, 1563823270.732588)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1563823270.634, 1563823270.7494102)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1563823372.283, 1563823372.3537679)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'freeway_driving_weekday', 'walk_start'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 123.02538394927979, , )\n", + "('freeway_driving_weekday_0', 1657.117704153061, , )\n", + "('walk_end_0', 101.60435771942139, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563837063.411, 1563837063.449956)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563837487.548, 1563837487.693046)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1563837487.549, 1563837487.7118921)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1563838694.221, 1563838694.340023)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563838694.222, 1563838694.354672)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563838948.7, 1563838948.814182)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563838948.701, 1563838948.831892)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563839700.401, 1563839700.555872)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563839700.401, 1563839700.571171)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563842059.791, 1563842060.055727)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1563842059.792, 1563842060.10108)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1563842712.684, 1563842712.756789)\n", + "All ranges are complete, nothing to change\n", + "{'city_escooter', 'wait_for_city_bus_rapid_transit', 'walk_back_from_bus', 'city_bus_rapid_transit', 'walk_start', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 424.2430901527405, , )\n", + "('city_escooter_0', 1206.6281309127808, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 254.45951008796692, , )\n", + "('wait_for_city_bus_rapid_transit_0', 751.7239799499512, , )\n", + "('city_bus_rapid_transit_0', 2359.4845559597015, , )\n", + "('walk_back_from_bus_0', 652.655709028244, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563896809.366, 1563896809.397591)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563896895.939, 1563896896.124467)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1563896895.941, 1563896896.141485)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1563898609.239, 1563898609.361515)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1563898609.239, 1563898609.377841)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1563898778.139, 1563898778.269067)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'freeway_driving_weekday', 'walk_start'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 86.72687578201294, , )\n", + "('freeway_driving_weekday_0', 1713.2200300693512, , )\n", + "('walk_end_0', 168.89122605323792, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1563910899.773, 1563910899.814049)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1563911016.184, 1563911016.306354)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1563911016.184, 1563911016.3418798)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1563912202.182, 1563912202.348563)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563912202.183, 1563912202.36362)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1563912274.763, 1563912274.8786678)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563912274.764, 1563912274.901408)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1563912512.182, 1563912512.303266)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563912512.183, 1563912512.318758)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1563915052.126, 1563915052.305852)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1563915052.127, 1563915052.324667)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1563915663.26, 1563915663.326861)\n", + "All ranges are complete, nothing to change\n", + "{'city_escooter', 'wait_for_city_bus_rapid_transit', 'walk_back_from_bus', 'city_bus_rapid_transit', 'walk_start', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 116.4923050403595, , )\n", + "('city_escooter_0', 1186.0066831111908, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 72.51504778862, , )\n", + "('wait_for_city_bus_rapid_transit_0', 237.40185809135437, , )\n", + "('city_bus_rapid_transit_0', 2539.987093925476, , )\n", + "('walk_back_from_bus_0', 611.0021939277649, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564244129.831, 1564244129.8664951)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564244184.816, 1564244184.9815102)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1564244184.817, 1564244184.997719)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1564245614.013, 1564245614.178691)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564245614.013, 1564245614.1929631)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564245643.977, 1564245644.050511)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'freeway_driving_weekday', 'walk_start'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 55.11501502990723, , )\n", + "('freeway_driving_weekday_0', 1429.1809718608856, , )\n", + "('walk_end_0', 29.857547760009766, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564257218.225, 1564257218.267362)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564257311.794, 1564257311.928831)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1564257311.794, 1564257311.9492168)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1564258551.436, 1564258551.593719)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1564258551.437, 1564258551.611102)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1564258641.576, 1564258641.65911)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1564258641.577, 1564258641.674529)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1564259030.83, 1564259030.9701672)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1564259030.83, 1564259030.988997)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1564261268.871, 1564261268.970629)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1564261268.871, 1564261268.988503)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1564261860.893, 1564261860.9574342)\n", + "All ranges are complete, nothing to change\n", + "{'city_escooter', 'wait_for_city_bus_rapid_transit', 'walk_back_from_bus', 'city_bus_rapid_transit', 'walk_start', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 93.66146898269653, , )\n", + "('city_escooter_0', 1239.6445021629333, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 90.04800796508789, , )\n", + "('wait_for_city_bus_rapid_transit_0', 389.2956380844116, , )\n", + "('city_bus_rapid_transit_0', 2237.9816319942474, , )\n", + "('walk_back_from_bus_0', 591.9689311981201, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565026080.273, 1565026080.3062959)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565026125.825, 1565026125.9911141)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1565026125.825, 1565026126.007808)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1565027744.735, 1565027744.871016)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565027744.736, 1565027744.885445)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565027778.948, 1565027779.040153)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'freeway_driving_weekday', 'walk_start'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 45.684818267822266, , )\n", + "('freeway_driving_weekday_0', 1618.8632080554962, , )\n", + "('walk_end_0', 34.15470790863037, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565042553.889, 1565042553.9210582)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565042612.027, 1565042612.198419)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1565042612.028, 1565042612.2229319)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1565043965.676, 1565043965.839017)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565043965.682, 1565043965.8569732)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565044035.122, 1565044035.215605)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565044035.122, 1565044035.23178)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565044462.807, 1565044463.004527)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565044462.807, 1565044463.0175738)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565046534.626, 1565046534.8845382)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1565046534.627, 1565046534.919526)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1565047154.27, 1565047154.3463578)\n", + "All ranges are complete, nothing to change\n", + "{'city_escooter', 'wait_for_city_bus_rapid_transit', 'walk_back_from_bus', 'city_bus_rapid_transit', 'walk_start', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 58.277360916137695, , )\n", + "('city_escooter_0', 1353.6160850524902, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 69.35863184928894, , )\n", + "('wait_for_city_bus_rapid_transit_0', 427.7727470397949, , )\n", + "('city_bus_rapid_transit_0', 2071.86696434021, , )\n", + "('walk_back_from_bus_0', 619.4268317222595, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565116093.283, 1565116093.31989)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565116184.423, 1565116184.584146)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1565116184.423, 1565116184.600514)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1565117872.256, 1565117872.412663)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565117872.257, 1565117872.4271522)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565117985.601, 1565117985.767359)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'freeway_driving_weekday', 'walk_start'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 91.2642560005188, , )\n", + "('freeway_driving_weekday_0', 1687.8121490478516, , )\n", + "('walk_end_0', 113.34020686149597, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565131571.72, 1565131571.756772)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565131719.139, 1565131719.29528)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1565131719.139, 1565131719.31602)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1565132979.221, 1565132979.391594)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565132979.222, 1565132979.410962)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565133027.086, 1565133027.175887)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565133027.087, 1565133027.1911669)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565133539.461, 1565133539.5930529)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565133539.462, 1565133539.608464)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565136001.172, 1565136001.450815)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1565136001.172, 1565136001.470848)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1565136626.312, 1565136626.4069738)\n", + "All ranges are complete, nothing to change\n", + "{'city_escooter', 'wait_for_city_bus_rapid_transit', 'walk_back_from_bus', 'city_bus_rapid_transit', 'walk_start', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 147.538507938385, , )\n", + "('city_escooter_0', 1260.0755739212036, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 47.76492500305176, , )\n", + "('wait_for_city_bus_rapid_transit_0', 512.4018859863281, , )\n", + "('city_bus_rapid_transit_0', 2461.842350959778, , )\n", + "('walk_back_from_bus_0', 624.9361257553101, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565194760.847, 1565194760.848346)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565194814.125, 1565194814.25775)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1565194814.126, 1565194814.273975)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1565196417.444, 1565196417.6778622)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565196417.445, 1565196417.694921)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565196562.296, 1565196562.411165)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'freeway_driving_weekday', 'walk_start'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 53.409404039382935, , )\n", + "('freeway_driving_weekday_0', 1603.403887271881, , )\n", + "('walk_end_0', 144.71624398231506, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565210416.787, 1565210416.789362)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565210468.356, 1565210468.528394)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1565210468.357, 1565210468.54451)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1565211705.234, 1565211705.4053168)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565211705.235, 1565211705.4192839)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1565211770.517, 1565211770.6105618)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565211770.517, 1565211770.626648)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1565211919.815, 1565211919.974773)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565211919.816, 1565211919.995462)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1565214089.557, 1565214089.656897)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1565214089.557, 1565214089.674429)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1565214708.119, 1565214708.719)\n", + "All ranges are complete, nothing to change\n", + "{'city_escooter', 'wait_for_city_bus_rapid_transit', 'walk_back_from_bus', 'city_bus_rapid_transit', 'walk_start', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 51.73903203010559, , )\n", + "('city_escooter_0', 1236.860806941986, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 65.19127798080444, , )\n", + "('wait_for_city_bus_rapid_transit_0', 149.3481249809265, , )\n", + "('city_bus_rapid_transit_0', 2169.6614351272583, , )\n", + "('walk_back_from_bus_0', 619.0445711612701, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1583349616.677, 1583349616.678327)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1583349673.646, 1583349673.7534919)\n", + "('START_EVALUATION_SECTION', 'freeway_driving_weekday', 1583349673.647, 1583349673.7669039)\n", + "('STOP_EVALUATION_SECTION', 'freeway_driving_weekday', 1583351356.08, 1583351356.2288508)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1583351356.082, 1583351356.243826)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1583351508.422, 1583351508.5356178)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'freeway_driving_weekday', 'walk_start'}\n", + "ios: Found 3 sections for evaluation freeway_driving_weekday_0\n", + "('walk_start_0', 57.075164794921875, , )\n", + "('freeway_driving_weekday_0', 1682.461946964264, , )\n", + "('walk_end_0', 152.29179191589355, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1583364868.47, 1583364868.477988)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1583365148.905, 1583365149.046914)\n", + "('START_EVALUATION_SECTION', 'city_escooter', 1583365148.906, 1583365149.064424)\n", + "('STOP_EVALUATION_SECTION', 'city_escooter', 1583366582.17, 1583366582.268704)\n", + "('START_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1583366582.17, 1583366582.283499)\n", + "('STOP_EVALUATION_SECTION', 'tt_city_escooter_city_bus_rapid_transit', 1583366661.123, 1583366661.195407)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1583366661.124, 1583366661.207617)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_rapid_transit', 1583367516.226, 1583367516.3339)\n", + "('START_EVALUATION_SECTION', 'city_bus_rapid_transit', 1583367516.227, 1583367516.352926)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_rapid_transit', 1583369987.483, 1583369987.6035771)\n", + "('START_EVALUATION_SECTION', 'walk_back_from_bus', 1583369987.483, 1583369987.6175718)\n", + "('STOP_EVALUATION_SECTION', 'walk_back_from_bus', 1583370583.426, 1583370583.5258222)\n", + "All ranges are complete, nothing to change\n", + "{'city_escooter', 'wait_for_city_bus_rapid_transit', 'walk_back_from_bus', 'city_bus_rapid_transit', 'walk_start', 'tt_city_escooter_city_bus_rapid_transit'}\n", + "ios: Found 6 sections for evaluation bus trip with e-scooter access_0\n", + "('walk_start_0', 280.5689260959625, , )\n", + "('city_escooter_0', 1433.2042798995972, , )\n", + "('tt_city_escooter_city_bus_rapid_transit_0', 78.91190791130066, , )\n", + "('wait_for_city_bus_rapid_transit_0', 855.1262829303741, , )\n", + "('city_bus_rapid_transit_0', 2471.2506511211395, , )\n", + "('walk_back_from_bus_0', 595.9082503318787, , )\n", + "-------------------- About to copy trip and section ranges --------------------\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_0\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_1\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_2\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_3\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_4\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_5\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "Before copying found 1/2 phones with ground truth for experiment of size 7\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_6\n", + "After copying found 2/2 phones with ground truth for experiment of size 7\n", + "dict_keys(['ucb-sdb-android-1', 'ucb-sdb-android-2', 'ucb-sdb-android-3', 'ucb-sdb-android-4'])\n", + "Found accuracy control, skipping copy\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "dict_keys(['ucb-sdb-ios-1', 'ucb-sdb-ios-2', 'ucb-sdb-ios-3', 'ucb-sdb-ios-4'])\n", + "Found accuracy control, skipping copy\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1881.902053117752, , )\n", + "('bus trip with e-scooter access_0', 5649.414059877396, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1968.982892036438, , )\n", + "('bus trip with e-scooter access_0', 4763.624609947205, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1514.325936794281, , )\n", + "('bus trip with e-scooter access_0', 4642.806736946106, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1698.8995361328125, , )\n", + "('bus trip with e-scooter access_0', 4600.534329891205, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1892.5557227134705, , )\n", + "('bus trip with e-scooter access_0', 5054.766063690186, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1801.9862070083618, , )\n", + "('bus trip with e-scooter access_0', 4292.051233053207, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('freeway_driving_weekday_0', 1891.8894340991974, , )\n", + "('bus trip with e-scooter access_0', 5715.099812030792, , )\n", + "-------------------- About to fill in battery information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in location information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in motion activity information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "Processing data for ios phones\n", + "-------------------- About to fill in transition information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "Processing data for ios phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "-------------------- About to select trip specific ranges --------------------\n", + "Filling label ucb-sdb-android-1 for OS android\n", + "Filling label ucb-sdb-android-2 for OS android\n", + "Filling label ucb-sdb-android-3 for OS android\n", + "Filling label ucb-sdb-android-4 for OS android\n", + "Filling label ucb-sdb-ios-1 for OS ios\n", + "Filling label ucb-sdb-ios-2 for OS ios\n", + "Filling label ucb-sdb-ios-3 for OS ios\n", + "Filling label ucb-sdb-ios-4 for OS ios\n", + "-------------------- Done populating information from server --------------------\n", + "-------------------- About to read transitions from server --------------------\n", + "Reading data for android phones\n", + "Loading transitions for phone ucb-sdb-android-1\n", + "Loading transitions for phone ucb-sdb-android-2\n", + "Loading transitions for phone ucb-sdb-android-3\n", + "Loading transitions for phone ucb-sdb-android-4\n", + "Reading data for ios phones\n", + "Loading transitions for phone ucb-sdb-ios-1\n", + "Loading transitions for phone ucb-sdb-ios-2\n", + "Loading transitions for phone ucb-sdb-ios-3\n", + "Loading transitions for phone ucb-sdb-ios-4\n", + "-------------------- About to fill calibration ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 102 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1156 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 92 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 90 total -> 0 calibration transitions \n", + "Processing data for android phones\n", + "---------- ucb-sdb-android-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-1\n", + "---------- ucb-sdb-android-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-2\n", + "---------- ucb-sdb-android-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-3\n", + "---------- ucb-sdb-android-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "---------- ucb-sdb-ios-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-1\n", + "---------- ucb-sdb-ios-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-2\n", + "---------- ucb-sdb-ios-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-3\n", + "---------- ucb-sdb-ios-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-4\n", + "-------------------- About to fill evaluation ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 102 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1156 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 92 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 90 total -> 24 calibration transitions \n", + "Processing data for android phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563979674.374, 1563979674.375)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564026016.505, 1564026016.571)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564067115.274, 1564067115.279)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564111993.024, 1564111993.08)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564153794.975, 1564153794.979)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564198662.813, 1564198662.867)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568128283.482, 1568128283.484)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568171423.252, 1568171423.307)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568214664.755, 1568214664.759)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568259367.163, 1568259367.23)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568732827.097, 1568732827.102)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568775432.276, 1568775432.33)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574179702.033, 1574179702.038)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574222116.282, 1574222116.342)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574266175.2, 1574266175.204)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574308930.047, 1574308930.098)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575389661.907, 1575389661.911)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575432800.647, 1575432800.71)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575907983.674, 1575907983.68)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575951082.011, 1575951082.073)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576080703.085, 1576080703.089)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576123735.18, 1576123735.249)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581005619.143, 1581005619.145)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581048109.519, 1581048109.57)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-android-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1563979684.203, 1563979684.205)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564026016.505, 1564026016.571)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564067129.188, 1564067129.194)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564111993.024, 1564111993.08)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564153809.878, 1564153809.884)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564198662.813, 1564198662.867)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568128292.809, 1568128292.816)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568171423.252, 1568171423.307)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568214683.657, 1568214683.663)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568259367.163, 1568259367.23)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568732838.858, 1568732838.865)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1568775451.914, 1568775451.963)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574179715.967, 1574179715.973)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574222160.031, 1574222160.107)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574266189.537, 1574266189.544)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1574308980.198, 1574308980.276)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575389672.061, 1575389672.067)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575432838.838, 1575432838.904)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575908004.682, 1575908004.688)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575951121.68, 1575951121.764)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1576080718.009, 1576080718.014)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1576123773.414, 1576123773.479)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1581005630.298, 1581005630.304)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1581048155.038, 1581048155.096)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'MAMFDC v/s HAMFDC:MAMFDC', 'HAHFDC v/s MAHFDC:HAHFDC', 'MAMFDC v/s MAHFDC:MAMFDC'}\n", + "Found 12 ranges for phone ucb-sdb-android-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1563979700.65, 1563979700.651)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564026069.763, 1564026069.823)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564067142.569, 1564067142.572)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564112040.859, 1564112040.915)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564153836.577, 1564153836.582)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564198700.545, 1564198700.606)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568128304.269, 1568128304.271)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568171480.369, 1568171480.428)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568214696.728, 1568214696.732)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568259402.325, 1568259402.365)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568732848.137, 1568732848.143)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1568775473.285, 1568775473.326)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574179731.577, 1574179731.582)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574222201.895, 1574222201.96)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574266203.641, 1574266203.645)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1574309018.246, 1574309018.303)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575389683.887, 1575389683.893)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575432884.019, 1575432884.07)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575908019.015, 1575908019.022)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575951162.496, 1575951162.555)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1576080729.571, 1576080729.576)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1576123800.484, 1576123800.55)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1581005657.006, 1581005657.01)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1581048193.116, 1581048193.167)\n", + "All ranges are complete, nothing to change\n", + "{'MAMFDC v/s MAHFDC:MAHFDC', 'HAHFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC', 'MAMFDC v/s HAMFDC:HAMFDC'}\n", + "Found 12 ranges for phone ucb-sdb-android-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563979710.36, 1563979710.362)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564026103.147, 1564026103.196)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564067151.704, 1564067151.709)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564112067.788, 1564112067.839)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564153847.546, 1564153847.551)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564198714.522, 1564198714.587)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568128311.563, 1568128311.564)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568171494.557, 1568171494.623)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568214707.906, 1568214707.909)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568259422.394, 1568259422.461)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568732860.063, 1568732860.068)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568775489.246, 1568775489.32)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574179740.397, 1574179740.404)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574222257.906, 1574222257.964)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574266220.844, 1574266220.847)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574309058.265, 1574309058.326)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575389700.874, 1575389700.879)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575432906.927, 1575432906.988)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575908031.697, 1575908031.703)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575951191.655, 1575951191.725)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576080739.918, 1576080739.922)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576123862.988, 1576123863.143)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581005670.948, 1581005670.953)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581048244.324, 1581048244.482)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1563979588.94, 1563979589.122448)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564026134.307, 1564026134.814043)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564067052.957, 1564067053.13516)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564111856.514, 1564111857.01444)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564153724.618, 1564153724.7851748)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564198472.771, 1564198473.246904)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568128100.199, 1568128110.2934499)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568171299.767, 1568171300.1921492)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568214607.997, 1568214608.131744)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568259227.259, 1568259227.709927)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568732759.108, 1568732759.263176)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1568775346.49, 1568775346.953655)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574179616.171, 1574179616.317733)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574222015.448, 1574222015.899678)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574266122.972, 1574266123.1190748)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1574308834.229, 1574308834.6361)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575389590.964, 1575389591.148025)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575432723.501, 1575432723.9385571)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575907915.923, 1575907916.0966)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1575950995.047, 1575950995.533109)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576080644.914, 1576080645.071576)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1576123648.228, 1576123648.681663)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581005531.626, 1581005531.773211)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1581047994.663, 1581047995.107096)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-ios-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1563979628.541, 1563979628.6823301)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564026158.454, 1564026158.946105)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564067067.124, 1564067067.1988769)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564111964.102, 1564111964.549928)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564153741.12, 1564153741.210318)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564198491.071, 1564198491.704329)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568128234.199, 1568128234.2934499)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568171405.862, 1568171406.342128)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568214623.685, 1568214623.776147)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568259319.961, 1568259320.4247599)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568732781.171, 1568732781.243727)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1568775364.893, 1568775365.402838)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574179649.114, 1574179649.306484)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574222045.293, 1574222045.691361)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574266135.669, 1574266135.737793)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1574308862.073, 1574308862.4586558)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575389605.59, 1575389605.676571)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAMFDC', 1575432753.443, 1575432753.887481)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575907932.674, 1575907932.765305)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1575951019.853, 1575951020.2980871)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1576080658.603, 1576080658.703484)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1576123669.97, 1576123670.400296)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1581005550.981, 1581005551.087857)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:MAMFDC', 1581048034.106, 1581048034.540369)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'MAMFDC v/s HAMFDC:MAMFDC', 'HAHFDC v/s MAHFDC:HAHFDC', 'MAMFDC v/s MAHFDC:MAMFDC'}\n", + "Found 12 ranges for phone ucb-sdb-ios-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1563979652.346, 1563979652.472508)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564026184.423, 1564026184.899987)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564067081.832, 1564067081.9459162)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564111930.941, 1564111931.4124122)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564153753.964, 1564153754.09529)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564198601.517, 1564198601.973415)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568128260.259, 1568128260.3507972)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568171371.648, 1568171372.046767)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568214638.318, 1568214638.402174)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568259290.627, 1568259291.060399)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568732800.428, 1568732800.530198)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1568775397.507, 1568775397.909452)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574179671.601, 1574179671.75875)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574222077.909, 1574222078.319065)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574266150.188, 1574266150.26058)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1574308889.453, 1574308889.8706431)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575389620.726, 1575389620.8166099)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s MAHFDC:MAHFDC', 1575432771.251, 1575432771.673568)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575907949.333, 1575907949.43006)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1575951040.641, 1575951041.011366)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1576080673.822, 1576080673.921502)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1576123692.161, 1576123692.549412)\n", + "('START_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1581005581.107, 1581005581.1834831)\n", + "('STOP_EVALUATION_PERIOD', 'MAMFDC v/s HAMFDC:HAMFDC', 1581048066.524, 1581048066.942445)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAMFDC', 'MAMFDC v/s MAHFDC:MAHFDC', 'HAHFDC v/s MAHFDC:MAHFDC', 'MAMFDC v/s HAMFDC:HAMFDC'}\n", + "Found 12 ranges for phone ucb-sdb-ios-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1563979640.882, 1563979641.0170379)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564026206.707, 1564026207.1437001)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564067100.311, 1564067100.3999)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564111947.765, 1564111948.22327)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564153782.297, 1564153782.391041)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564198563.679, 1564198564.1259341)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568128272.673, 1568128272.775363)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568171393.165, 1568171393.5412989)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568214652.708, 1568214652.77615)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568259349.726, 1568259350.099924)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568732813.894, 1568732813.98403)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1568775415.193, 1568775415.572669)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574179686.618, 1574179686.766109)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574222098.169, 1574222098.53771)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574266165.057, 1574266165.155801)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1574308913.816, 1574308914.195499)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575389637.901, 1575389637.998954)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575432787.798, 1575432788.184202)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575908051.372, 1575908051.454391)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1575951054.898, 1575951055.2406511)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576080686.668, 1576080686.7746549)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1576123708.992, 1576123709.36397)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581005599.699, 1581005599.791271)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1581048093.802, 1581048094.196096)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 12 ranges for phone ucb-sdb-ios-4\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill evaluation trips --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Lengths (accuracy, power, eval) = (2, 2, 2)\n", + "keys (accuracy, power, eval) = (dict_keys(['android', 'ios']), dict_keys(['android', 'ios']), dict_keys(['android', 'ios']))\n", + "eval_phone_keys (android, ios) = (dict_keys(['ucb-sdb-android-2', 'ucb-sdb-android-3']), dict_keys(['ucb-sdb-ios-2', 'ucb-sdb-ios-3']))\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_7\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_8\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_9\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_10\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_11\n", + "\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1563979902.072, 1563979902.185629)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1563989197.685, 1563989197.702858)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1564002736.67, 1564002736.706653)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1564003534.79, 1564003534.7931042)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564011427.592, 1564011427.662981)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564023559.653, 1564023559.661789)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564067188.159, 1564067188.267119)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564075724.227, 1564075724.244487)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1564088895.166, 1564088895.215784)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1564089714.683, 1564089714.693573)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564097591.052, 1564097591.145783)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564109968.34, 1564109968.351553)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564153874.742, 1564153874.820516)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1564162105.393, 1564162105.407298)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1564175793.475, 1564175793.511475)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1564176504.662, 1564176504.678987)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564182927.382, 1564182927.436353)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1564196388.126, 1564196388.141316)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568128359.304, 1568128359.439087)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568137039.787, 1568137039.789012)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1568147985.131, 1568147985.196231)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1568148713.608, 1568148713.609973)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568156969.985, 1568156970.1178)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568168558.862, 1568168558.863709)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568214737.442, 1568214737.541266)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568223465.749, 1568223465.7502651)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1568234793.686, 1568234793.7623649)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1568235522.084, 1568235522.086465)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568244359.403, 1568244359.496105)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568257066.808, 1568257066.810545)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568732881.609, 1568732881.759346)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1568741997.39, 1568741997.3921041)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1568753159.382, 1568753159.444274)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1568753916.403, 1568753916.4048119)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568761879.665, 1568761879.759616)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1568772840.639, 1568772840.649343)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574179769.014, 1574179769.176817)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574188370.449, 1574188370.450871)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1574199058.861, 1574199058.939198)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1574199814.33, 1574199814.331953)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574208747.917, 1574208747.999223)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574219738.492, 1574219738.499878)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_6\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574266253.688, 1574266253.826874)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1574274678.15, 1574274678.152474)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1574286383.335, 1574286383.419753)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1574287165.241, 1574287165.2431211)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574295435.535, 1574295435.6182032)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1574306492.009, 1574306492.010795)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_7\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575389709.861, 1575389709.999146)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575398091.289, 1575398091.291555)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1575411220.916, 1575411220.984645)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1575412027.488, 1575412027.489758)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575418479.856, 1575418479.999867)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575430485.348, 1575430485.349746)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_8\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575908071.661, 1575908071.75604)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1575916404.082, 1575916404.083811)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1575928741.584, 1575928741.664712)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1575929509.917, 1575929509.919419)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575936809.332, 1575936809.483522)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1575948199.122, 1575948199.123903)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_9\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1576080764.621, 1576080764.752437)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1576090424.993, 1576090424.995113)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1576102138.468, 1576102138.5671968)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1576102858.764, 1576102858.765902)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1576109913.556, 1576109913.636605)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1576120833.148, 1576120833.1499991)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_10\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "('START_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1581005686.316, 1581005686.468857)\n", + "('STOP_EVALUATION_TRIP', 'mtv_to_berkeley_sf_bart', 1581013808.721, 1581013808.723332)\n", + "('START_EVALUATION_TRIP', 'walk_urban_university', 1581023219.699, 1581023219.787174)\n", + "('STOP_EVALUATION_TRIP', 'walk_urban_university', 1581024049.283, 1581024049.2851791)\n", + "('START_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1581034644.694, 1581034644.789623)\n", + "('STOP_EVALUATION_TRIP', 'berkeley_to_mtv_SF_express_bus', 1581045370.668, 1581045370.669478)\n", + "All ranges are complete, nothing to change\n", + "{'berkeley_to_mtv_SF_express_bus', 'walk_urban_university', 'mtv_to_berkeley_sf_bart'}\n", + "ios: Found 3 trips for evaluation fixed:ACCURACY_CONTROL_11\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "-------------------- About to fill in evaluation sections --------------------\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1563979902.205, 1563979902.260114)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1563980934.67, 1563980934.763476)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1563980934.671, 1563980934.780724)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1563982148.697, 1563982148.848342)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1563982148.698, 1563982148.860445)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1563984650.62, 1563984650.761559)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1563984650.62, 1563984650.780916)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1563984825.011, 1563984825.011)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1563984825.022, 1563984825.022)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1563985155.01, 1563985155.011)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1563985155.02, 1563985155.021)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1563988430.771, 1563988430.908957)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1563988430.772, 1563988430.924944)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1563988713.787, 1563988713.883302)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1563988713.787, 1563988713.901051)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1563988716.577, 1563988716.643996)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1563988716.577, 1563988716.660172)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1563989114.807, 1563989114.900414)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1563989114.808, 1563989114.9193978)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1563989197.551, 1563989197.630923)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 1032.503361940384, , )\n", + "('wait_for_commuter_rail_aboveground_0', 1214.067617893219, , )\n", + "('commuter_rail_aboveground_0', 2501.901113986969, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 174.23008394241333, , )\n", + "('wait_for_subway_underground_0', 329.9889998435974, , )\n", + "('subway_underground_0', 3275.8879570961, , )\n", + "('walk_to_bus_0', 282.9583580493927, , )\n", + "('wait_for_city_bus_short_0', 2.7429449558258057, , )\n", + "('city_bus_short_0', 398.24024200439453, , )\n", + "('walk_end_0', 82.71152520179749, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1564002736.732, 1564002736.768461)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1564003534.681, 1564003534.739585)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 797.9711239337921, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1564011427.695, 1564011427.746717)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1564011714.476, 1564011714.618997)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564011714.477, 1564011714.6363091)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564012924.649, 1564012924.78658)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564012924.65, 1564012924.802222)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564013242.791, 1564013242.9099941)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1564013242.792, 1564013242.927007)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1564014033.252, 1564014033.389567)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1564014033.253, 1564014033.40662)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1564016387.875, 1564016387.877)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564016387.9, 1564016387.9)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564017012.56, 1564017012.630163)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564017012.561, 1564017012.6489391)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564017183.846, 1564017184.001481)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564017183.846, 1564017184.037243)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564017903.821, 1564017903.952633)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564017903.821, 1564017903.9669871)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564018116.39, 1564018116.5001988)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564018116.391, 1564018116.5166879)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564018366.458, 1564018366.613925)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564018366.459, 1564018366.62823)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564022441.126, 1564022441.259026)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564022441.126, 1564022441.275117)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564023559.496, 1564023559.601121)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 286.8722801208496, , )\n", + "('ebike_bikeshare_urban_long_0', 1210.1502709388733, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 318.1077721118927, , )\n", + "('wait_for_express_bus_0', 790.4625599384308, , )\n", + "('express_bus_0', 2354.4703800678253, , )\n", + "('walk_downtown_urban_canyon_0', 624.730162858963, , )\n", + "('wait_for_light_rail_below_above_ground_0', 171.35254192352295, , )\n", + "('light_rail_below_above_ground_0', 719.9153900146484, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 212.53321170806885, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 250.09723711013794, , )\n", + "('commuter_rail_with_tunnels_0', 4074.630795955658, , )\n", + "('inner_suburb_downtown_walk_0', 1118.3260040283203, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1564067188.288, 1564067188.346294)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1564068117.901, 1564068117.980966)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564068117.901, 1564068117.998847)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564068619.027, 1564068619.157057)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564068619.027, 1564068619.181421)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564070904.816, 1564070904.986106)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564070904.817, 1564070905.00417)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564071268.059, 1564071268.245504)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1564071268.06, 1564071268.2597919)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1564071559.91, 1564071560.0368419)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1564071559.911, 1564071560.053673)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1564074824.84, 1564074824.926834)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1564074824.841, 1564074824.940014)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1564075038.86, 1564075038.926701)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564075038.861, 1564075038.945013)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564075127.846, 1564075127.9485512)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1564075127.846, 1564075127.9729261)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1564075586.891, 1564075586.984802)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564075586.891, 1564075586.998524)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564075724.035, 1564075724.189588)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 929.634672164917, , )\n", + "('wait_for_commuter_rail_aboveground_0', 501.1582100391388, , )\n", + "('commuter_rail_aboveground_0', 2285.8046848773956, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 363.2413339614868, , )\n", + "('wait_for_subway_underground_0', 291.77705001831055, , )\n", + "('subway_underground_0', 3264.8731610774994, , )\n", + "('walk_to_bus_0', 213.98668718338013, , )\n", + "('wait_for_city_bus_short_0', 89.00353813171387, , )\n", + "('city_bus_short_0', 459.0118758678436, , )\n", + "('walk_end_0', 137.191064119339, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1564088895.233, 1564088895.27287)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1564089714.588, 1564089714.6430612)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 819.3701910972595, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1564097591.162, 1564097591.216469)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1564097792.238, 1564097792.373999)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564097792.238, 1564097792.3862739)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564098981.758, 1564098981.889492)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564098981.758, 1564098981.9045339)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564099143.408, 1564099143.5225492)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1564099143.408, 1564099143.5381908)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1564100498.72, 1564100498.945334)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1564100498.721, 1564100498.961628)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1564102888.507, 1564102888.591662)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564102888.507, 1564102888.610159)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564103494.874, 1564103494.967897)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564103494.875, 1564103494.982819)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564103548.185, 1564103548.300274)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564103548.185, 1564103548.319656)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564104305.542, 1564104305.70403)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564104305.543, 1564104305.72385)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564104469.606, 1564104469.733056)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564104469.606, 1564104469.7508678)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564104765.531, 1564104765.724967)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564104765.531, 1564104765.738415)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564108862.132, 1564108862.258852)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564108862.132, 1564108862.2746139)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564109968.217, 1564109968.298394)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 201.1575300693512, , )\n", + "('ebike_bikeshare_urban_long_0', 1189.5032181739807, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 161.61801528930664, , )\n", + "('wait_for_express_bus_0', 1355.4071431159973, , )\n", + "('express_bus_0', 2389.630033969879, , )\n", + "('walk_downtown_urban_canyon_0', 606.3577380180359, , )\n", + "('wait_for_light_rail_below_above_ground_0', 53.31745481491089, , )\n", + "('light_rail_below_above_ground_0', 757.3843741416931, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 164.00920605659485, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 295.9740991592407, , )\n", + "('commuter_rail_with_tunnels_0', 4096.520437002182, , )\n", + "('inner_suburb_downtown_walk_0', 1106.0237801074982, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1564153874.845, 1564153874.896019)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1564154664.943, 1564154665.101372)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564154664.955, 1564154665.11735)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1564155115.902, 1564155116.049901)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564155115.903, 1564155116.065814)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1564157521.032, 1564157521.181978)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564157521.032, 1564157521.202848)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1564157611.54, 1564157611.6071901)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1564157611.54, 1564157611.623952)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1564157983.901, 1564157983.901)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1564157983.911, 1564157983.911)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1564161220.853, 1564161220.982573)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1564161220.853, 1564161220.998692)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1564161441.545, 1564161441.614192)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564161441.545, 1564161441.631149)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1564161576.901, 1564161576.901)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1564161576.911, 1564161576.911)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1564162000.41, 1564162000.502118)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564162000.412, 1564162000.519351)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564162105.227, 1564162105.351388)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 790.2053530216217, , )\n", + "('wait_for_commuter_rail_aboveground_0', 450.932550907135, , )\n", + "('commuter_rail_aboveground_0', 2405.11616396904, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 90.40434217453003, , )\n", + "('wait_for_subway_underground_0', 372.2770481109619, , )\n", + "('subway_underground_0', 3237.0715730190277, , )\n", + "('walk_to_bus_0', 220.61549997329712, , )\n", + "('wait_for_city_bus_short_0', 135.26985096931458, , )\n", + "('city_bus_short_0', 423.5911180973053, , )\n", + "('walk_end_0', 104.8320369720459, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1564175793.529, 1564175793.5701408)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1564176504.541, 1564176504.6247559)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 711.054615020752, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1564182927.461, 1564182927.507062)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1564184312.165, 1564184312.3002892)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564184312.165, 1564184312.3130012)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1564185597.921, 1564185598.028778)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564185597.922, 1564185598.042931)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1564185827.422, 1564185827.539897)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1564185827.423, 1564185827.554669)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1564186723.26, 1564186723.407819)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1564186723.261, 1564186723.421236)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1564188690.51, 1564188690.5885491)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564188690.511, 1564188690.60222)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1564189244.467, 1564189244.5364761)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564189244.468, 1564189244.553443)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1564189817.21, 1564189817.409505)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564189817.21, 1564189817.438754)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1564190921.062, 1564190921.251579)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564190921.062, 1564190921.268532)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1564191065.457, 1564191065.557415)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564191065.458, 1564191065.574724)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1564191182.011, 1564191182.011)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564191182.015, 1564191182.015)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1564195277.566, 1564195277.682907)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564195277.566, 1564195277.6962361)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1564196387.976, 1564196388.057633)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 1384.7932271957397, , )\n", + "('ebike_bikeshare_urban_long_0', 1285.7157769203186, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 229.49696588516235, , )\n", + "('wait_for_express_bus_0', 895.8531501293182, , )\n", + "('express_bus_0', 1967.1673130989075, , )\n", + "('walk_downtown_urban_canyon_0', 553.9342560768127, , )\n", + "('wait_for_light_rail_below_above_ground_0', 572.8560619354248, , )\n", + "('light_rail_below_above_ground_0', 1103.8128249645233, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 144.28888297080994, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 116.43627595901489, , )\n", + "('commuter_rail_with_tunnels_0', 4095.667906999588, , )\n", + "('inner_suburb_downtown_walk_0', 1110.3613967895508, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1568128359.456, 1568128359.457977)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1568129225.711, 1568129225.8029618)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568129225.711, 1568129225.8229551)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568129418.135, 1568129418.256069)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568129418.136, 1568129418.269621)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568131633.282, 1568131633.381013)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568131633.282, 1568131633.395437)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568131775.669, 1568131775.7588081)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1568131775.669, 1568131775.778534)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1568132379.203, 1568132379.3260388)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1568132379.204, 1568132379.3405972)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1568135629.832, 1568135629.9102259)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1568135629.832, 1568135629.924252)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1568135932.941, 1568135933.0114589)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568135932.941, 1568135933.030817)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568136623.306, 1568136623.392667)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1568136623.307, 1568136623.415704)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1568136925.128, 1568136925.187604)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1568136925.128, 1568136925.2043839)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1568137039.661, 1568137039.769568)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 866.3449847698212, , )\n", + "('wait_for_commuter_rail_aboveground_0', 192.43311381340027, , )\n", + "('commuter_rail_aboveground_0', 2215.111392021179, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 142.36337113380432, , )\n", + "('wait_for_subway_underground_0', 603.547504901886, , )\n", + "('subway_underground_0', 3250.569628715515, , )\n", + "('walk_to_bus_0', 303.08720684051514, , )\n", + "('wait_for_city_bus_short_0', 690.3618500232697, , )\n", + "('city_bus_short_0', 301.7718999385834, , )\n", + "('walk_end_0', 114.56518411636353, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1568147985.21, 1568147985.211609)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1568148713.504, 1568148713.5903769)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 728.3787679672241, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1568156970.135, 1568156970.136897)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1568157454.673, 1568157454.818012)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568157454.674, 1568157454.838443)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568158783.275, 1568158783.377142)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568158783.276, 1568158783.3913279)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568159002.384, 1568159002.444278)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1568159002.385, 1568159002.462307)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1568159518.455, 1568159518.573839)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1568159518.455, 1568159518.586053)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1568161878.959, 1568161879.042319)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568161878.96, 1568161879.054672)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568162654.553, 1568162654.625458)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568162654.553, 1568162654.6394858)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568162861.649, 1568162861.758681)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568162861.649, 1568162861.774787)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568163677.061, 1568163677.226685)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568163677.061, 1568163677.2464828)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568163911.9928885, 1568163911.9928885)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568163911.9929984, 1568163911.9929984)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568164574.777, 1568164574.921455)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568164574.778, 1568164574.933717)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568167455.137, 1568167455.228725)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568167455.138, 1568167455.247277)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568168558.757, 1568168558.845121)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 484.6811149120331, , )\n", + "('ebike_bikeshare_urban_long_0', 1328.5386989116669, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 219.0529501438141, , )\n", + "('wait_for_express_bus_0', 516.1115319728851, , )\n", + "('express_bus_0', 2360.4562661647797, , )\n", + "('walk_downtown_urban_canyon_0', 775.5707859992981, , )\n", + "('wait_for_light_rail_below_above_ground_0', 207.11919522285461, , )\n", + "('light_rail_below_above_ground_0', 815.451898097992, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 234.74640560150146, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 662.9284565448761, , )\n", + "('commuter_rail_with_tunnels_0', 2880.295007944107, , )\n", + "('inner_suburb_downtown_walk_0', 1103.5978438854218, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1568214737.56, 1568214737.5622501)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1568215615.227, 1568215615.354403)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568215615.228, 1568215615.371259)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568215742.249, 1568215742.3900108)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568215742.25, 1568215742.407765)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568218034.714, 1568218034.838385)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568218034.714, 1568218034.8511539)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568218133.074, 1568218133.193851)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1568218133.074, 1568218133.211705)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1568218761.408, 1568218761.535503)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1568218761.409, 1568218761.551367)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1568222023.636, 1568222023.753432)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1568222023.637, 1568222023.771352)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1568222336.319, 1568222336.389893)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568222336.319, 1568222336.40583)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568223049.114, 1568223049.214051)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1568223049.114, 1568223049.2427502)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1568223317.873, 1568223317.940135)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1568223317.873, 1568223317.956558)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1568223465.635, 1568223465.7310638)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 877.7921528816223, , )\n", + "('wait_for_commuter_rail_aboveground_0', 127.01875185966492, , )\n", + "('commuter_rail_aboveground_0', 2292.4306201934814, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 98.34269714355469, , )\n", + "('wait_for_subway_underground_0', 628.3237979412079, , )\n", + "('subway_underground_0', 3262.2020649909973, , )\n", + "('walk_to_bus_0', 312.61854100227356, , )\n", + "('wait_for_city_bus_short_0', 712.8082211017609, , )\n", + "('city_bus_short_0', 268.69738483428955, , )\n", + "('walk_end_0', 147.77450585365295, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1568234793.774, 1568234793.776258)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1568235521.95, 1568235522.0351238)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 728.2588658332825, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1568244359.507, 1568244359.509249)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1568244750.373, 1568244750.497673)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568244750.374, 1568244750.5154362)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568245790.187, 1568245790.282)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568245790.188, 1568245790.296854)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568246014.58, 1568246014.639128)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1568246014.581, 1568246014.6523628)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1568247348.92, 1568247349.042203)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1568247348.92, 1568247349.096503)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1568249736.154, 1568249736.225675)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568249736.154, 1568249736.2411718)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568250412.649, 1568250412.718523)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568250412.649, 1568250412.732284)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568250424.187, 1568250424.2916179)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568250424.187, 1568250424.3074589)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568251288.378, 1568251288.494444)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568251288.378, 1568251288.511601)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568251587.095, 1568251587.228471)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568251587.096, 1568251587.2422771)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568251929.316, 1568251929.451809)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568251929.316, 1568251929.466166)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568256068.336, 1568256068.436887)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568256068.337, 1568256068.454493)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568257066.697, 1568257066.793347)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 390.9884240627289, , )\n", + "('ebike_bikeshare_urban_long_0', 1039.7665638923645, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 224.34227395057678, , )\n", + "('wait_for_express_bus_0', 1334.3898401260376, , )\n", + "('express_bus_0', 2387.1291720867157, , )\n", + "('walk_downtown_urban_canyon_0', 676.4773511886597, , )\n", + "('wait_for_light_rail_below_above_ground_0', 11.559333801269531, , )\n", + "('light_rail_below_above_ground_0', 864.1869850158691, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 298.7168700695038, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 342.2095317840576, , )\n", + "('commuter_rail_with_tunnels_0', 4138.970721006393, , )\n", + "('inner_suburb_downtown_walk_0', 998.3388538360596, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1568732881.774, 1568732881.775639)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1568733751.579, 1568733751.6681008)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568733751.579, 1568733751.683353)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1568734351.868, 1568734351.994272)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568734351.869, 1568734352.008291)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1568736841.872, 1568736841.984133)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568736841.873, 1568736842.000698)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1568736950.594, 1568736950.6617851)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1568736950.595, 1568736950.676742)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1568737147.771, 1568737147.891639)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1568737147.771, 1568737147.9041429)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1568740438.089, 1568740438.208461)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1568740438.089, 1568740438.228492)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1568740747.975, 1568740748.045597)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568740747.975, 1568740748.061996)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1568741647.399, 1568741647.519343)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1568741647.4, 1568741647.538996)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1568741880.365, 1568741880.434023)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1568741880.365, 1568741880.4528399)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1568741997.261, 1568741997.375945)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 869.8924617767334, , )\n", + "('wait_for_commuter_rail_aboveground_0', 600.310919046402, , )\n", + "('commuter_rail_aboveground_0', 2489.975841999054, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 108.66108703613281, , )\n", + "('wait_for_subway_underground_0', 197.21489691734314, , )\n", + "('subway_underground_0', 3290.304318189621, , )\n", + "('walk_to_bus_0', 309.81710505485535, , )\n", + "('wait_for_city_bus_short_0', 899.4573469161987, , )\n", + "('city_bus_short_0', 232.89502692222595, , )\n", + "('walk_end_0', 116.92310523986816, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1568753159.467, 1568753159.4697561)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1568753916.293, 1568753916.3857899)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 756.916033744812, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1568761879.775, 1568761879.7765179)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1568762200.869, 1568762200.9979339)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568762200.869, 1568762201.01174)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1568763357.923, 1568763358.020776)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568763357.924, 1568763358.037296)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1568763549.817, 1568763549.93485)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1568763549.818, 1568763549.952519)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1568764321.216, 1568764321.337923)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1568764321.217, 1568764321.3516688)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1568766321.931, 1568766322.011527)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568766321.932, 1568766322.0274282)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1568766965.558, 1568766965.636026)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568766965.559, 1568766965.6507568)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1568767350.838, 1568767350.952024)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568767350.839, 1568767350.9666572)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1568768042.62, 1568768042.750239)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568768042.621, 1568768042.767525)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1568768174.539, 1568768174.633939)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568768174.539, 1568768174.6494079)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1568768306.318, 1568768306.438633)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568768306.318, 1568768306.452539)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1568771859.691, 1568771859.7892752)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568771859.692, 1568771859.8035831)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1568772840.519, 1568772840.6211061)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 321.2214159965515, , )\n", + "('ebike_bikeshare_urban_long_0', 1157.009036064148, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 191.89755392074585, , )\n", + "('wait_for_express_bus_0', 771.3854041099548, , )\n", + "('express_bus_0', 2000.6598582267761, , )\n", + "('walk_downtown_urban_canyon_0', 643.6085977554321, , )\n", + "('wait_for_light_rail_below_above_ground_0', 385.3012671470642, , )\n", + "('light_rail_below_above_ground_0', 691.7835817337036, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 131.8664140701294, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 131.78922510147095, , )\n", + "('commuter_rail_with_tunnels_0', 3553.33673620224, , )\n", + "('inner_suburb_downtown_walk_0', 980.8175230026245, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1574179769.196, 1574179769.1979809)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1574180632.585, 1574180632.711004)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574180632.586, 1574180632.727952)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574181011.897, 1574181010.897)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574181011.897, 1574181010.897)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574183444.202, 1574183444.2987452)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574183444.203, 1574183444.316755)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574183542.497, 1574183542.5988889)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1574183542.498, 1574183542.615675)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1574183948.406, 1574183948.537239)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1574183948.407, 1574183948.5511642)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1574187229.882, 1574187229.969036)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1574187229.883, 1574187229.982356)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1574187518.688, 1574187518.747113)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574187518.688, 1574187518.763582)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574187964.946, 1574187965.0748801)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1574187964.946, 1574187965.110849)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1574188271.755, 1574188271.8153539)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1574188271.755, 1574188271.829221)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1574188370.328, 1574188370.431066)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 863.5130231380463, , )\n", + "('wait_for_commuter_rail_aboveground_0', 378.1690480709076, , )\n", + "('commuter_rail_aboveground_0', 2433.401745080948, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 98.28213381767273, , )\n", + "('wait_for_subway_underground_0', 405.92156410217285, , )\n", + "('subway_underground_0', 3281.417871952057, , )\n", + "('walk_to_bus_0', 288.7647569179535, , )\n", + "('wait_for_city_bus_short_0', 446.31129813194275, , )\n", + "('city_bus_short_0', 306.70450496673584, , )\n", + "('walk_end_0', 98.60184502601624, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1574199058.957, 1574199058.9590092)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1574199814.218, 1574199814.310667)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 755.3516578674316, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1574208748.015, 1574208748.01702)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1574209144.479, 1574209144.602025)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574209144.48, 1574209144.6219401)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574210399.536, 1574210399.648272)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574210399.537, 1574210399.6661391)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574210610.042, 1574210610.200918)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1574210610.043, 1574210610.219314)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1574211157.897, 1574211156.897)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1574211157.897, 1574211156.897)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1574213197.666, 1574213197.721724)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574213197.666, 1574213197.734812)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574213852.44, 1574213852.495171)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574213852.44, 1574213852.5104342)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574214132.94, 1574214133.0568728)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574214132.941, 1574214133.0755801)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574214958.203, 1574214958.3241138)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574214958.203, 1574214958.341655)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574215095.354, 1574215095.4499168)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574215095.354, 1574215095.467871)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574215114.618, 1574215114.74494)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574215114.619, 1574215114.7563372)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574218632.062, 1574218632.189211)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574218632.062, 1574218632.2073488)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574219738.37, 1574219738.473501)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 396.58500504493713, , )\n", + "('ebike_bikeshare_urban_long_0', 1255.0263319015503, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 210.53477883338928, , )\n", + "('wait_for_express_bus_0', 546.6776859760284, , )\n", + "('express_bus_0', 2040.8247239589691, , )\n", + "('walk_downtown_urban_canyon_0', 654.7603590488434, , )\n", + "('wait_for_light_rail_below_above_ground_0', 280.54643869400024, , )\n", + "('light_rail_below_above_ground_0', 825.2485337257385, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 137.10826182365417, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 19.277069091796875, , )\n", + "('commuter_rail_with_tunnels_0', 3517.432873725891, , )\n", + "('inner_suburb_downtown_walk_0', 1106.2661521434784, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1574266253.841, 1574266253.843056)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1574267240.011, 1574267240.12881)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574267240.012, 1574267240.14868)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1574267333.88, 1574267334.008919)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574267333.88, 1574267334.037313)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1574269695.476, 1574269695.597497)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574269695.476, 1574269695.616243)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1574269821.385, 1574269821.493391)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1574269821.386, 1574269821.509687)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1574270356.463, 1574270356.5916681)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1574270356.464, 1574270356.608511)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1574273636.589, 1574273636.69327)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1574273636.59, 1574273636.70922)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1574273926.171, 1574273926.233121)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574273926.171, 1574273926.252119)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1574274358.795, 1574274358.916769)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1574274358.796, 1574274358.946694)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1574274601.279, 1574274601.3438458)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1574274601.28, 1574274601.3594089)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1574274677.982, 1574274678.1278)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 986.2857539653778, , )\n", + "('wait_for_commuter_rail_aboveground_0', 93.86023902893066, , )\n", + "('commuter_rail_aboveground_0', 2361.5601840019226, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 125.8771481513977, , )\n", + "('wait_for_subway_underground_0', 535.0819811820984, , )\n", + "('subway_underground_0', 3280.0847589969635, , )\n", + "('walk_to_bus_0', 289.5239009857178, , )\n", + "('wait_for_city_bus_short_0', 432.6646499633789, , )\n", + "('city_bus_short_0', 242.39715194702148, , )\n", + "('walk_end_0', 76.76839113235474, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1574286383.437, 1574286383.452855)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1574287165.083, 1574287165.221789)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 781.7689337730408, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1574295435.631, 1574295435.632617)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1574295842.111, 1574295842.243928)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574295842.112, 1574295842.259553)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1574296928.095, 1574296928.1902351)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574296928.096, 1574296928.2130718)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1574297124.261, 1574297124.381939)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1574297124.261, 1574297124.396679)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1574298896.642, 1574298896.767448)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1574298896.643, 1574298896.7788792)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1574300864.614, 1574300864.683578)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574300864.614, 1574300864.699325)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1574301511.959, 1574301512.022079)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574301511.96, 1574301512.037335)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1574301547.263, 1574301547.338562)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574301547.263, 1574301547.3517919)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1574302321.817, 1574302321.948523)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574302321.818, 1574302321.9674768)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1574302488.405, 1574302488.503263)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574302488.406, 1574302488.5191932)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1574302584.286, 1574302584.4142652)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574302584.286, 1574302584.431006)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1574305391.374, 1574305391.476595)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574305391.375, 1574305391.492787)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1574306491.893, 1574306491.9954991)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 406.6113109588623, , )\n", + "('ebike_bikeshare_urban_long_0', 1085.930682182312, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 196.16886711120605, , )\n", + "('wait_for_express_bus_0', 1772.3707690238953, , )\n", + "('express_bus_0', 1967.9046988487244, , )\n", + "('walk_downtown_urban_canyon_0', 647.32275390625, , )\n", + "('wait_for_light_rail_below_above_ground_0', 35.30122709274292, , )\n", + "('light_rail_below_above_ground_0', 774.5967311859131, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 166.535786151886, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 95.8950719833374, , )\n", + "('commuter_rail_with_tunnels_0', 2807.0455889701843, , )\n", + "('inner_suburb_downtown_walk_0', 1100.5027122497559, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1575389710.012, 1575389710.013753)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1575390557.725, 1575390557.797813)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575390557.725, 1575390557.813025)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575390671.701, 1575390671.824874)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575390671.701, 1575390671.838859)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575393104.65, 1575393104.7474031)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575393104.65, 1575393104.760397)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575393371.493, 1575393371.5547519)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1575393371.494, 1575393371.570674)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1575393554.993, 1575393555.1622062)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1575393554.994, 1575393555.177682)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1575396891.459, 1575396891.5672112)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1575396891.46, 1575396891.585198)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1575397197.189, 1575397197.254668)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575397197.19, 1575397197.2696428)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575397704.796, 1575397704.8927789)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1575397704.796, 1575397704.907356)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1575397944.868, 1575397944.952499)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1575397944.869, 1575397944.9693341)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1575398091.136, 1575398091.275875)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 847.7840600013733, , )\n", + "('wait_for_commuter_rail_aboveground_0', 114.01184892654419, , )\n", + "('commuter_rail_aboveground_0', 2432.908544063568, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 266.7943549156189, , )\n", + "('wait_for_subway_underground_0', 183.5915322303772, , )\n", + "('subway_underground_0', 3336.3895292282104, , )\n", + "('walk_to_bus_0', 305.6694700717926, , )\n", + "('wait_for_city_bus_short_0', 507.6231360435486, , )\n", + "('city_bus_short_0', 240.04514288902283, , )\n", + "('walk_end_0', 146.30654096603394, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1575411220.999, 1575411221.001165)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1575412027.391, 1575412027.4755569)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 806.4743919372559, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1575418480.017, 1575418480.018688)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1575418852.431, 1575418852.553446)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575418852.432, 1575418852.571622)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575420112.41, 1575420112.4956799)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575420112.41, 1575420112.510627)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575420311.948, 1575420312.076577)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1575420311.949, 1575420312.09137)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1575422229.431, 1575422229.559617)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1575422229.432, 1575422229.5720282)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1575424441.593, 1575424441.647733)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575424441.593, 1575424441.662973)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575425032.055, 1575425032.112617)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575425032.055, 1575425032.129914)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575425071.292, 1575425071.4522982)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575425071.292, 1575425071.495168)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575425739.839, 1575425739.959332)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575425739.839, 1575425739.972456)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575425947.989, 1575425948.0993838)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575425947.99, 1575425948.148083)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575426214.9955425, 1575426214.995425)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575426214.9955425, 1575426214.995425)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575429358.258, 1575429358.3570461)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575429358.258, 1575429358.371612)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575430485.229, 1575430485.327901)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 372.5347580909729, , )\n", + "('ebike_bikeshare_urban_long_0', 1259.9240579605103, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 199.5659499168396, , )\n", + "('wait_for_express_bus_0', 1917.468246936798, , )\n", + "('express_bus_0', 2212.0757048130035, , )\n", + "('walk_downtown_urban_canyon_0', 590.4496440887451, , )\n", + "('wait_for_light_rail_below_above_ground_0', 39.32238411903381, , )\n", + "('light_rail_below_above_ground_0', 668.464164018631, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 208.12692785263062, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 266.84734201431274, , )\n", + "('commuter_rail_with_tunnels_0', 3143.3616211414337, , )\n", + "('inner_suburb_downtown_walk_0', 1126.9562888145447, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1575908071.776, 1575908071.7778401)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1575908934.32, 1575908934.4287481)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575908934.32, 1575908934.446835)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1575908956.399, 1575908956.518385)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575908956.4, 1575908956.5326672)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1575911221.124, 1575911221.2277498)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575911221.125, 1575911221.239619)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1575911360.05, 1575911360.119776)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1575911360.05, 1575911360.135001)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1575911949.343, 1575911949.4715881)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1575911949.343, 1575911949.48616)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1575915233.977, 1575915234.102242)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1575915233.978, 1575915234.115241)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1575915523.518, 1575915523.582602)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575915523.519, 1575915523.600668)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1575915983.617, 1575915983.734451)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1575915983.618, 1575915983.752368)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1575916286.563, 1575916286.629283)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1575916286.563, 1575916286.647674)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1575916403.953, 1575916404.062547)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 862.6509079933167, , )\n", + "('wait_for_commuter_rail_aboveground_0', 22.071549892425537, , )\n", + "('commuter_rail_aboveground_0', 2264.6950826644897, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 138.88015699386597, , )\n", + "('wait_for_subway_underground_0', 589.336587190628, , )\n", + "('subway_underground_0', 3284.6160819530487, , )\n", + "('walk_to_bus_0', 289.46736097335815, , )\n", + "('wait_for_city_bus_short_0', 460.1337831020355, , )\n", + "('city_bus_short_0', 302.87691497802734, , )\n", + "('walk_end_0', 117.41487288475037, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1575928741.679, 1575928741.680685)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1575929509.8, 1575929509.899955)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 768.219269990921, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1575936809.498, 1575936809.499685)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1575937206.07, 1575937206.154803)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575937206.071, 1575937206.170308)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1575938572.203, 1575938572.299881)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575938572.203, 1575938572.318942)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1575938737.334, 1575938737.4409451)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1575938737.335, 1575938737.458897)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1575939105.047, 1575939105.258172)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1575939105.048, 1575939105.271008)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1575941041.908, 1575941041.986855)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575941041.909, 1575941042.004503)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1575941722.578, 1575941722.639512)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575941722.578, 1575941722.656255)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1575942593.503, 1575942593.611716)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575942593.504, 1575942593.632485)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1575943650.248, 1575943650.352837)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575943650.249, 1575943650.369656)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1575943846.604, 1575943846.700728)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575943846.604, 1575943846.719356)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1575944185.549, 1575944185.678565)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575944185.549, 1575944185.695963)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1575947052.029, 1575947052.138833)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575947052.03, 1575947052.1525822)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1575948198.981, 1575948199.0729141)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 396.6551179885864, , )\n", + "('ebike_bikeshare_urban_long_0', 1366.1295728683472, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 165.1220030784607, , )\n", + "('wait_for_express_bus_0', 367.79927492141724, , )\n", + "('express_bus_0', 1936.7158470153809, , )\n", + "('walk_downtown_urban_canyon_0', 680.6350090503693, , )\n", + "('wait_for_light_rail_below_above_ground_0', 870.955461025238, , )\n", + "('light_rail_below_above_ground_0', 1056.7203521728516, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 196.3310718536377, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 338.9592089653015, , )\n", + "('commuter_rail_with_tunnels_0', 2866.4428701400757, , )\n", + "('inner_suburb_downtown_walk_0', 1146.920331954956, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1576080764.768, 1576080764.769524)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1576081719.516, 1576081719.6002588)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1576081719.516, 1576081719.613346)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1576081750.869, 1576081750.985812)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1576081750.87, 1576081750.999586)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1576084072.959, 1576084073.0620441)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1576084072.959, 1576084073.075906)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1576084193, 1576084193.066503)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1576084193.001, 1576084193.116282)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1576084758.995234, 1576084758.995234)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1576084758.995234, 1576084758.995234)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1576089116.165, 1576089116.3358278)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1576089116.166, 1576089116.348295)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1576089408.113, 1576089408.169499)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1576089408.113, 1576089408.1854072)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1576089934.74, 1576089934.855829)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1576089934.74, 1576089934.88463)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1576090303.958, 1576090304.031591)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1576090303.959, 1576090304.0487561)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1576090424.839, 1576090424.974391)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 954.8307347297668, , )\n", + "('wait_for_commuter_rail_aboveground_0', 31.37246584892273, , )\n", + "('commuter_rail_aboveground_0', 2322.06245803833, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 119.99059700965881, , )\n", + "('wait_for_subway_underground_0', 565.8789520263672, , )\n", + "('subway_underground_0', 4357.34059381485, , )\n", + "('walk_to_bus_0', 291.82120394706726, , )\n", + "('wait_for_city_bus_short_0', 526.6704218387604, , )\n", + "('city_bus_short_0', 369.1469609737396, , )\n", + "('walk_end_0', 120.92563486099243, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1576102138.581, 1576102138.5839372)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1576102858.665, 1576102858.7509608)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 720.1670236587524, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1576109913.651, 1576109913.6531029)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1576110266.9917374, 1576110266.9917374)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1576110266.9917374, 1576110266.9917374)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1576111473.9968104, 1576111473.9968104)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1576111473.9968104, 1576111473.9968104)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1576111656.844, 1576111656.97548)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1576111656.845, 1576111656.995975)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1576111830.094, 1576111830.211318)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1576111830.095, 1576111830.22807)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1576114356.13, 1576114356.1858)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1576114356.13, 1576114356.2003798)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1576114963.071, 1576114963.129798)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1576114963.072, 1576114963.149637)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1576115065.212, 1576115065.3405042)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1576115065.213, 1576115065.358482)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1576115966.628, 1576115966.7472801)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1576115966.628, 1576115966.764265)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1576116238.601, 1576116238.695193)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1576116238.601, 1576116238.713285)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1576116962.09, 1576116962.214097)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1576116962.09, 1576116962.230132)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1576119736.022, 1576119736.12637)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1576119736.022, 1576119736.1400042)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1576120833.027, 1576120833.133178)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 353.3386344909668, , )\n", + "('ebike_bikeshare_urban_long_0', 1207.0050730705261, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 182.9786696434021, , )\n", + "('wait_for_express_bus_0', 173.21534299850464, , )\n", + "('express_bus_0', 2525.9577300548553, , )\n", + "('walk_downtown_urban_canyon_0', 606.9294180870056, , )\n", + "('wait_for_light_rail_below_above_ground_0', 102.19086718559265, , )\n", + "('light_rail_below_above_ground_0', 901.3887982368469, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 271.93092799186707, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 723.5008120536804, , )\n", + "('commuter_rail_with_tunnels_0', 2773.896237850189, , )\n", + "('inner_suburb_downtown_walk_0', 1096.9931738376617, , )\n", + "('START_EVALUATION_SECTION', 'walk_to_caltrain', 1581005686.483, 1581005686.484885)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_caltrain', 1581006568.464, 1581006568.5455751)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1581006568.465, 1581006568.560254)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_aboveground', 1581006766.372, 1581006766.480669)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_aboveground', 1581006766.372, 1581006766.493425)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_aboveground', 1581008982.357, 1581008982.4554648)\n", + "('START_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1581008982.358, 1581008982.4730148)\n", + "('STOP_EVALUATION_SECTION', 'tt_commuter_rail_aboveground_subway_underground', 1581009144.263, 1581009144.364608)\n", + "('START_EVALUATION_SECTION', 'wait_for_subway_underground', 1581009144.264, 1581009144.380671)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_subway_underground', 1581009563.431, 1581009563.547101)\n", + "('START_EVALUATION_SECTION', 'subway_underground', 1581009563.431, 1581009563.561791)\n", + "('STOP_EVALUATION_SECTION', 'subway_underground', 1581012837.901, 1581012837.9862099)\n", + "('START_EVALUATION_SECTION', 'walk_to_bus', 1581012837.902, 1581012838)\n", + "('STOP_EVALUATION_SECTION', 'walk_to_bus', 1581013101.07, 1581013101.1649241)\n", + "('START_EVALUATION_SECTION', 'wait_for_city_bus_short', 1581013101.071, 1581013101.179121)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_city_bus_short', 1581013469.143, 1581013469.229927)\n", + "('START_EVALUATION_SECTION', 'city_bus_short', 1581013469.143, 1581013469.2499142)\n", + "('STOP_EVALUATION_SECTION', 'city_bus_short', 1581013738.823, 1581013738.8944879)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1581013738.823, 1581013738.91119)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1581013808.594, 1581013808.704881)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_aboveground', 'walk_to_bus', 'wait_for_city_bus_short', 'subway_underground', 'commuter_rail_aboveground', 'wait_for_subway_underground', 'walk_to_caltrain', 'city_bus_short', 'walk_end', 'tt_commuter_rail_aboveground_subway_underground'}\n", + "ios: Found 10 sections for evaluation mtv_to_berkeley_sf_bart_0\n", + "('walk_to_caltrain_0', 882.060690164566, , )\n", + "('wait_for_commuter_rail_aboveground_0', 197.92041492462158, , )\n", + "('commuter_rail_aboveground_0', 2215.9620399475098, , )\n", + "('tt_commuter_rail_aboveground_subway_underground_0', 161.89159321784973, , )\n", + "('wait_for_subway_underground_0', 419.1664299964905, , )\n", + "('subway_underground_0', 3274.424418926239, , )\n", + "('walk_to_bus_0', 263.1649241447449, , )\n", + "('wait_for_city_bus_short_0', 368.0508060455322, , )\n", + "('city_bus_short_0', 269.6445736885071, , )\n", + "('walk_end_0', 69.7936909198761, , )\n", + "('START_EVALUATION_SECTION', 'walk_urban_university', 1581023219.802, 1581023219.804801)\n", + "('STOP_EVALUATION_SECTION', 'walk_urban_university', 1581024049.178, 1581024049.2686338)\n", + "All ranges are complete, nothing to change\n", + "{'walk_urban_university'}\n", + "ios: Found 1 sections for evaluation walk_urban_university_0\n", + "('walk_urban_university_0', 829.4638328552246, , )\n", + "('START_EVALUATION_SECTION', 'walk to the bikeshare location', 1581034644.804, 1581034644.806316)\n", + "('STOP_EVALUATION_SECTION', 'walk to the bikeshare location', 1581035032.951, 1581035033.109107)\n", + "('START_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1581035032.952, 1581035033.124055)\n", + "('STOP_EVALUATION_SECTION', 'ebike_bikeshare_urban_long', 1581036348.885, 1581036348.9817)\n", + "('START_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1581036348.885, 1581036348.996716)\n", + "('STOP_EVALUATION_SECTION', 'tt_ebike_bikeshare_urban_long_express_bus', 1581036538.116, 1581036538.23107)\n", + "('START_EVALUATION_SECTION', 'wait_for_express_bus', 1581036538.116, 1581036538.245713)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_express_bus', 1581036665.686, 1581036665.801511)\n", + "('START_EVALUATION_SECTION', 'express_bus', 1581036665.686, 1581036665.813245)\n", + "('STOP_EVALUATION_SECTION', 'express_bus', 1581038884.793, 1581038884.870723)\n", + "('START_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1581038884.794, 1581038884.884715)\n", + "('STOP_EVALUATION_SECTION', 'walk_downtown_urban_canyon', 1581039494.471, 1581039494.5409498)\n", + "('START_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1581039494.472, 1581039494.5540261)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_light_rail_below_above_ground', 1581039513.571, 1581039513.67571)\n", + "('START_EVALUATION_SECTION', 'light_rail_below_above_ground', 1581039513.571, 1581039513.6940122)\n", + "('STOP_EVALUATION_SECTION', 'light_rail_below_above_ground', 1581040199.51, 1581040199.636063)\n", + "('START_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1581040199.511, 1581040199.650487)\n", + "('STOP_EVALUATION_SECTION', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 1581040394.255, 1581040394.362896)\n", + "('START_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1581040394.256, 1581040394.380787)\n", + "('STOP_EVALUATION_SECTION', 'wait_for_commuter_rail_with_tunnels', 1581040721.378, 1581040721.506589)\n", + "('START_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1581040721.378, 1581040721.520253)\n", + "('STOP_EVALUATION_SECTION', 'commuter_rail_with_tunnels', 1581044197.24, 1581044197.3355699)\n", + "('START_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1581044197.24, 1581044197.3491979)\n", + "('STOP_EVALUATION_SECTION', 'inner_suburb_downtown_walk', 1581045370.564, 1581045370.655577)\n", + "All ranges are complete, nothing to change\n", + "{'wait_for_commuter_rail_with_tunnels', 'walk to the bikeshare location', 'walk_downtown_urban_canyon', 'wait_for_light_rail_below_above_ground', 'inner_suburb_downtown_walk', 'ebike_bikeshare_urban_long', 'tt_light_rail_below_above_ground_commuter_rail_with_tunnels', 'wait_for_express_bus', 'express_bus', 'tt_ebike_bikeshare_urban_long_express_bus', 'light_rail_below_above_ground', 'commuter_rail_with_tunnels'}\n", + "ios: Found 12 sections for evaluation berkeley_to_mtv_SF_express_bus_0\n", + "('walk to the bikeshare location_0', 388.3027911186218, , )\n", + "('ebike_bikeshare_urban_long_0', 1315.85764503479, , )\n", + "('tt_ebike_bikeshare_urban_long_express_bus_0', 189.23435401916504, , )\n", + "('wait_for_express_bus_0', 127.55579805374146, , )\n", + "('express_bus_0', 2219.05747795105, , )\n", + "('walk_downtown_urban_canyon_0', 609.6562347412109, , )\n", + "('wait_for_light_rail_below_above_ground_0', 19.121683835983276, , )\n", + "('light_rail_below_above_ground_0', 685.9420509338379, , )\n", + "('tt_light_rail_below_above_ground_commuter_rail_with_tunnels_0', 194.71240901947021, , )\n", + "('wait_for_commuter_rail_with_tunnels_0', 327.1258020401001, , )\n", + "('commuter_rail_with_tunnels_0', 3475.815316915512, , )\n", + "('inner_suburb_downtown_walk_0', 1173.3063790798187, , )\n", + "-------------------- About to copy trip and section ranges --------------------\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_0\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_1\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_2\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_3\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_4\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_5\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_6\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_7\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_8\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_9\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_10\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "Before copying found 1/2 phones with ground truth for experiment of size 12\n", + "Uncopied ground truth of length 3 on found on phone ios\n", + "Copying 3 ranges to android, fixed:ACCURACY_CONTROL_11\n", + "After copying found 2/2 phones with ground truth for experiment of size 12\n", + "dict_keys(['ucb-sdb-android-1', 'ucb-sdb-android-2', 'ucb-sdb-android-3', 'ucb-sdb-android-4'])\n", + "Found accuracy control, skipping copy\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "dict_keys(['ucb-sdb-ios-1', 'ucb-sdb-ios-2', 'ucb-sdb-ios-3', 'ucb-sdb-ios-4'])\n", + "Found accuracy control, skipping copy\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9295.5172290802, , )\n", + "('walk_urban_university_0', 798.0864510536194, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12131.998807907104, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8535.977368116379, , )\n", + "('walk_urban_university_0', 819.4777889251709, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12377.205770015717, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8230.586781978607, , )\n", + "('walk_urban_university_0', 711.1675119400024, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 13460.704962968826, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8680.349925041199, , )\n", + "('walk_urban_university_0', 728.4137420654297, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11588.745908975601, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8728.208999156952, , )\n", + "('walk_urban_university_0', 728.3241000175476, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12707.314440011978, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9115.632758140564, , )\n", + "('walk_urban_university_0', 756.9605379104614, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10960.889727115631, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8601.274054050446, , )\n", + "('walk_urban_university_0', 755.3927550315857, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10990.500654935837, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8424.325599908829, , )\n", + "('walk_urban_university_0', 781.8233680725098, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11056.392591953278, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8381.292408943176, , )\n", + "('walk_urban_university_0', 806.5051131248474, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 12005.349879026413, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8332.32777094841, , )\n", + "('walk_urban_university_0', 768.2547070980072, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 11389.640381097794, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 9660.24267578125, , )\n", + "('walk_urban_university_0', 720.1987051963806, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10919.513394117355, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 3, before = 0\n", + "('mtv_to_berkeley_sf_bart_0', 8122.254474878311, , )\n", + "('walk_urban_university_0', 829.4980051517487, , )\n", + "('berkeley_to_mtv_SF_express_bus_0', 10725.879854917526, , )\n", + "-------------------- About to fill in battery information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in location information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in motion activity information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "Processing data for ios phones\n", + "-------------------- About to fill in transition information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "Processing data for ios phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "-------------------- About to select trip specific ranges --------------------\n", + "Filling label ucb-sdb-android-1 for OS android\n", + "Filling label ucb-sdb-android-2 for OS android\n", + "Filling label ucb-sdb-android-3 for OS android\n", + "Filling label ucb-sdb-android-4 for OS android\n", + "Filling label ucb-sdb-ios-1 for OS ios\n", + "Filling label ucb-sdb-ios-2 for OS ios\n", + "Filling label ucb-sdb-ios-3 for OS ios\n", + "Filling label ucb-sdb-ios-4 for OS ios\n", + "-------------------- Done populating information from server --------------------\n", + "-------------------- About to read transitions from server --------------------\n", + "Reading data for android phones\n", + "Loading transitions for phone ucb-sdb-android-1\n", + "Loading transitions for phone ucb-sdb-android-2\n", + "Loading transitions for phone ucb-sdb-android-3\n", + "Loading transitions for phone ucb-sdb-android-4\n", + "Reading data for ios phones\n", + "Loading transitions for phone ucb-sdb-ios-1\n", + "Loading transitions for phone ucb-sdb-ios-2\n", + "Loading transitions for phone ucb-sdb-ios-3\n", + "Loading transitions for phone ucb-sdb-ios-4\n", + "-------------------- About to fill calibration ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 0 calibration transitions \n", + "Processing data for android phones\n", + "---------- ucb-sdb-android-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-1\n", + "---------- ucb-sdb-android-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-2\n", + "---------- ucb-sdb-android-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-3\n", + "---------- ucb-sdb-android-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "---------- ucb-sdb-ios-1\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-1\n", + "---------- ucb-sdb-ios-2\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-2\n", + "---------- ucb-sdb-ios-3\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-3\n", + "---------- ucb-sdb-ios-4\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "Found 0 ranges of duration [] for phone ucb-sdb-ios-4\n", + "-------------------- About to fill evaluation ranges --------------------\n", + "Processing data for android phones\n", + "Processing transitions for phone ucb-sdb-android-1\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-2\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-3\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-android-4\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing data for ios phones\n", + "Processing transitions for phone ucb-sdb-ios-1\n", + "Filtered 1114 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-2\n", + "Filtered 88 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-3\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing transitions for phone ucb-sdb-ios-4\n", + "Filtered 86 total -> 12 calibration transitions \n", + "Processing data for android phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564274314.703, 1564274314.707)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564282393.38, 1564282393.429)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564334117.292, 1564334117.295)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564343045.844, 1564343045.9)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564351305.631, 1564351305.633)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564360156.337, 1564360156.392)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565571034.928, 1565571034.93)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565579009.94, 1565579009.992)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567271203.762, 1567271203.764)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567279427.902, 1567279427.961)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567288614.637, 1567288614.642)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567297340.873, 1567297340.931)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-android-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564274304.964, 1564274304.968)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564282402.797, 1564282402.886)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564334125.757, 1564334125.764)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564343114.995, 1564343115.071)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564351292.699, 1564351292.705)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1564360115.721, 1564360115.769)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565571044.18, 1565571044.182)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1565578986.721, 1565578986.772)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567271214.9, 1567271214.906)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567279427.902, 1567279427.961)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567288623.389, 1567288623.391)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1567297357.143, 1567297357.197)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC'}\n", + "Found 6 ranges for phone ucb-sdb-android-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564274288.317, 1564274288.319)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564282423.016, 1564282423.072)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564334097.326, 1564334097.33)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564343025.354, 1564343025.406)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564351277.476, 1564351277.477)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1564360134.114, 1564360134.181)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565571018.558, 1565571018.59)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1565578932.067, 1565578932.123)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567271178.819, 1567271178.821)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567279372.856, 1567279372.922)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567288638.5, 1567288638.503)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1567297394.787, 1567297394.837)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC'}\n", + "Found 6 ranges for phone ucb-sdb-android-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564274294.641, 1564274294.643)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564282430.409, 1564282430.466)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564334109.335, 1564334109.339)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564343036.806, 1564343036.862)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564351263.927, 1564351263.931)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564360071.356, 1564360071.417)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565571031.116, 1565571031.117)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565578943.815, 1565578943.865)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567271197.464, 1567271197.466)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567279384.632, 1567279384.692)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567288647.368, 1567288647.374)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567297374.866, 1567297374.928)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-android-4\n", + "Processing data for ios phones\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564274247.027, 1564274247.275763)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564282290.263, 1564282290.729272)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564333996.334, 1564333996.5363011)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564342974.992, 1564342975.472409)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564351245.906, 1564351246.07085)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1564359996.562, 1564359997.0496612)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565570971.091, 1565570971.32563)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1565578880.958, 1565578881.489321)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567271123.206, 1567271123.399004)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567279295.857, 1567279296.302381)\n", + "('START_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567288562.356, 1567288562.5305119)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:ACCURACY_CONTROL', 1567297289.683, 1567297290.194202)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:ACCURACY_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-ios-1\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564274252.329, 1564274252.429922)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564282305.17, 1564282305.5882301)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564334014.665, 1564334014.759484)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564342987.314, 1564342987.826695)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564351227.116, 1564351227.1936831)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:HAHFDC', 1564360024.097, 1564360024.574613)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565570980.374, 1565570980.468295)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1565578894.413, 1565578894.831118)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567271138.209, 1567271138.302989)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567279315.612, 1567279316.048905)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567288571.574, 1567288571.670926)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAHFDC', 1567297301.414, 1567297301.8416538)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAHFDC', 'HAHFDC v/s MAHFDC:HAHFDC'}\n", + "Found 6 ranges for phone ucb-sdb-ios-2\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564274265.117, 1564274265.212364)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564282322.101, 1564282322.549677)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564334083.878, 1564334084.0051398)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564342996.549, 1564342996.99437)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564351207.793, 1564351207.910284)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s MAHFDC:MAHFDC', 1564360052.904, 1564360053.314023)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565570999.334, 1565570999.409437)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1565578907.119, 1565578907.587743)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567271152.177, 1567271152.31305)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567279337.265, 1567279337.681006)\n", + "('START_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567288581.602, 1567288581.6808891)\n", + "('STOP_EVALUATION_PERIOD', 'HAHFDC v/s HAMFDC:HAMFDC', 1567297315.554, 1567297316.01469)\n", + "All ranges are complete, nothing to change\n", + "{'HAHFDC v/s HAMFDC:HAMFDC', 'HAHFDC v/s MAHFDC:MAHFDC'}\n", + "Found 6 ranges for phone ucb-sdb-ios-3\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564274275.916, 1564274276.021558)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564282331.795, 1564282332.15351)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564334069.022, 1564334069.1049929)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564343007.324, 1564343007.721693)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564351193.165, 1564351193.2504249)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1564360033.509, 1564360033.887364)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565570989.614, 1565570989.744656)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1565578915.403, 1565578915.798939)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567271164.674, 1567271164.779111)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567279350.381, 1567279350.7691588)\n", + "('START_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567288593.275, 1567288593.3784451)\n", + "('STOP_EVALUATION_PERIOD', 'fixed:POWER_CONTROL', 1567297325.117, 1567297325.508904)\n", + "All ranges are complete, nothing to change\n", + "{'fixed:POWER_CONTROL'}\n", + "Found 6 ranges for phone ucb-sdb-ios-4\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill evaluation trips --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Lengths (accuracy, power, eval) = (2, 2, 2)\n", + "keys (accuracy, power, eval) = (dict_keys(['android', 'ios']), dict_keys(['android', 'ios']), dict_keys(['android', 'ios']))\n", + "eval_phone_keys (android, ios) = (dict_keys(['ucb-sdb-android-2', 'ucb-sdb-android-3']), dict_keys(['ucb-sdb-ios-2', 'ucb-sdb-ios-3']))\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "\n", + "\n", + "All ranges are complete, nothing to change\n", + "set()\n", + "android: Found 0 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564274334.097, 1564274334.143985)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564275296.5, 1564275296.504297)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1564279157.404, 1564279157.435039)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1564280457.454, 1564280457.464819)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_city_driving_weekend', 'suburb_bicycling'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564334343.713, 1564334343.776588)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564335144.075, 1564335144.0807219)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1564339686.632, 1564339686.675345)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1564340984.813, 1564340984.8298311)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_city_driving_weekend', 'suburb_bicycling'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_1\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564351324.911, 1564351324.965219)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1564352210.52, 1564352210.532115)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1564356822.001, 1564356822.064345)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1564358080.307, 1564358080.320724)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_city_driving_weekend', 'suburb_bicycling'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_2\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1565571079.137, 1565571079.220633)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1565572029.677, 1565572029.679044)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1565575844.795, 1565575844.86444)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1565577104.678, 1565577104.679491)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_city_driving_weekend', 'suburb_bicycling'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_3\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567271247.478, 1567271247.557744)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567272188.472, 1567272188.473621)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1567276250.095, 1567276250.1663961)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1567277558.77, 1567277558.77193)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_city_driving_weekend', 'suburb_bicycling'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_4\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "('START_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567288662.724, 1567288662.7980719)\n", + "('STOP_EVALUATION_TRIP', 'suburb_city_driving_weekend', 1567289688.795, 1567289688.798746)\n", + "('START_EVALUATION_TRIP', 'suburb_bicycling', 1567294205.224, 1567294205.301877)\n", + "('STOP_EVALUATION_TRIP', 'suburb_bicycling', 1567295493.717, 1567295493.719355)\n", + "All ranges are complete, nothing to change\n", + "{'suburb_city_driving_weekend', 'suburb_bicycling'}\n", + "ios: Found 2 trips for evaluation fixed:ACCURACY_CONTROL_5\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "-------------------- About to fill in evaluation sections --------------------\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564274334.164, 1564274334.1926432)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564274403.167, 1564274403.3032)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564274403.168, 1564274403.318182)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564275146.671, 1564275146.823849)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564275146.672, 1564275146.843096)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564275296.359, 1564275296.450234)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'suburb_city_driving_weekend', 'walk_start'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 69.1105568408966, , )\n", + "('suburb_city_driving_weekend_0', 743.5056669712067, , )\n", + "('walk_end_0', 149.6071379184723, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564279157.454, 1564279157.495898)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564279266.482, 1564279266.611826)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1564279266.482, 1564279266.626976)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1564280430.855, 1564280431.0447721)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564280430.858, 1564280431.060968)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564280457.294, 1564280457.402429)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 109.1159279346466, , )\n", + "('suburb_bicycling_0', 1164.4177961349487, , )\n", + "('walk_end_0', 26.341461181640625, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564334343.814, 1564334343.849936)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564334440.991, 1564334441.1367059)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564334440.991, 1564334441.1543741)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564335067.619, 1564335067.707838)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564335067.619, 1564335067.72556)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564335143.963, 1564335144.027879)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'suburb_city_driving_weekend', 'walk_start'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 97.28676986694336, , )\n", + "('suburb_city_driving_weekend_0', 626.553463935852, , )\n", + "('walk_end_0', 76.3023190498352, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564339686.694, 1564339686.740189)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564339729.446, 1564339729.558238)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1564339729.447, 1564339729.5745811)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1564340956.308, 1564340956.4001331)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564340956.309, 1564340956.420092)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564340984.676, 1564340984.770471)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 42.81804895401001, , )\n", + "('suburb_bicycling_0', 1226.8255519866943, , )\n", + "('walk_end_0', 28.35037899017334, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564351324.989, 1564351325.023067)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564351473.255, 1564351473.412651)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564351473.255, 1564351473.431247)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1564352106.152, 1564352106.261671)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564352106.154, 1564352106.274094)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564352210.414, 1564352210.4803581)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'suburb_city_driving_weekend', 'walk_start'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 148.38958406448364, , )\n", + "('suburb_city_driving_weekend_0', 632.8304240703583, , )\n", + "('walk_end_0', 104.20626401901245, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1564356822.09, 1564356822.1187859)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1564356889.402, 1564356889.523539)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1564356889.403, 1564356889.550396)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1564358050.089, 1564358050.176182)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1564358050.09, 1564358050.1955462)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1564358080.215, 1564358080.2698169)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 67.4047532081604, , )\n", + "('suburb_bicycling_0', 1160.6257860660553, , )\n", + "('walk_end_0', 30.074270725250244, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565571079.241, 1565571079.242693)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565571175.609, 1565571175.7620249)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1565571175.61, 1565571175.782531)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1565571953.681, 1565571953.7665071)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565571953.682, 1565571953.78511)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565572029.568, 1565572029.659311)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'suburb_city_driving_weekend', 'walk_start'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 96.51933193206787, , )\n", + "('suburb_city_driving_weekend_0', 777.9839761257172, , )\n", + "('walk_end_0', 75.87420105934143, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1565575844.881, 1565575844.882667)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1565575867.91, 1565575868.047845)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1565575867.911, 1565575868.070318)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1565577083.089, 1565577083.179348)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1565577083.089, 1565577083.196254)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1565577104.556, 1565577104.662489)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 23.165177822113037, , )\n", + "('suburb_bicycling_0', 1215.109030008316, , )\n", + "('walk_end_0', 21.466234922409058, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567271247.575, 1567271247.576847)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567271392.479, 1567271392.611938)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567271392.48, 1567271392.6307611)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567272089.491, 1567272089.573759)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567272089.491, 1567272089.591776)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567272188.343, 1567272188.458191)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'suburb_city_driving_weekend', 'walk_start'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 145.03509092330933, , )\n", + "('suburb_city_driving_weekend_0', 696.9429979324341, , )\n", + "('walk_end_0', 98.86641502380371, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567276250.181, 1567276250.1824331)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567276325.344, 1567276325.466161)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1567276325.345, 1567276325.4886708)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1567277505.849, 1567277505.958387)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567277505.849, 1567277505.978064)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567277558.647, 1567277558.7505531)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 75.2837278842926, , )\n", + "('suburb_bicycling_0', 1180.4697160720825, , )\n", + "('walk_end_0', 52.772489070892334, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567288662.816, 1567288662.817456)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567288779.265, 1567288779.377613)\n", + "('START_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567288779.266, 1567288779.394477)\n", + "('STOP_EVALUATION_SECTION', 'suburb_city_driving_weekend', 1567289562.833, 1567289562.940675)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567289562.834, 1567289562.955183)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567289688.68, 1567289688.778185)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'suburb_city_driving_weekend', 'walk_start'}\n", + "ios: Found 3 sections for evaluation suburb_city_driving_weekend_0\n", + "('walk_start_0', 116.56015706062317, , )\n", + "('suburb_city_driving_weekend_0', 783.5461981296539, , )\n", + "('walk_end_0', 125.82300186157227, , )\n", + "('START_EVALUATION_SECTION', 'walk_start', 1567294205.316, 1567294205.318416)\n", + "('STOP_EVALUATION_SECTION', 'walk_start', 1567294272.897, 1567294273.010757)\n", + "('START_EVALUATION_SECTION', 'suburb_bicycling', 1567294272.898, 1567294273.024204)\n", + "('STOP_EVALUATION_SECTION', 'suburb_bicycling', 1567295465.83, 1567295465.923053)\n", + "('START_EVALUATION_SECTION', 'walk_end', 1567295465.831, 1567295465.9380589)\n", + "('STOP_EVALUATION_SECTION', 'walk_end', 1567295493.602, 1567295493.7019649)\n", + "All ranges are complete, nothing to change\n", + "{'walk_end', 'walk_start', 'suburb_bicycling'}\n", + "ios: Found 3 sections for evaluation suburb_bicycling_0\n", + "('walk_start_0', 67.69234085083008, , )\n", + "('suburb_bicycling_0', 1192.8988490104675, , )\n", + "('walk_end_0', 27.763906002044678, , )\n", + "-------------------- About to copy trip and section ranges --------------------\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_0\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_1\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_2\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_3\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_4\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "Before copying found 1/2 phones with ground truth for experiment of size 6\n", + "Uncopied ground truth of length 2 on found on phone ios\n", + "Copying 2 ranges to android, fixed:ACCURACY_CONTROL_5\n", + "After copying found 2/2 phones with ground truth for experiment of size 6\n", + "dict_keys(['ucb-sdb-android-1', 'ucb-sdb-android-2', 'ucb-sdb-android-3', 'ucb-sdb-android-4'])\n", + "Found accuracy control, skipping copy\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "android: Copying ucb-sdb-android-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "android: Copying ucb-sdb-android-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "android: Copying ucb-sdb-android-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "dict_keys(['ucb-sdb-ios-1', 'ucb-sdb-ios-2', 'ucb-sdb-ios-3', 'ucb-sdb-ios-4'])\n", + "Found accuracy control, skipping copy\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "ios: Copying ucb-sdb-ios-2 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "ios: Copying ucb-sdb-ios-3 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 962.3603119850159, , )\n", + "('suburb_bicycling_0', 1300.0297799110413, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 800.3041338920593, , )\n", + "('suburb_bicycling_0', 1298.1544861793518, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 885.5668959617615, , )\n", + "('suburb_bicycling_0', 1258.2563791275024, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 950.4584109783173, , )\n", + "('suburb_bicycling_0', 1259.8150510787964, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 940.915876865387, , )\n", + "('suburb_bicycling_0', 1308.605533838272, , )\n", + "ios: Copying ucb-sdb-ios-4 accuracy trips to 2, before = 0\n", + "('suburb_city_driving_weekend_0', 1026.0006742477417, , )\n", + "('suburb_bicycling_0', 1288.4174780845642, , )\n", + "-------------------- About to fill in battery information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in location information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "-------------------- About to fill in motion activity information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "motion activity has not been processed, copying write_ts -> ts\n", + "Processing data for ios phones\n", + "-------------------- About to fill in transition information --------------------\n", + "Processing data for android phones\n", + "Processing data for ios phones\n", + "Processing data for android phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "Processing data for ios phones\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "transition has not been processed, creating ts -> fmt_time\n", + "-------------------- About to select trip specific ranges --------------------\n", + "Filling label ucb-sdb-android-1 for OS android\n", + "Filling label ucb-sdb-android-2 for OS android\n", + "Filling label ucb-sdb-android-3 for OS android\n", + "Filling label ucb-sdb-android-4 for OS android\n", + "Filling label ucb-sdb-ios-1 for OS ios\n", + "Filling label ucb-sdb-ios-2 for OS ios\n", + "Filling label ucb-sdb-ios-3 for OS ios\n", + "Filling label ucb-sdb-ios-4 for OS ios\n", + "-------------------- Done populating information from server --------------------\n", + "created all tasks for ucb-sdb-android-1 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-2 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-3 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-4 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-1 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-2 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-3 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-ios-4 on car_scooter_brex_san_jose\n", + "created all tasks for ucb-sdb-android-1 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-2 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-3 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-4 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-1 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-2 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-3 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-ios-4 on train_bus_ebike_mtv_ucb\n", + "created all tasks for ucb-sdb-android-1 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-android-2 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-android-3 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-android-4 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-1 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-2 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-3 on unimodal_trip_car_bike_mtv_la\n", + "created all tasks for ucb-sdb-ios-4 on unimodal_trip_car_bike_mtv_la\n" + ] + } + ], + "source": [ + "tasks = create_tasks(pvs, DATASTORE_LOC)\n", + "tasks.sort(key=lambda p: (p.view, p.trip_name, p.section_name, p.os, p.phone_number, p.evaluation_range))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "116bb951", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "VIEW: view PHONE: os-# TRIP: trip_name SECTION: section_name EVAL: ## MODE: pred_mode | act_mode \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: CAR | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 0 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 1 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 2 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 3 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 4 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 5 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_bus_rapid_transit EVAL: 6 MODE: BUS | BUS \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: CAR | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: CAR | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 0 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 1 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 2 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 3 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 4 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 5 MODE: BIKE | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: city_escooter EVAL: 6 MODE: WALK | ESCOOTER \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-4 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: CAR | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_back_from_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 5 MODE: CAR | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: bus trip with e-scooter access SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: BIKE | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: BIKE | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: BIKE | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 0 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 1 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 2 MODE: BUS | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 3 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 4 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 5 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: freeway_driving_weekday EVAL: 6 MODE: CAR | CAR \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: BUS | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: BUS | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-2 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-2 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: android-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-1 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: car_scooter_brex_san_jose PHONE: ios-3 TRIP: freeway_driving_weekday SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 0 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 1 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 2 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 3 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 5 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 6 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 8 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 9 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 10 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 11 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 0 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 1 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 2 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 3 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 5 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 6 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 7 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 8 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 9 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 10 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 11 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 0 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 1 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 2 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 3 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 5 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 6 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 8 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 9 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 10 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 11 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 0 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 1 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 2 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 3 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 5 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 6 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 8 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 9 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 10 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 11 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 0 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 1 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 2 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 3 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 5 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 6 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 7 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 8 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 9 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 10 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 11 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 0 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 1 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 2 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 3 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 5 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 6 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 7 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 8 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 9 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 10 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: commuter_rail_with_tunnels EVAL: 11 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 0 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 1 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 2 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 3 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 4 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 5 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 6 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 7 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 8 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 9 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 10 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 11 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 0 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 1 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 2 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 3 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 4 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 5 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 6 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 7 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 8 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 9 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 10 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 11 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 0 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 1 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 2 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 3 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 4 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 5 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 6 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 7 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 8 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 9 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 10 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 11 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 0 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 1 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 2 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 3 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 4 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 5 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 6 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 7 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 8 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 9 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 10 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 11 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 0 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 1 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 2 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 3 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 4 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 5 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 7 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 9 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 10 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 0 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 1 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 2 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 3 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 4 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 5 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 6 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 7 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 8 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 9 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 10 MODE: WALK | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: ebike_bikeshare_urban_long EVAL: 11 MODE: BIKE | E_BIKE \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 0 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 2 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 0 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 2 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 0 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 2 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 0 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 2 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 0 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 2 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 6 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 8 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 11 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 0 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 2 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: express_bus EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 1 MODE: BUS | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 8 MODE: BUS | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 11 MODE: BUS | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: inner_suburb_downtown_walk EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 0 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 1 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 2 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 3 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 4 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 5 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 6 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 7 MODE: CAR | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 8 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 9 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 10 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 11 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 0 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 1 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 2 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 3 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 4 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 5 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 6 MODE: CAR | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 7 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 8 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 9 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 10 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 11 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 0 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 1 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 2 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 3 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 4 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 5 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 6 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 7 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 8 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 9 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 10 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 11 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 0 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 1 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 2 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 3 MODE: CAR | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 4 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 5 MODE: CAR | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 6 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 7 MODE: BIKE | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 8 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 9 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 10 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 11 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 0 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 1 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 2 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 3 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 4 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 5 MODE: CAR | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 6 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 7 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 8 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 9 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 10 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 11 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 0 MODE: CAR | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 1 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 2 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 3 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 4 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 5 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 6 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 7 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 8 MODE: WALK | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 9 MODE: BUS | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 10 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: light_rail_below_above_ground EVAL: 11 MODE: LIGHT_RAIL | LIGHT_RAIL \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk to the bikeshare location EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 1 MODE: CAR | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-4 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 0 MODE: BIKE | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: berkeley_to_mtv_SF_express_bus SECTION: walk_downtown_urban_canyon EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 0 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 1 MODE: BIKE | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 2 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 3 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 4 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 6 MODE: BIKE | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 0 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 1 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 2 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 8 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 0 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 2 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 0 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 1 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 2 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 4 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 5 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 6 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 0 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 1 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 2 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 3 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 4 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 5 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 9 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 0 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 1 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 2 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 3 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 4 MODE: CAR | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 5 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 6 MODE: WALK | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 7 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 8 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 9 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 10 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: city_bus_short EVAL: 11 MODE: BUS | BUS \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 0 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 1 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 2 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 3 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 5 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 6 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 8 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 9 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 10 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 11 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 0 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 1 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 2 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 3 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 5 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 6 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 8 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 9 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 10 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 11 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 0 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 1 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 2 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 3 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 5 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 6 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 8 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 9 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 10 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 11 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 0 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 1 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 2 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 3 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 4 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 5 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 6 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 8 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 9 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 10 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 11 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 0 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 1 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 2 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 3 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 4 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 5 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 6 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 7 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 8 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 9 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 10 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 11 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 0 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 1 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 2 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 3 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 4 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 5 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 6 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 7 MODE: BUS | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 8 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 9 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 10 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: commuter_rail_aboveground EVAL: 11 MODE: TRAIN | TRAIN \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 0 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 1 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 2 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 3 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 4 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 5 MODE: SUBWAY | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 6 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 7 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 8 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 9 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 10 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 11 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 0 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 1 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 2 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 3 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 4 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 5 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 6 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 7 MODE: SUBWAY | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 8 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 9 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 10 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 11 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 0 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 1 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 2 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 3 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 4 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 5 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 6 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 7 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 8 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 9 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 10 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 11 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 0 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 1 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 2 MODE: WALK | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 3 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 4 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 5 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 6 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 7 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 8 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 9 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 10 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 11 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 0 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 1 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 2 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 3 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 4 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 5 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 6 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 7 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 8 MODE: SUBWAY | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 9 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 10 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 11 MODE: LIGHT_RAIL | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 0 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 1 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 2 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 3 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 4 MODE: TRAIN | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 5 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 6 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 7 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 8 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 9 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 10 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: subway_underground EVAL: 11 MODE: BUS | SUBWAY \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 5 MODE: BUS | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_end EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 8 MODE: BUS | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_bus EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-4 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: mtv_to_berkeley_sf_bart SECTION: walk_to_caltrain EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: android-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-1 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-2 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 6 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 7 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 8 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 9 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 10 MODE: WALK | WALKING \n", + "VIEW: train_bus_ebike_mtv_ucb PHONE: ios-3 TRIP: walk_urban_university SECTION: walk_urban_university EVAL: 11 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 0 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 1 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 2 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 3 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 4 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 5 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 0 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 1 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 2 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 3 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 4 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 5 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 0 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 1 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 2 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 3 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 4 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 5 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 0 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 1 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 2 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 3 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 4 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 5 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 0 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 1 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 2 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 3 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 4 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 5 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 0 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 1 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 2 MODE: WALK | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 3 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 4 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: suburb_bicycling EVAL: 5 MODE: BIKE | BICYCLING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_bicycling SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_bicycling SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_bicycling SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_bicycling SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 0 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 1 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 2 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 3 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 4 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 5 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 0 MODE: BIKE | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 1 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 2 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 3 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 4 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 5 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 0 MODE: BUS | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 1 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 2 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 3 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 4 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 5 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 0 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 1 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 2 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 3 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 4 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 5 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 0 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 1 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 2 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 3 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 5 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 1 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 2 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 3 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 4 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: suburb_city_driving_weekend EVAL: 5 MODE: CAR | CAR \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 5 MODE: BIKE | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 2 MODE: CAR | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 1 MODE: CAR | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 2 MODE: CAR | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 3 MODE: BUS | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-2 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 1 MODE: CAR | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 2 MODE: CAR | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-3 TRIP: suburb_city_driving_weekend SECTION: walk_end EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: android-2 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 0 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 1 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 2 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 3 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 4 MODE: WALK | WALKING \n", + "VIEW: unimodal_trip_car_bike_mtv_la PHONE: ios-1 TRIP: suburb_city_driving_weekend SECTION: walk_start EVAL: 5 MODE: WALK | WALKING \n" + ] + } + ], + "source": [ + "print(f'VIEW: {\"view\".ljust(30)}PHONE: {\"os-#\".ljust(12)}TRIP: {\"trip_name\".ljust(40)}SECTION: {\"section_name\".ljust(40)}EVAL: ## MODE: {\"pred_mode\".ljust(11)}| {\"act_mode\".ljust(11)}')\n", + "\n", + "map_data = {}\n", + "for task in tasks:\n", + " task.map_match(map_data, choose_best)\n", + " print(str(task))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "aeb439b6", + "metadata": {}, + "outputs": [], + "source": [ + "actual_predicted_name_map = {'WALKING': 'WALK', 'BICYCLING': 'BIKE'}\n", + "predicted_sensed_name_map = {'ESCOOTER': 1, 'WALKING': 2, 'E_BIKE': 1, 'BICYCLING': 1, 'CAR': 0, 'BUS': 0, 'LIGHT_RAIL': 0, 'TRAIN': 0, 'SUBWAY': 0}\n", + "\n", + "def is_prediction_correct(row):\n", + " task = row[0]\n", + " if task.actual_mode in actual_predicted_name_map:\n", + " actual_mode = actual_predicted_name_map[task.actual_mode]\n", + " else:\n", + " actual_mode = task.actual_mode\n", + " return actual_mode == task.predicted_mode\n", + "\n", + "def get_section_time(row):\n", + " task = row[0]\n", + " return task.locations.iloc[-1]['ts'] - task.locations.iloc[0]['ts']\n", + "\n", + "for task in tasks:\n", + " if task.predicted_mode == None:\n", + " tasks.remove(task)\n", + "\n", + "def get_os(row):\n", + " return row[0].os\n", + "\n", + "def get_trip(row):\n", + " return row[0].stripped_trip_name\n", + "\n", + "def get_predicted_mode(row):\n", + " return row[0].predicted_mode\n", + "\n", + "def get_actual_mode(row):\n", + " task = row[0]\n", + " if task.actual_mode in actual_predicted_name_map:\n", + " actual_mode = actual_predicted_name_map[task.actual_mode]\n", + " else:\n", + " actual_mode = task.actual_mode\n", + " \n", + " return actual_mode\n", + "\n", + "def weighted_avg(group):\n", + " weights = group['time_taken']\n", + " values = group['is_correct']\n", + " return (values * weights).sum() / weights.sum()\n", + "\n", + "df = pd.DataFrame(tasks)\n", + "df['is_correct'] = df.apply(is_prediction_correct, axis=1)\n", + "df['time_taken'] = df.apply(get_section_time, axis=1)\n", + "df['os'] = df.apply(get_os, axis=1)\n", + "df['trip'] = df.apply(get_trip, axis=1)\n", + "df['predicted_mode'] = df.apply(get_predicted_mode, axis=1)\n", + "df['actual_mode'] = df.apply(get_actual_mode, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "41b694d5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+UAAAKtCAYAAABBv88/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADmIUlEQVR4nOzdfVxUdfr/8fdhuBEQIU1BhBQMbzI1TdfSUrvBm6zN3HJb29KytLU7q81vZTdYhmWt2WZb2Y26ta5lZdtuZdpm2i6VN2GmebuQ94SaAiqBMJ/fH/44MM6gYDMcGF/Px4OHcs3hzHXNnJnPueYz5xzLGGMEAAAAAADqXIjTCQAAAAAAcKqiKQcAAAAAwCE05QAAAAAAOISmHAAAAAAAh9CUAwAAAADgEJpyAAAAAAAcQlMOAAAAAIBDaMoBAAAAAHAITTkAAAAAAA6hKa8Do0ePlmVZ9s+kSZOcTglBZPXq1crIyFBGRoY+//zzGv9dxfbYpk2bgOXmy48//qiJEyeqe/fuio2NVUREhFq1aqWrrrpK//znP+s0F387cOCA/VzMnj3b6/aMjAz7cfd1e13Lz8/XXXfdpbS0NDVq1EjR0dFKSkpSnz599Ic//EG7d+8O6P3/8MMP9uP1/vvvB/S+ANQd9nsQSA1hv6d///4er4Hj/WRkZBx3XaNGjbKXrU29aFhCnU4g2B0+fFjz58/3iM2ZM0ePPPKILMtyKCsEk9WrV3vs8PTv39+5ZE7g888/129+8xv99NNPHvFdu3bp/fff1/vvv6/hw4frb3/7m0JDG97b04EDB+znol+/fho1apSzCR3HgQMH1KtXL/3www8e8cOHD2vnzp3KysrS6NGj1bJly4Dl8MMPP9iP18iRIzV06NCA3ReAusF+DwKtIe33ADXFTHmAvfvuuyoqKpIkezDKzc3VsmXLnEyrVg4fPux0CvUOj0nt7dixQ0OHDrUb8htvvFHbtm1TcXGxPvjgAzVv3lyS9Pbbb+uBBx5wMlVJgXmOMzIyZIyRMcbxhv21116zG/JRo0Zp165d+vnnn7Vlyxa98847+u1vf6tGjRo5miOAhof9nuDEY1I7n3/+uT3eG2PUr18/+7ZZs2Z53FbdTHnFYz579mx7WT6ACGIGAXXxxRcbSUaS+cMf/mD/f9SoUT6X//77781NN91k2rRpY8LDw02TJk1M165dzQsvvOCx3FdffWV++9vfmlatWpmwsDBz2mmnmV/96ldm/vz5xhhjcnNz7fvq16+fx9+2bt3avq3CkiVL7NjIkSPN66+/bjp16mTCwsLMo48+aowxZvLkyeaCCy4wLVu2NI0aNTIREREmJSXF3HTTTSY3N7dWtZSXl5szzzzTSDKRkZFm3759Hn/buXNnI8mEh4eb/Pz8ah/fY/P+29/+Zjp37mwiIiJMcnKymTRpkikvL/f4m6KiIpORkWE6d+5soqKiTKNGjczZZ59tpkyZYkpKSjyWrVh369atTVZWlunbt6+JioryeExr+pwtXbrUDB061MTHx5uwsDDTvHlzM2zYMLNy5UqP5R599FH7fl9++WXz8MMPmzPOOMNERkaa7t27m0WLFvl8Lo/9qXjeqlO1tm+//dakp6ebqKgoc9ppp5lRo0aZvXv3GmOMycnJMS6Xy0gyv/rVrzzW8eOPP5rQ0FAjyZxzzjnHvb/x48fb99m5c2fjdrs9bp83b559e9Xn3enn+L333jODBg0yZ5xxhmncuLEJDQ018fHx5oorrjBLly611zNy5Mhqn4uKdVV9bmfNmuXzedy4caMZOnSoadKkiTn99NPN8OHDzY8//uiR8/79+83NN99smjZtaqKioszAgQPN2rVrfb62qzNmzBh72TfffPO4y86ZM8dedsKECR63vfvuu/Zt48ePN8YYc+DAATNu3DiTkpJiwsPDTWRkpElOTjaDBg0yf/vb34wxxvTr16/ax2vkyJH2+nNycsyYMWPsdcXExJgLL7zQvP322x55HLudvPrqqyYtLc00atTInHfeeebLL780P//8s7n//vtNQkKCiYuLM4MGDTJbtmw54WMFoObY72G/p8Kpvt9TVdUxr+r4f2xN33//vRkyZIiJiYkxbdq0McZ47l8sWbLEZz0rVqwwF198sc960DDQlAfQ1q1bTUhIiJFkEhMTTWFhoYmMjDSSTOPGjc3Bgwc9lv/www9NRESEzzeaK6+80l5u5syZ9nqP/bnrrruMMb9scDr99NN9vsl17dq12jfCli1begwwNanlL3/5ix176qmn7L9ds2aNHb/22muP+xhXzbt58+Y+7+8Pf/iDvfy+ffvMWWedVW0dffv29RigKuJRUVH2c1f1Ma3pc/aXv/zFWJblc7mwsDDzz3/+01626uB02mmneS0fHh5u7wz4Y3Bq3LixadKkidffn3POOebnn382xhgzfPhwO/7111/b63juuefs+EsvvXTc+2vfvr297LPPPut1e3l5uYmLi7OXeeutt+rFc3zXXXdVuy6Xy2WWLVtmjPFfU+7rOR8wYIC9bGlpqfnVr37ltUxcXJyJiYnxem1XZ/LkyR7b1OWXX26mTJliPvvsM3P48GGPZUtLS01SUpKRZJo2bWqKi4vt26666ip7PevXrzfGGDN06NBqH4vrrrvOGFOzpnz58uUeNR37c//999t5nGg7adKkiRk0aJBXvGPHjqasrOyEjxeAE2O/h/2eCuz3eKppU151W2zdurUx5sRNeXR0tImKijpuPaj/aMoD6LHHHvMaNH7zm9/YsdmzZ9vLFhcXmxYtWti33XTTTeaHH34wRUVF5j//+Y95+eWXjTHG7Ny50zRq1Mhe7sEHHzS7d+82Bw4cMIsWLTLz5s0zxvyywUk6OuP1448/mn379pmcnBxjjDELFiwwa9asMT/99JM5cuSI+fHHH82NN95o/82f//znWtVy+PBhe0Bp06aN/cnuhAkT7L/9/PPPj/sYH5v3a6+9ZoqKijwGDcuy7Gbh9ttvt5edMWOGKSwsNAcOHDB33nmnR7xC1XVfdNFFZtOmTebQoUNm3bp1Na5zx44ddi7du3c369evNyUlJWblypV2/S1btjRHjhwxxngOTjExMWbRokXmwIEDZsSIEXZ8ypQpdo6zZs2q8YBUVdXaxowZY/bt22fWrl1r0tLSvAacFStW2LHrr7/eXkdFcxgTE2OKioqOe39VB/d//OMfPpc555xz7GWmTp3q+HNsjDFffPGF+e9//2t+/PFHU1paagoKCsyLL75o/82wYcPsdR3vdWdMzZry/v37m+3bt5sNGzZ4bF+7d+82xhjz+uuvewzY2dnZ5qeffjKjR4/2qOVEdu/ebZo1a+Zzx6Zx48bmnnvu8RjMn376aY/nwJijM/YVz0H//v3tZSsa6fPPP9/s3bvXFBcXm//973/mjTfeMK+//rq93LEzPsc6++yzjXT0A4dPP/3U/Pzzz2bbtm3mwgsvtJ/37777zud28sYbb5jCwkKPDwgsyzLvvvuu+emnn0yPHj3s+JdffnnCxwvAibHfw36PMez3+FLTprxz584mOzvbHD582KxZs8YYc+KmvCb1oP6jKQ+giq8pSTJZWVnGGGPefvttj53vCp9++qkdb9u2bbUzN6+++qrPvz/WLxmczjzzTK+vPhljzLJly8wVV1xhWrZsacLCwrx25G+99dZa1WKMMRkZGfay//jHP4zb7TbJyclGOjqDdSJV8z7//PM9bvvd737nNXC2atXKZxNS9efyyy+311E1vm3bNo/117TOV1555YT3Kcn+OlfVwenuu++21/PPf/7Tjo8dO9aO/9LBKTQ01GP24uWXX7Zvq9pw9u/f30gyERERJj8/32zatMnruT+emjTlVWclfDXldf0cG3P0tTR69GiTmprqc3agQ4cOHstW97ozpmZN+bfffmvHq+7MVjSO1157rR177rnn7GWLiorsr9RVfW0fz/bt282oUaNM06ZNfT5O9957r71sQUGBPbPQvXt3Y8zR2auKZSt2jI2p/HClSZMm5vbbbzcvvviiWbJkidcs2fGa8s2bN9fodfPMM894ratXr172eqrOTPXu3duO33///Xb873//e40eLwDHx34P+z3GsN/jS02b8opv31V1oqa8pvWgfuNEbwHyxRdfaMuWLZKk0047TY0aNdLq1avVqlUr+6zSS5cutU+0lJeXZ//tWWedJZfL5XO9VZfr3LlzjXIxxnj8XlZWdtzlu3XrppAQz03j66+/1kUXXaR//vOf2r17t44cOeL1d8XFxV45Hq8WSbrtttsUGRkpSZoxY4aWLl2q7du3S5LGjh173DyP1bp162p/z8/Pl3T0clwnsnfvXq9Y8+bNlZyc7BGraZ01uc/q7rdjx472/6Ojo+3///zzzzVaZ02cfvrpHuv29bhJ0h//+EdJUklJiV555RX97W9/s2+79dZbT3g/Z5xxhv3/nJwcr9vdbre2bt3qM4/qYoF+jouKitS7d2+99tprysnJUUlJidffVWz3/nKi57xq7lXrb9y4sZo1a1ar+0pKStKsWbOUn5+vVatW6dlnn1WnTp3s2+fNm2f/v0mTJhozZowk6ZtvvlFWVpa9DbRo0ULDhg2zl3399dfVpUsXFRYWasaMGfrDH/6giy66SM2bN9e0adNqlNsved2ceeaZ9v8r3l8kKSUlxf5/RESE/X9/vp6AUxX7PUex38N+zy9x7rnn1vpvaloP6jea8gCpeg3i/fv3q3v37urWrZv69OljDw7GGM2ZM0eSlJCQYC+/fv16ud1un+ututzatWurvf+qZ02uesbMgwcPeryp+hIVFeUVmzdvnsrLyyVJ1113nfbu3StjjP785z8fN8fj1SIdfSOpOAv1p59+al/iIjIyUiNHjjxunseq2tAd+3uLFi0kSfHx8ZKOnhF2165dHme/rPjJysryWrevx6SmdVbcp3R0wPV1n263WwMHDvT627CwMPv/1V1K5pdeYmbv3r06dOiQ/buvx02SLrvsMp111lmSpJdeeskenM4//3x17dr1hPczePBg+/+zZs3yuv3dd9/VgQMHJEnh4eG66KKLvJap6+f4s88+s6/V3alTJ+Xk5MjtdmvNmjU+a/TH5X5O9JxXnKVekr0jJx39AGHfvn01vp+CggL7/y6XS927d9f48eP1ySef2PFj1zd+/Hg7v4kTJ9pnUx49erRH3t26ddO3336r7du365NPPtELL7yg9u3bq7i4WH/84x+1a9euauurUPV106FDB5/PozFGmZmZXn9b3eX0GuJl9oCGgv2eo9jvYb/nl/D1uJ9ITetB/UZTHgC+rtFZnTlz5sgYoz59+tgvnC1btmjs2LHatm2bDh06pK+//lozZ86UdLSxqRh4lixZokceeUQ//vijCgsLtWTJEr311luSjr4hViy3bt065ebmqry8XBMnTrQHmdqoujPbqFEjRUZG6ttvv9Vzzz3ntWxNa6lwzz33KCQkRMYYff7555Kka6+9VnFxcbXK8csvv9Ts2bN18OBBffzxx3rvvfckHX3zTk9PlyRdddVVko7uGIwcOVLr16/XkSNHlJeXp3feeUeDBg3SG2+8UaP7q81zVjErN2vWLP31r39VQUGBiouLtXr1aj300EPq3bt3rWqtqurs6Pr161VaWlqrvy8rK9Mf//hH7d+/X99//72eeeYZ+7YBAwbY/7csy/7UePv27faMSE0/Lb733nsVGxsrSVqzZo1uvvlm7dy5UyUlJfrwww91++2328vecccdHs1nhbp+jqtu96GhoYqOjlZeXp4efPBBn8tXfS62bt2q/fv31+h+aqPqc/Lcc89p7dq12r9/v+6+++4TzgZV9cwzz+iCCy7QK6+8os2bN6u0tFT79+/32LGuOmsuSa1atdLvfvc7SZWXewkJCbFn0Cs8+OCDWrBggcrKytS3b18NHz7cnr02xmjHjh2SPB+vzZs3e+xUnHnmmTr77LMlSRs2bNAf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gQMHNGzYMM2aNcupNIEGZeHChWrcuLEuuOACSdILL7ygV155RWeddZZeeOEFnXbaaQ5nCASXCy+8UGPGjNH111+vvLw8tW/fXp06ddKmTZt05513BlWj2rhxY61du1Zt2rTRr3/9a/Xp00f/93//p23btql9+/YNaiaqNvbt26c333xTs2fP1tq1a3XppZdq9OjRuvLKKxUWFuZ0en7ncrm0e/dutWjRwiO+d+9eJSQkqKyszKHMAiMlJUV79uzR4cOHddppp8kYowMHDigqKkqNGzdWfn6+UlNTtWTJEiUnJzud7klJSUnx+L2i3ri4OEmy623RooVycnIcyDCwysvL9a9//UuzZs3SRx99pDPPPFM33XSTrr/+esXHxzudnhe+vo46NWvWLPsnPj5ew4cPV25urt577z299957ysnJ0bXXXqvTTz/d6VSBBuO+++5TYWGhJOm7777Tvffeq8suu0w5OTm65557HM4OCD6+Zo+zsrI0d+5czZ4929nk/KxTp0566aWX9MUXX2jx4sUaNGiQJGnXrl1q1qyZw9kFTrNmzXTXXXcpOztby5cv15lnnqnrr79eiYmJuvvuu7V582anU/SLwsJCFRQUyBijoqIiFRYW2j/79+/XRx995NWoB4PMzEz17NlTmzdv1r59+/TTTz9p06ZN6tWrl5577jlt27ZNCQkJuvvuu51O9aTl5ubaP0888YTOOeccrV+/Xj/99JN++uknrV+/Xt27d9fjjz/udKoB4XK5dOWVV+r999/Xzp07NWLECD388MNKTk7W0KFD9dlnnzmdoicDOOT00083GzZs8Ipv2LDBNG3a1IGMgIYpOjra5ObmGmOMefTRR81vfvMbY4wxq1atMvHx8Q5mBgSnqq+5K664wjz55JPGGGO2bt1qGjVq5GBm/rdkyRITFxdnQkJCzI033mjHH3jgAXPVVVc5mFnd2LVrl3nyySdNu3btTHR0tLnhhhtMenq6CQ0NNdOmTXM6vV/MsiwTEhJS7Y/L5TKTJ092Ok2/S01NNdnZ2V7xb775xqSkpBhjjPnvf/9rEhIS6jizwEhNTTXffPONV3zlypWmTZs2DmRUd77++mtz6623mtjYWHPGGWeYRx55xNxyyy0mKirK3HvvvU6nZ+OYcjimrKxM69evV/v27T3i69evl9vtdigroOEJDw/X4cOHJUmffvqpbrjhBklS06ZN7Rl0AP5TMXs8ZMgQLV682J5pCsbZ4/79+2vv3r0qLCz0OBRmzJgxioqKcjCzwDly5Ig++OADzZo1S4sWLVKXLl10991367rrrrOPuZ43b57+8Ic/NOiZVElasmSJjDG6+OKL9e6776pp06b2beHh4WrdurUSExMdzDAwdu/e7fMr+WVlZcrLy5MkJSYmqqioqK5TC4jdu3fryJEjXvHy8nL9+OOPDmQUWPn5+XrjjTc0a9Ysbd68WVdccYXmzZungQMHyrIsSdLw4cM1dOhQPfPMMw5nexRNORxz44036qabbtKWLVvsky989dVXevLJJz2OPQdwfBdccIHuuece9enTR8uXL9dbb70lSdq0aZN9IioA/vPUU0/pqquu0tNPP62RI0eqa9eukqQPPvjA/lp7sCguLpYxxm7It27dqgULFqhjx44aOHCgw9kFRsuWLeV2u/W73/1Oy5cv1znnnOO1zMCBA+1jcxuyfv36qaysTDfccIN69OjRYI+frq2LLrpIY8eO1auvvqpu3bpJkrKzs/WHP/xBF198saSjh4Mde1x2Q3XJJZfolltu0WuvvaZzzz1XlmVp5cqVGjt2rC699FKn0/O7pKQktW3bVjfddJNGjRql5s2bey3zq1/9Sj179nQgO9840Rsc43a79cwzz+i5557T7t27JR0dCO+66y7de++9DfqMl0Bd2rZtm8aNG6ft27frzjvv1OjRoyVJd999t8rLy2t1BlYANVNeXu41e/zDDz/YJ04KFgMGDNCwYcN066236sCBA+rQoYPCwsK0d+9eTZs2TX/4wx+cTtHv3njjDV1zzTVq1KiR06nUmZiYGH333Xdq06aN06nUiby8PF1//fX697//bZ+4r6ysTJdcconeeOMNxcfHa8mSJTpy5IgGDBjgcLa/3J49ezRy5EgtXLjQo96BAwdq9uzZQfWeJUlffPGFLrzwQqfTqBWactQLFV+xbdKkicOZAACACqeffrqWLl2qTp066dVXX9Xzzz+v7Oxsvfvuu3rkkUe0fv16p1OEHwwdOlRDhw7VqFGjnE6lTm3YsEGbNm2SMUYdOnTwOqQy2GzatEkbNmyQMUYdO3ZUu3btnE4pIC6++GK99957Xt9mKSwsrJ8neRNfX0c9QTMO/DLl5eV6//33tX79elmWpY4dO+rKK6/kGydAAKSkpNjHJfoSTJcXOnz4sH0c9aJFizRs2DCFhITovPPO09atWx3OLnBWrFih+fPna9u2bSotLfW47b333nMoq8AZPHiwHnjgAa1du1bnnnuuoqOjPW7/9a9/7VBmgdWhQwd16NDB6TTqTLt27YK2Ea9q6dKlXq9bSfr555/1xRdfOJDRidGUo051795d//73v3XaaaepW7dux92p+eabb+owM6Dh2rJliy677DLt3LlT7du3lzFGmzZtUnJysj788EO1bdvW6RSBoDJ+/HiP348cOaLs7GwtXLhQ9913nzNJBciZZ56p999/X1dddZU++eQT+8Rm+fn5QfuB+rx583TDDTdowIABWrx4sQYMGKDNmzcrLy9PV111ldPpBUTFYQjTpk3zus2yLJWXl9d1SgFVXl6u2bNn69///rfy8/O9TjBcH2dSf4lTpd41a9ZIkowx+v777+2T9klHH4OFCxeqVatWTqV3XDTlqFNXXnmlIiIiJB39qhSAX+7OO+9U27Zt9dVXX9lnzt23b59+//vf684779SHH37ocIZAcLnrrrt8xl944QWtXLmyjrMJrEceeUQjRozQ3XffrYsvvljnn3++pKOz5hUnyAo2mZmZevbZZ3XbbbcpJiZGzz33nFJSUjR27Fi1bNnS6fQC4lS76s1dd92l2bNna8iQITr77LOPO0kUDE6Ves855xxZliXLsuwT9lUVGRmp559/3oHMToxjygGggYuOjtZXX32lzp07e8S//fZb9enTRwcPHnQoM+DUkpOTo3POOSfoLkWYl5en3bt3q2vXrgoJCZEkLV++XE2aNAnKr/5GR0dr3bp1atOmjU4//XQtWbJEnTt31vr163XxxRfbJ6dFw3X66afrr3/9qy677DKnU6kTp0q9W7dulTFGqampWr58ucdZ18PDw9WiRYt6e1gfM+Vw3KpVq+zjYM8666yg/eQdCJSIiAif11I9ePCgwsPDHcgIODW98847Htd5DhYJCQk6ePCgFi9erL59+yoyMlI9e/YM2tm2pk2b2u+prVq10tq1a9W5c2cdOHBAhw8fdji7wDl06JCWLl3q8zj6O++806GsAiM8PFxnnnmm02nUmVOl3tatW0tqmN/8oCmHY/Lz83Xttdfq888/V1xcnIwxKigo0EUXXaR58+b5vKYgAG+XX365xowZo9dee82+RvLXX3+tW2+9NWhPzgM46dhzohhjlJeXpz179ugvf/mLg5n53759+zR8+HAtWbJElmVp8+bNSk1N1c0336y4uDj96U9/cjpFv7vwwgu1ePFide7cWcOHD9ddd92lzz77TIsXL9Yll1zidHoBkZ2drcsuu0yHDx/WoUOH1LRpU+3du9e+xF+wNeX33nuvnnvuOc2YMSNoP1yq6lSo94MPPtDgwYMVFhamDz744LjL1sd9I76+Dsf89re/1f/+9z+98cYb6tixoyTp+++/18iRI3XmmWfq73//u8MZAg3DgQMHNHLkSP3zn/+0rz965MgRXXnllZo1a5bXJUEA/DKTJk3y+D0kJETNmzdX//79g+7r3DfccIPy8/P16quvqmPHjvr222+VmpqqRYsW6e6779a6deucTtHvfvrpJ/38889KTEyU2+3WM888o//85z8688wz9fDDD3tcmz5Y9O/fX+3atdOLL76ouLg4ffvttwoLC9Pvf/973XXXXRo2bJjTKfrVVVddpSVLlqhp06bq1KmTPXZWCLYz7J8K9YaEhCgvL08tWrSwD7Pxpb6euJCmHI6JjY3Vp59+qp49e3rEly9frgEDBujAgQPOJAY0UFu2bNH69etljNFZZ511SnxVDUBgJSQk6JNPPlHXrl0VExNjN+W5ubnq3Lkz56wIEnFxcfr666/Vvn17xcXF6csvv1THjh319ddfa+TIkdqwYYPTKfrVjTfeeNzbZ82aVUeZ1I1Trd6GiK+vwzFut9vrkzpJCgsLa5DHggB16Z577tHjjz+u6Oho3XPPPV63f/755/b/fV3iBsAvU15ergULFtjnROnYsaOuvPJKhYYG167VoUOHFBUV5RXfu3evfTWVYFCbk/MF46XgwsLC7K81x8fHa9u2berYsaNiY2O1bds2h7Pzv1OtCT3V6vXlwIED9fqbg8E1cqBBufjii3XXXXfp73//uxITEyVJO3fu1N133x20x2wB/pKdna0jR47Y/69OsB47Bjhp7dq1uvLKK5WXl6f27dtLkjZt2qTmzZvrgw8+8LoSQkPWt29f/fWvf9Xjjz8u6eh7itvt1tNPP62LLrrI4ez8Jy4ursbvl/Xxq6+/VLdu3bRy5Uq1a9dOF110kR555BHt3btXb7zxRlBtz6eysrIyff755/rf//6nESNGKCYmRrt27VKTJk3UuHFjp9Pzq6eeekpt2rTRb3/7W0nSNddco3fffVctW7bURx99pK5duzqcoTe+vg7HbN++XVdeeaXWrl2r5ORkWZalbdu2qXPnzvrHP/6hpKQkp1MEAMDLeeedpxYtWmjOnDn28cX79+/XqFGjlJ+fry+//NLhDP3n+++/V//+/XXuuefqs88+069//WutW7dOP/30k/773/+qbdu2TqfoF0uXLrX//8MPP+j+++/XqFGj7Ouyf/nll5ozZ46mTJmikSNHOpVmwKxcuVJFRUW66KKLtGfPHo0cOdI+jn7WrFn1sompre7du+vf//63TjvtNK+TNR7rm2++qcPMAm/r1q0aNGiQtm3bppKSEm3atEmpqakaP368fv75Z7300ktOp+hXqampevPNN9W7d28tXrxYw4cP11tvvaW3335b27Zt06JFi5xO0QtNORy3ePFibdiwwT4O9tJLL3U6JQAAqhUZGamVK1eqU6dOHvG1a9eqZ8+eKi4udiizwMjLy9OLL76oVatWye12q3v37rrtttvUsmVLp1MLiEsuuUQ333yzfve733nE586dq5kzZ3ocHoSGY9KkSbrvvvsUFRXldbLGYz366KN1lFXdGDp0qGJiYvTaa6+pWbNm9rkhli5dqptvvlmbN292OkW/ioyM1KZNm5ScnKy77rpLP//8s15++WVt2rRJvXr10v79+51O0QtfX4cjysrK1KhRI61evVrp6elKT093OiUAAGqkffv2+vHHH72a8vz8/KA8wWJCQsIJm5hg8uWXX/qcOezRo4duvvlmBzKqO/n5+dq4caMsy1L79u2D6vK0VRvtYGu6T+Q///mP/vvf/yo8PNwj3rp1a+3cudOhrALntNNO0/bt25WcnKyFCxdq8uTJko5evrK+Hn5S/fnigQAKDQ1V69at6+0LAwCAqgoLC+2fzMxM3XnnnXrnnXe0Y8cO7dixQ++8847Gjx+vp556yulU/WrWrFmaP3++V3z+/PmaM2eOAxkFXnJyss+m/OWXX1ZycrIDGQVeYWGhrr/+erVq1Ur9+vVT3759lZiYqN///vcqKChwOj38Qm632+c+944dOxQTE+NARoE1bNgwjRgxQunp6dq3b58GDx4sSVq9enW9/eCUr6/DMRUD/ZtvvqmmTZs6nQ4AANUKCQnxOAa1YvepIlb192D6wLl9+/Z66aWXvE7qtnTpUo0ZM0YbN250KLPA+eijj/Sb3/xGbdu21XnnnSdJ+uqrr/S///1P7777ri677DKHM/S/4cOHa/Xq1Xr++ed1/vnny7IsZWVl6a677lKXLl309ttvO53iL3baaafV+GR+P/30U4CzqVu//e1vFRsbq5kzZyomJkZr1qxR8+bNdeWVV+qMM84IurOzHzlyRH/+85+1bds2jRo1St26dZMkTZ8+XY0bN66X33ihKYdjunXrpi1btujIkSNq3bq1oqOjPW4PtpNsAAAarqonAjuRfv36BTCTutWoUSNt2LBBbdq08Yj/8MMP6tixY9AdP19hx44devHFF7V+/Xr7nDe33npr0M6UR0dH65NPPtEFF1zgEf/iiy80aNAgHTp0yKHM/Kc23+wItpP57dq1SxdddJFcLpc2b96sHj16aPPmzTr99NO1bNkytWjRwukU/ebIkSMaM2aMHn74YaWmpjqdTo1xTDkcM3ToUKdTAACgRk6m0R43bpwee+wxnX766QHIqG60aNFCa9as8WrKv/32WzVr1syZpAKstLRUSUlJeuKJJ7xu27t3b4N+PqvTrFkzxcbGesVjY2PtKww0dMHWaNdGYmKiVq9erXnz5tknbBw9erSuu+46RUZGOp2eX4WFhWnBggV6+OGHnU6lVpgpBwAACIAmTZpo9erVDWq25lgTJkzQ22+/rVmzZqlv376Sjn5r4KabbtLVV1+tZ555xuEM/W/o0KF67733FBLieeqlH3/8UZdcconWrl3rUGaBM3PmTM2fP19//etf7bPq5+XlaeTIkRo2bJjGjh3rcIb+9dFHH8nlcmngwIEe8UWLFqm8vNw+BjlYvPnmm/r973/v87b77rtPTz/9dB1nFFg33nijOnfurHvuucfpVGqMmXIAAIAACIZ5j8mTJ2vr1q265JJLFBp6dLfR7XbrhhtuUGZmpsPZBcbu3bs1evRoj+Nsd+/erYsvvtjrjPsN2bHX6t68ebNat26tM844Q5K0bds2RUREaM+ePUHXlN9///168sknveJut1v3339/0DXlt99+u+Li4nT55Zd7xO+++27Nmzcv6JryM888U48//riysrJ07rnneh0ie+eddzqUWfWYKUedOpVPsgEAOLXExMTY1wNu6DZv3qzVq1crMjJSnTt3VuvWrZ1OKWD27dunvn37asCAAXr22We1c+dOXXzxxeratavm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jfDwcJ4PTETC3b9/X+m9lpYWzMzMoKurKygR/RuLciIiIiIiIiJB2H2diIiIqIA2btyIli1bonLlyopZqODgYPz++++Ck6lfWlqa6AhEVEAnTpzAl19+CVtbW9jZ2eHLL7/E8ePHRcei/49FOREREVEBLFu2DKNGjULHjh2RlpaGnJwcAG+P1QoODhYbTsV+/vlnbN++XfG+Z8+eKF++PCwtLTXi6DeikmDJkiXo0KEDDAwM4O/vDz8/PxgaGqJjx45YsmSJ6HgELl8nIiIiKhB7e3vMnj0bXl5eMDAwQHR0NGxsbHDt2jW4uroiNTVVdESVsbGxwaZNm9CiRQscO3YMPXv2xPbt27Fjxw4kJibi6NGjoiMS0X+wtLTExIkT8eOPPyqNL126FIGBgXj06JGgZPQOZ8qJiIiICiAhIQFOTk65xsuUKYNXr14JSKQ+SUlJqFq1KgDgzz//RM+ePdG+fXuMGzcOly5dEpyOiPIjPT0dHTp0yDXevn17pKenC0hE/8ainIiIiKgArK2tERUVlWv80KFDsLe3L/xAamRiYoIHDx4AeHuOd9u2bQG8Pef43bJ9IiraunTpgr179+Ya//3339G5c2cBiejfdEQHICIiIipOxo4di2HDhuH169eQJAkXL17E1q1bMWfOHKxatUp0PJXq3r07evfujRo1auDp06f44osvAABRUVGws7MTnI6IPmTRokWKX9epUweBgYE4deoUmjdvDgA4f/48wsPDMXr0aFER6T3cU05ERERUQCtXrsSsWbMUs8iWlpYICAjAoEGDBCdTraysLPzyyy948OABfHx8FMv2g4ODUa5cOQwePFhwQiLKi7W1db7uk8lkiI+PV3Ma+i8syomIiIg+UWpqKuRyOczNzUVHISKiYopFORERERHlacOGDR+93r9//0JKQkSkuViUExEREf0HJycnyGSyfN0bERGh5jSFx8TEROl9VlYWMjIyULp0aZQtWxbPnj0TlIyI8svX1/ej19esWVNISehD2OiNiIiI6D94eXmJjiDE33//nWvs9u3bGDp0KMaOHSsgEREV1L//HWdlZeHatWtIS0uDu7u7oFT0Ps6UExEREVGBXL58GX379sWtW7dERyGiTyCXy/HDDz/AxsYG48aNEx2nxOM55UREREQFlJaWhlWrVmHixImKJdwRERH466+/BCcrHNra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wg9LVELpiA5ARERERETqkZSUpPj19u3bMXXqVMTGxirG9PT0lO7PysqCnp5ernEiUh/OlBMRERERaahKlSopXkZGRpDJZIr3r1+/hrGxMXbs2AFXV1fo6upi06ZNuZavBwQEoEGDBlixYgWqVq2KsmXL4uuvv0ZaWpqwj4tIk7AoJyIiIiIqwcaPHw8/Pz/cvHkTnp6eed5z584d7NixA3/88QcOHz6MqKgoDBs2rJCTEmkmLl8nIiIiIirBRowYge7du3/0ntevX2P9+vWoUqUKAGDx4sXo1KkTFixYgEqVKhVGTCKNxZlyIiIiIqISrFGjRv95T7Vq1RQFOQA0b94ccrlcaX86EX0aFuVERERERCWYvr5+gX+PTCZT+l8i+nQsyomIiIiI6KMSExPx6NEjxftz585BS0sLNWvWFJiKSDOwKCciIiIioo/S1dXFgAEDEB0djTNnzsDPzw89e/bkfnIiFWCjNyIiIiIi+ig7Ozt0794dHTt2xLNnz9CxY0f8+uuvomMRaQSZJEmS6BBERERERFQ0BQQEYN++fYiKihIdhUgjcfk6ERERERERkSAsyomIiIiIiIgE4fJ1IiIiIiIiIkE4U05EREREREQkCItyIiIiIiIiIkFYlBMREREREREJwqKciIiIiIiISBAW5URERERERESCsCgnIiIiIiIiEoRFOREREREREZEgLMqJiIiIiIiIBPl/GHiQucfeHM8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "os_accuracy = df.groupby('os')['is_correct'].mean() * 100\n", + "trip_accuracy = df.groupby('trip')['is_correct'].mean() * 100\n", + "\n", + "fig, axes = plt.subplots(1, 2, figsize=(12, 5))\n", + "os_accuracy.plot(kind='bar', ax=axes[0])\n", + "axes[0].set_title('Accuracy percent by Operating System', fontweight='bold')\n", + "axes[0].set_xlabel('Operating System')\n", + "axes[0].set_ylabel('Accuracy (%)')\n", + "axes[0].grid(axis='y', linestyle='--', alpha=0.7)\n", + "\n", + "trip_accuracy.plot(kind='bar', ax=axes[1])\n", + "axes[1].set_title('Accuracy percent by Trip', fontweight='bold')\n", + "axes[1].set_xlabel('Trip')\n", + "axes[1].set_ylabel('Accuracy (%)')\n", + "axes[1].grid(axis='y', linestyle='--', alpha=0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "fa3769fb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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14zB2LFj1bNnT/s9ICwsTE2bNrVn0AslJCToP//5j9q1a+d1fGGhG264QcuXL9eQIUN04YUXKjQ0VDExMWrVqpWGDBliz1QBOD+x38N+T2Xf76kI5akHwcky5pQzWgBVzNy5czVw4EBJJ49zvuuuuxzOqHIzxmjgwIH66KOPVKNGDW3btq3MX3s7WzNmzLBfl2eeecbra+7nq0WLFqlNmzb217uzs7M1evRo+7j8cePGlfoV+3OVlZWltm3baseOHerevbsWL14ckMcBAPgf+z3l48R+T1ls3brVPkFejx497MMRcH7ijDmossaOHav33nvPPjlWy5YtdeeddzqcVeXWsmVLHTp0SPv375ckjRkzplIMTOej5ORkLV68WLVq1VJERIT27t1rn9CoQ4cOGjNmjN8f88cff9Sdd96p3bt36+jRo3K5XHruuef8/jgAAP9jv6f82O9BVUFTjiprz5492rJli6Kjo3XFFVfojTfe4MzMZ7BhwwZZlqWEhATdddddevLJJ51O6bx100036fjx4/rll1+UkZGh6tWrq2XLlrr55pv18MMPe50N2F+OHz+ujRs3KiQkRK1atdIzzzxjn/QNAFC5sd9Tfuz3oKrg6+sAAAAAADiEE70BAAAAAOAQmnIAAAAAABwS9AeieDwe7d69W9HR0VxSAABQKRhjlJ2drYSEBLlcfD5+rhjrAQCVTXnG+qBvynfv3q0GDRo4nQYAACXs2LFDiYmJTqdR5THWAwAqq7KM9UHflEdHR0s6+WTUqFHD4WwAADh5rfgGDRrYYxTODWM9AKCyKc9YH/RNeeHX2GrUqMFADQCoVPiqtX8w1gMAKquyjPUcyAYAAAAAgENoygEAAAAAcAhNOQAAAAAADqEpBwAAAADAITTlAAAAAAA4hKYcAAAAAACH0JQDAAAAAOAQmnIAAAAAABxCUw4AAAAAgENoygEAAAAAcAhNOQAAAAAADqEpBwAAAADAITTlAADgrC1ZskQ33HCDEhISZFmWPvroI6/bjTFKTk5WQkKCIiIi1LNnT61du9ZrmZycHD388MO64IILFBUVpRtvvFE7d+6swCoAAHAOTTkAADhrx44dU4cOHTR16lSft7/00kuaPHmypk6dqqVLlyo+Pl69evVSdna2vcyoUaM0d+5czZ49W998842OHj2q66+/XgUFBRVVBgAAjglx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XcGZ+U9pNfoycuTIAGZS8S655BKNGTNGDz/8sG677Tbdc889uuyyy5xO67S4Tjkq1F133WX/3xijuXPnKiYmRp06dZIkLV++XEeOHNHAgQM1ffp0p9IEqpR58+apevXquuKKKyRJb7zxhv7+97+rdevWeuONN1SzZk2HMwSCy29+8xvdf//9uvPOO5WRkaEWLVqoTZs22rhxo0aOHBlUjWr16tW1Zs0aNWrUSDfeeKO6deumP/7xj9q+fbtatGhRpWaiyuPgwYP697//rRkzZmjNmjW65pprdM8996h///4KDQ11Oj2/c7vd2rNnj+rWresVP3DggOLj45Wfn+9QZoHRuHFj7d+/X8ePH1fNmjVljNGRI0cUGRmp6tWra9++fWrSpIkWLlyoBg0aOJ3uWWncuLHX74X1xsbGSpJdb926dbVlyxYHMgysgoIC/d///Z+mT5+uzz77TM2aNdPdd9+tO++8U3FxcU6nVwJfX0eFmj59uv0TFxen2267Tenp6frwww/14YcfasuWLbrjjjt0wQUXOJ0qUGU8/vjjysrKkiT99NNPeuyxx9S3b19t2bJFjz76qMPZAcHH1+xxamqqZs2apRkzZjibnJ+1adNGf/3rX/X1119rwYIFuu666yRJu3fvVu3atR3OLnBq166tRx55RGlpafrxxx/VrFkz3XnnnUpISNDo0aO1adMmp1P0i6ysLGVmZsoYo+zsbGVlZdk/hw8f1meffVaiUQ8GKSkp6ty5szZt2qSDBw/q0KFD2rhxo7p06aJXX31V27dvV3x8vEaPHu10qmctPT3d/nn++ed10UUXad26dTp06JAOHTqkdevW6eKLL9Zzzz3ndKoB4Xa71b9/f3300UfatWuXBg0apKeffloNGjTQgAED9NVXXzmdojcDOOSCCy4w69evLxFfv369qVWrlgMZAVVTVFSUSU9PN8YY88wzz5ibb77ZGGPM8uXLTVxcnIOZAcGp+N/cDTfcYF544QVjjDHbtm0z1apVczAz/1u4cKGJjY01LpfL3HXXXXZ87Nix5qabbnIws4qxe/du88ILL5jmzZubqKgoM2TIENOrVy8TEhJiJk+e7HR658yyLONyuUr9cbvdZuLEiU6n6XdNmjQxaWlpJeIrVqwwjRs3NsYY8+2335r4+PgKziwwmjRpYlasWFEivmzZMtOoUSMHMqo4P/zwg3nggQdMTEyMufDCC8348ePNfffdZyIjI81jjz3mdHo2jimHY/Lz87Vu3Tq1aNHCK75u3Tp5PB6HsgKqnrCwMB0/flyS9OWXX2rIkCGSpFq1atkz6AD8p3D2uF+/flqwYIE90xSMs8c9e/bUgQMHlJWV5XUozP3336/IyEgHMwucvLw8ffLJJ5o+fbrmz5+v9u3ba/To0Ro8eLB9zPXs2bP1+9//vkrPpErSwoULZYzRVVddpQ8++EC1atWybwsLC1PDhg2VkJDgYIaBsWfPHp9fyc/Pz1dGRoYkKSEhQdnZ2RWdWkDs2bNHeXl5JeIFBQXau3evAxkF1r59+/Svf/1L06dP16ZNm3TDDTdo9uzZuvbaa2VZliTptttu04ABA/TnP//Z4WxPoimHY+666y7dfffd2rx5s33yhe+//14vvPCC17HnAE7viiuu0KOPPqpu3brpxx9/1LvvvitJ2rhxo30iKgD+8+KLL+qmm27Sn/70Jw0dOlQdOnSQJH3yySf219qDxYkTJ2SMsRvybdu2ae7cuWrVqpWuvfZah7MLjHr16snj8ei3v/2tfvzxR1100UUllrn22mvtY3Orsh49eig/P19DhgxRp06dquzx0+V15ZVXavjw4XrrrbfUsWNHSVJaWpp+//vf66qrrpJ08nCwU4/Lrqquvvpq3XffffrHP/6hSy65RJZladmyZRo+fLiuueYap9Pzu8TERDVt2lR33323hg0bpjp16pRY5tJLL1Xnzp0dyM43TvQGx3g8Hv35z3/Wq6++qj179kg6ORA+8sgjeuyxx6r0GS+BirR9+3aNGDFCO3bs0MiRI3XPPfdIkkaPHq2CgoJynYEVQNkUFBSUmD3eunWrfeKkYNG7d28NHDhQDzzwgI4cOaKWLVsqNDRUBw4c0OTJk/X73//e6RT97l//+pduvfVWVatWzelUKkx0dLR++uknNWrUyOlUKkRGRobuvPNO/e9//7NP3Jefn6+rr75a//rXvxQXF6eFCxcqLy9PvXv3djjbc7d//34NHTpU8+bN86r32muv1YwZM4LqPUuSvv76a/3mN79xOo1yoSlHpVD4FdsaNWo4nAkAACh0wQUXaPHixWrTpo3eeustvf7660pLS9MHH3yg8ePHa926dU6nCD8YMGCABgwYoGHDhjmdSoVav369Nm7cKGOMWrZsWeKQymCzceNGrV+/XsYYtWrVSs2bN3c6pYC46qqr9OGHH5b4NktWVlblPMmb+Po6KgmaceDcFBQU6KOPPtK6detkWZZatWql/v37840TIAAaN25sH5foSzBdXuj48eP2cdTz58/XwIED5XK5dNlll2nbtm0OZxc4S5cu1Zw5c7R9+3bl5uZ63fbhhx86lFXg9OnTR2PHjtWaNWt0ySWXKCoqyuv2G2+80aHMAqtly5Zq2bKl02lUmObNmwdtI17c4sWLS/zdStKvv/6qr7/+2oGMzoymHBXq4osv1v/+9z/VrFlTHTt2PO1OzYoVKyowM6Dq2rx5s/r27atdu3apRYsWMsZo48aNatCggT799FM1bdrU6RSBoDJq1Civ3/Py8pSWlqZ58+bp8ccfdyapAGnWrJk++ugj3XTTTfriiy/sE5vt27cvaD9Qnz17toYMGaLevXtrwYIF6t27tzZt2qSMjAzddNNNTqcXEIWHIUyePLnEbZZlqaCgoKJTCqiCggLNmDFD//vf/7Rv374SJxiujDOp5+J8qXf16tWSJGOMfv75Z/ukfdLJ52DevHmqX7++U+mdFk05KlT//v0VHh4u6eRXpQCcu5EjR6pp06b6/vvv7TPnHjx4UL/73e80cuRIffrppw5nCASXRx55xGf8jTfe0LJlyyo4m8AaP368Bg0apNGjR+uqq65S165dJZ2cNS88QVawSUlJ0SuvvKIHH3xQ0dHRevXVV9W4cWMNHz5c9erVczq9gDjfrnrzyCOPaMaMGerXr5/atm172kmiYHC+1HvRRRfJsixZlmWfsK+4iIgIvf766w5kdmYcUw4AVVxUVJS+//57tWvXziu+atUqdevWTUePHnUoM+D8smXLFl100UVBdynCjIwM7dmzRx06dJDL5ZIk/fjjj6pRo0ZQfvU3KipKa9euVaNGjXTBBRdo4cKFateundatW6errrrKPjktqq4LLrhAb7/9tvr27et0KhXifKl327ZtMsaoSZMm+vHHH73Ouh4WFqa6detW2sP6mCmH45YvX24fB9u6deug/eQdCJTw8HCf11I9evSowsLCHMgIOD+9//77Xtd5Dhbx8fE6evSoFixYoO7duysiIkKdO3cO2tm2WrVq2e+p9evX15o1a9SuXTsdOXJEx48fdzi7wDl27JgWL17s8zj6kSNHOpRVYISFhalZs2ZOp1Fhzpd6GzZsKKlqfvODphyO2bdvn+644w4tWrRIsbGxMsYoMzNTV155pWbPnu3zmoIASrr++ut1//336x//+Id9jeQffvhBDzzwQNCenAdw0qnnRDHGKCMjQ/v379df/vIXBzPzv4MHD+q2227TwoULZVmWNm3apCZNmujee+9VbGysXn75ZadT9Lvf/OY3WrBggdq1a6fbbrtNjzzyiL766istWLBAV199tdPpBURaWpr69u2r48eP69ixY6pVq5YOHDhgX+Iv2Jryxx57TK+++qqmTp0atB8uFXc+1PvJJ5+oT58+Cg0N1SeffHLaZSvjvhFfX4djbr/9dv3yyy/617/+pVatWkmSfv75Zw0dOlTNmjXTO++843CGQNVw5MgRDR06VP/973/t64/m5eWpf//+mj59eolLggA4NxMmTPD63eVyqU6dOurZs2fQfZ17yJAh2rdvn9566y21atVKq1atUpMmTTR//nyNHj1aa9eudTpFvzt06JB+/fVXJSQkyOPx6M9//rO++eYbNWvWTE8//bTXtemDRc+ePdW8eXO9+eabio2N1apVqxQaGqrf/e53euSRRzRw4ECnU/Srm266SQsXLlStWrXUpk0be+wsFGxn2D8f6nW5XMrIyFDdunXtw2x8qawnLqQph2NiYmL05ZdfqnPnzl7xH3/8Ub1799aRI0ecSQyoojZv3qx169bJGKPWrVufF19VAxBY8fHx+uKLL9ShQwdFR0fbTXl6erratWvHOSuCRGxsrH744Qe1aNFCsbGx+u6779SqVSv98MMPGjp0qNavX+90in511113nfb26dOnV1AmFeN8q7cq4uvrcIzH4ynxSZ0khYaGVsljQYCK9Oijj+q5555TVFSUHn300RK3L1q0yP6/r0vcADg3BQUFmjt3rn1OlFatWql///4KCQmuXatjx44pMjKyRPzAgQP21VSCQXlOzheMl4ILDQ21v9YcFxen7du3q1WrVoqJidH27dsdzs7/zrcm9Hyr15cjR45U6m8OBtfIgSrlqquu0iOPPKJ33nlHCQkJkqRdu3Zp9OjRQXvMFuAvaWlpysvLs/9fmmA9dgxw0po1a9S/f39lZGSoRYsWkqSNGzeqTp06+uSTT0pcCaEq6969u95++20999xzkk6+p3g8Hv3pT3/SlVde6XB2/hMbG1vm98vK+NXXc9WxY0ctW7ZMzZs315VXXqnx48frwIED+te//hVU2/P5LD8/X4sWLdIvv/yiQYMGKTo6Wrt371aNGjVUvXp1p9PzqxdffFGNGjXS7bffLkm69dZb9cEHH6hevXr67LPP1KFDB4czLImvr8MxO3bsUP/+/bVmzRo1aNBAlmVp+/btateunT7++GMlJiY6nSIAACVcdtllqlu3rmbOnGkfX3z48GENGzZM+/bt03fffedwhv7z888/q2fPnrrkkkv01Vdf6cYbb9TatWt16NAhffvtt2ratKnTKfrF4sWL7f9v3bpVTzzxhIYNG2Zfl/27777TzJkzNWnSJA0dOtSpNANm2bJlys7O1pVXXqn9+/dr6NCh9nH006dPr5RNTHldfPHF+t///qeaNWuWOFnjqVasWFGBmQXetm3bdN1112n79u3KycnRxo0b1aRJE40aNUq//vqr/vrXvzqdol81adJE//73v3X55ZdrwYIFuu222/Tuu+/qvffe0/bt2zV//nynUyyBphyOW7BggdavX28fB3vNNdc4nRIAAKWKiIjQsmXL1KZNG6/4mjVr1LlzZ504ccKhzAIjIyNDb775ppYvXy6Px6OLL75YDz74oOrVq+d0agFx9dVX695779Vvf/tbr/isWbM0bdo0r8ODUHVMmDBBjz/+uCIjI0ucrPFUzzzzTAVlVTEGDBig6Oho/eMf/1Dt2rXtc0MsXrxY9957rzZt2uR0in4VERGhjRs3qkGDBnrkkUf066+/6m9/+5s2btyoLl266PDhw06nWAJfX4cj8vPzVa1aNa1cuVK9evVSr169nE4JAIAyadGihfbu3VuiKd+3b19QnmAxPj7+jE1MMPnuu+98zhx26tRJ9957rwMZVZx9+/Zpw4YNsixLLVq0CKrL0xZvtIOt6T6Tb775Rt9++63CwsK84g0bNtSuXbscyipwatasqR07dqhBgwaaN2+eJk6cKOnk5Ssr6+EnpZ8vHgigkJAQNWzYsNL+YQAAUFxWVpb9k5KSopEjR+r999/Xzp07tXPnTr3//vsaNWqUXnzxRadT9avp06drzpw5JeJz5szRzJkzHcgo8Bo0aOCzKf/b3/6mBg0aOJBR4GVlZenOO+9U/fr11aNHD3Xv3l0JCQn63e9+p8zMTKfTwznyeDw+97l37typ6OhoBzIKrIEDB2rQoEHq1auXDh48qD59+kiSVq5cWWk/OOXr63BM4UD/73//W7Vq1XI6HQAASuVyubyOQS3cfSqMFf89mD5wbtGihf7617+WOKnb4sWLdf/992vDhg0OZRY4n332mW6++WY1bdpUl112mSTp+++/1y+//KIPPvhAffv2dThD/7vtttu0cuVKvf766+ratassy1JqaqoeeeQRtW/fXu+9957TKZ6zmjVrlvlkfocOHQpwNhXr9ttvV0xMjKZNm6bo6GitXr1aderUUf/+/XXhhRcG3dnZ8/Ly9Nprr2n79u0aNmyYOnbsKEmaMmWKqlevXim/8UJTDsd07NhRmzdvVl5enho2bKioqCiv24PtJBsAgKqr+InAzqRHjx4BzKRiVatWTevXr1ejRo284lu3blWrVq2C7vj5Qjt37tSbb76pdevW2ee8eeCBB4J2pjwqKkpffPGFrrjiCq/4119/reuuu07Hjh1zKDP/Kc83O4LtZH67d+/WlVdeKbfbrU2bNqlTp07atGmTLrjgAi1ZskR169Z1OkW/ycvL0/3336+nn35aTZo0cTqdMuOYcjhmwIABTqcAAECZnE2jPWLECD377LO64IILApBRxahbt65Wr15doilftWqVateu7UxSAZabm6vExEQ9//zzJW47cOBAlX49S1O7dm3FxMSUiMfExNhXGKjqgq3RLo+EhAStXLlSs2fPtk/YeM8992jw4MGKiIhwOj2/Cg0N1dy5c/X00087nUq5MFMOAAAQADVq1NDKlSur1GzNqcaMGaP33ntP06dPV/fu3SWd/NbA3XffrVtuuUV//vOfHc7Q/wYMGKAPP/xQLpf3qZf27t2rq6++WmvWrHEos8CZNm2a5syZo7fffts+q35GRoaGDh2qgQMHavjw4Q5n6F+fffaZ3G63rr32Wq/4/PnzVVBQYB+DHCz+/e9/63e/+53P2x5//HH96U9/quCMAuuuu+5Su3bt9OijjzqdSpkxUw4AABAAwTDvMXHiRG3btk1XX321QkJO7jZ6PB4NGTJEKSkpDmcXGHv27NE999zjdZztnj17dNVVV5U4435Vduq1ujdt2qSGDRvqwgsvlCRt375d4eHh2r9/f9A15U888YReeOGFEnGPx6Mnnngi6Jryhx56SLGxsbr++uu94qNHj9bs2bODrilv1qyZnnvuOaWmpuqSSy4pcYjsyJEjHcqsdMyUo0KdzyfZAACcX6Kjo+3rAVd1mzZt0sqVKxUREaF27dqpYcOGTqcUMAcPHlT37t3Vu3dvvfLKK9q1a5euuuoqdejQQbNnzy4xg15Vlecyd8F2CbGIiAitW7fO57kS2rRpExTH0Bc3b9483XHHHfrkk0/sb7w8/PDD+vDDD/W///1PLVu2dDhD/2rcuHGpt1mWpS1btlRgNmXDTDkq1JQpU+z/Hzx4UBMnTtS1116rrl27Sjp5bdAvvviiyh0HAgBAMEtKSlJSUpLTaVSI2rVre5307NNPP9XFF1+s//znP0HTkEtn12i/8847uvHGG0vMPFY1MTEx2rJlS4mmfPPmzVW+Nl+uu+46/fWvf9WAAQM0f/58/fOf/9THH3+shQsXqnnz5k6n53fp6elOp1BuzJTDMTfffLOuvPJKPfTQQ17xqVOn6ssvv9RHH33kTGIAAPhBMMyU33LLLerUqZOeeOIJr/if/vQn/fjjjz6vYR4sNm3apCuuuEK9evXSv/71rzJ/0y+YBcN5EiTp/vvv1/fff6+5c+eqadOmkk425DfffLM6d+6st956y+EMA+PNN9/U6NGjVadOHS1cuLDSXrPbX3Jzc5Wenq6mTZvah99UVjTlcEz16tW1cuXKEm8ImzZtUseOHXX06FGHMgMA4NwFQ1Nep04dffXVV2rXrp1X/KefftI111yjvXv3OpSZf5V2eN3x48cVHh4ut9ttx87nw+uCYZuWpMzMTF133XVatmyZEhMTJZ28DN5vfvMbffjhh4qNjXU2QT8o7SRn77//vjp27Gh/GCFJkydPrqi0KsTx48f18MMP25fB27hxo5o0aaKRI0cqISGhxIeMlUHl/sgAQa127dqaO3euHn/8ca/4Rx99FLSXWQEAnD9+97vfqUaNGk6ncU6OHj2qsLCwEvHQ0FBlZWU5kFFgFD+8DsEvJiZGqampWrBggVatWqWIiAi1b9/ePt46GKSlpfmMN23aVFlZWfbtwfgNkLFjx2rVqlVatGiRrrvuOjt+zTXX6JlnnqmUTTkz5XDMjBkzdM899+i6666zjyn//vvvNW/ePL311lsaNmyYswkCAODDvHnzVL16dfuY4zfeeEN///vf1bp1a73xxhtBc11nSercubNuuOEGjR8/3iuenJys//73v1q+fLlDmcEJwTJTnp6eftqTgaFqa9iwod59911ddtllXtvs5s2bdfHFF1fKDxSD52wVqHKGDRum1NRUxcbG6sMPP9QHH3ygmJgYffvttzTkAIBK6/HHH7d36n766Sc99thj6tu3r7Zs2VKlrotbFk8//bSee+45DR06VDNnztTMmTM1ZMgQPf/880F9UtZffvlFTz31lH77299q3759kk5+GLN27VqHM4M/NGvWTFdeeaX+/e9/69dff3U6nQqzefNmffHFFzpx4oSk4Lhsoy/79+9X3bp1S8SPHTtWab8ZQFMOR3Xp0kX/+c9/tGLFCqWlpek///mPunTp4nRaAACUKj09Xa1bt5YkffDBB7r++uuVkpKiv/zlL/r8888dzs6/brzxRn300UfavHmzRowYoccee0w7d+7Ul19+qQEDBjidXkAsXrxY7dq10w8//KAPP/zQPsfN6tWrg+7SYOerVatWqWPHjnrssccUHx+v4cOH64cffnA6rYA5ePCgrr76ajVv3lx9+/bVnj17JEn33nuvHnvsMYez87/OnTvr008/tX8vbMT//ve/29/OrWxoyuEoj8ejjRs36ptvvtGSJUu8fgAAqIzCwsJ0/PhxSdKXX36p3r17S5Jq1apVKb8Wea769eunb7/9VseOHdOBAwf01VdfqUePHk6nFTBPPPGEJk6cqAULFngdT3/llVfqu+++czAz/3rttdfsWeLt27eXada0YcOGCg0NDXRqAde2bVtNnjxZu3bt0vTp05WRkaHf/OY3atOmjSZPnqz9+/c7naJfjR49WqGhodq+fbsiIyPt+O2336558+Y5mFlgTJo0SePGjdPvf/975efn69VXX1WvXr00Y8YMPf/8806n5xPHlMMx33//vQYNGqRt27aVGAgsy1JBQYFDmQEAULobb7xRubm56tatm5577jmlp6erfv36mj9/vh566CFt3LjR6RRxDqpXr66ffvpJjRs39joedevWrWrZsmXQfN05JCREu3fvVt26deV2u7Vnzx6fX/k9H+Tk5Ogvf/mLxo4dq9zcXIWGhur222/Xiy++qHr16jmd3jmLj4/XF198oQ4dOnht0+np6WrXrl1QXvHop59+0p///GctX75cHo9HF198sf74xz+WuJJEZcHZ1+GYBx54QJ06ddKnn36qevXqVdpjPAAAKG7q1KkaMWKE3n//fb355puqX7++JOnzzz/3OtNvMCgoKNArr7yi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srOz0bt3b9y8eROnTp0SHe+TvXumsUwmw9q1a3H06FE0b94cAHDhwgU8ePAAAwcOFBWRiArhyy+/ROvWrZGUlIQGDRooxj09PdGtWzeByegt7iknIiIiKqTTp0+ja9euCAkJwbp163Dnzh2cPHkSlSpVEh3tk7m7uxfoPplMhpMnT6o5DRGR5mNRTkRERPQR9u/fjx49eqBu3bo4efIkKlasKDoSERGVQCzKiYiIiP5D9+7d8x2/cOEC7OzslAryPXv2FFUsIiLSANxTTkRERPQfjIyM8h338vIq4iRERKRpOFNOREREVECSJCExMRHm5uYoX7686DhERKQBeCQaERERUQFJkoRatWrhr7/+Eh2FiIg0BItyIiIiogLS0tJCrVq1kJaWJjoKERFpCBblRERERIWwcOFCjB8/HteuXRMdhYiINAD3lBMREREVgomJCTIzM5GTk4OyZctCT09P6frTp08FJSMiopKI3deJiIiICiE4OFh0BCIi0iCcKSciIiIiIiIShHvKiYiIiArpzp07mDZtGr766iukpKQAAA4fPozr168LTkZERCUNi3IiIiKiQggNDYWjoyP+/PNP7NmzBy9evAAAxMTEYObMmYLTERFRScOinIiIiKgQJk2ahLlz5+LYsWMoW7asYtzd3R3nz58XmIyIiEoiFuVEREREhXD16lV069Ytz7i5uTnPLyciokJjUU5ERERUCMbGxkhKSsozHhkZCSsrKwGJiIioJGNRTkRERFQIffv2xcSJE5GcnAyZTAa5XI7w8HCMGzcOAwcOFB2PiIhKGB6JRkRERFQI2dnZ8PHxwY4dOyBJEnR0dJCTk4N+/fph48aN0NbWFh2RiIhKEBblRERERB/h7t27uHz5MmQyGZydnWFnZyc6EhERlUA6ogMQERERlTTr1q1DUFAQbt26BQCoVasWRo0ahaFDhwpORkREJQ2LciIiIqJCmD59OoKCgjBy5Ei0aNECAHD+/HmMHj0a9+7dw9y5cwUnJCKikoTL14mIiIgKoWLFili2bBm++uorpfHt27dj5MiRSE1NFZSMiIhKInZfJyIiIiqE3NxcuLi45Blv3LgxcnJyBCQiIqKSjEU5ERERUSH0798fK1euzDP+888/o1+/fgISERFRScY95URERET/YcyYMYpfy2QyrF27FkePHkXz5s0BABcuXMCDBw94TjkRERUa95QTERER/Qd3d/cC3SeTyXDy5Ek1pyEiIk3CopyIiIiIiIhIEO4pJyIiIiIiIhKERTkRERERERGRICzKiYiIiIiIiARhUU5EREREREQkCItyIiIiIiJS2LhxI4yNjUXHICo1WJQTEREREWkomUz2wZePj0+e39O7d2/Ex8cXfViiUkpHdAAiIiIiIlKPpKQkxa937tyJGTNmIC4uTjGmp6endH92djb09PTyjBOR+nCmnIiIiIhIQ1WuXFnxMjIygkwmU7x/9eoVjI2NsWvXLri5uUFXVxdbtmzJs3w9ICAADRs2xOrVq1GtWjWUL18ePXv2RHp6urCPi0iTsCgnIiIiIirFJk6cCD8/P8TGxsLLyyvfe27fvo1du3bh999/x+HDhxEVFYURI0YUcVIizcTl60REREREpdioUaPQvXv3D97z6tUrbNq0CVWrVgUALFu2DJ9//jkWL16MypUrF0VMIo3FmXIiIiIiolLMxcXlP++pXr26oiAHgBYtWkAulyvtTyeij8OinIiIiIioFNPX1y/075HJZEr/S0Qfj0U5ERERERF9UGJiIh49eqR4f/78eWhpaaF27doCUxFpBhblRERERET0Qbq6uhg0aBCio6Nx9uxZ+Pn5oVevXtxPTqQCbPRGREREREQfZGdnh+7du6NTp054+vQpOnXqhJ9++kl0LCKNIJMkSRIdgoiIiIiIiqeAgADs27cPUVFRoqMQaSQuXyciIiIiIiIShEU5ERERERERkSBcvk5EREREREQkCGfKiYiIiIiIiARhUU5EREREREQkCItyIiIiIiIiIkFYlBMREREREREJwqKciIiIiIiISBAW5URERERERESCsCgnIiIiIiIiEoRFOREREREREZEg/w+x02uMIv8jWwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "os_accuracy = df.groupby('os').apply(weighted_avg, include_groups=False) * 100\n", + "trip_accuracy = df.groupby('trip').apply(weighted_avg, include_groups=False) * 100\n", + "\n", + "fig, axes = plt.subplots(1, 2, figsize=(12, 5))\n", + "os_accuracy.plot(kind='bar', ax=axes[0])\n", + "axes[0].set_title('Accuracy time by Operating System', fontweight='bold')\n", + "axes[0].set_xlabel('Operating System')\n", + "axes[0].set_ylabel('Accuracy (time)')\n", + "axes[0].grid(axis='y', linestyle='--', alpha=0.7)\n", + "\n", + "trip_accuracy.plot(kind='bar', ax=axes[1])\n", + "axes[1].set_title('Accuracy time by Trip', fontweight='bold')\n", + "axes[1].set_xlabel('Trip')\n", + "axes[1].set_ylabel('Accuracy (time)')\n", + "axes[1].grid(axis='y', linestyle='--', alpha=0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "84428f7f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABAEAAAJuCAYAAADB8RutAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACngUlEQVR4nOzdd3gU5drH8d/sbhqkQSgBQk/oggiCgECiNAXFiqCcI3bFo6Ii2AGl2I6KchRFIHiUFxvYD0UFBFF6QASJShEkoZOQEEiyO+8fMZNsCu7ihizs93NducjeO/vM/cwzzGTvfWbWME3TFAAAAAAAOOvZKjsBAAAAAABwelAEAAAAAAAgQFAEAAAAAAAgQFAEAAAAAAAgQFAEAAAAAAAgQFAEAAAAAAAgQFAEAAAAAAAgQFAEAAAAAAAgQFAEAAAAAAAgQFAEAICz2MGDBzVhwgR17dpV1atXV0hIiOrXr6+LLrpIr776qrKzs09LHi6XS08++aSaNm2q0NBQGYah6OjoClvfkiVLZBiGDMPQsGHDKmw9nhg7dqyVi2EYuuiii0ots2rVKrdlDMPQ8ePHT2l9KSkpGjt2rMaOHaslS5b8rXyTk5NPKQcAAOC/HJWdAACgYixevFjXXXed9u/f7xbfvXu3du/ercWLF6t79+4699xzKzyXadOm6emnn67w9ZwJFi9erE2bNqlNmzZW7JVXXvFZ+ykpKRo3bpz1ODEx0WdtAwCAMx8zAQDgLJSamqrLL7/cKgBccsklWrdunU6cOKGDBw/qk08+KfMT6Yqydu1a6/fk5GS5XC4dOXKkwtaXmJgo0zRlmqZffpo9ZcoU6/e9e/fqgw8+qMRsCuTk5EgqmAlQuO0qexYFAADwPYoAAHAWGjdunLKysiRJbdq00Weffab27dsrODhY1atX1+WXX66vv/7a7dPoo0eP6oknnlCbNm1UpUoVhYWFqXXr1nr88ceVmZnp1n6jRo2sKeOpqam68sorFRUVpZo1a+q6667Tvn37JEk7duyQYRiaNm2a9dphw4bJZrNZn1AXttOoUSO3dSQmJlrP7dixw4onJyerc+fOioyMVFBQkGrVqqVOnTpp+PDhMk1T0skvB/j11191yy23qFGjRgoODlZkZKS6du2qadOmWa8vnrthGEpMTNSCBQvUpUsXhYWFqVGjRnr00UeVl5fn1bg0btxYkvTOO+9YRZA33nhDubm51nNlmTBhgrp37666desqLCxMoaGhatKkiW655Ra3bdOoUSPddNNN1uNx48ZZfRg7dmyp7frdd99pyJAhql69uqpUqSKp7MsBnn/+eSt25513Wu3Pnj3bil9++eVu2w8AAPgpEwBwVnE6nWZkZKQpyZRkvv3223/5mv3795vNmze3XlPyp3nz5uaBAwes5Rs2bGg9V61atVLL9+nTxzRN09y+fXu5bfbs2dM0TdN63LBhQ7ecevbsaT23fft20zRNc968eeW2J8nMy8szTdM0Fy9ebMVuvPFGq83vv//eDA8PL/f11157relyuUrlHhkZadpstlLLT5w48S+37ZgxY6zlH3jgAbNOnTqmJPPf//63mZuba9atW9eUZD7//PNubefk5FhttGvXrtyc69SpYx48eLDUuJT8GTNmTKntWqNGDbdlSuY7c+ZM0zRN0+Vymf3797fin3/+ubljxw4zKirKlGQ2aNDAygEAAPg3ZgIAwFnm4MGDbp/ct27d+i9fM2bMGG3dulWS1KdPH+3evVt//PGHevXqJUnaunWrnnzyyTJf265dO+3atUs///yzatWqJUlauHCh0tPT1ahRI5mmqRtvvNFafvHixTJN85RuWvfNN99Yv3///ffKzc1VWlqavvnmGz300EOy2U5+WrvlllusGRKPPPKIjhw5orVr16p+/fqSpA8++EAffvhhqddlZmbq/vvv16FDh/Txxx9b8VmzZnmVf1BQkO644w5J0n/+8x998MEH2rNnj6pUqaJbbrml3NeNHTtWGzdu1KFDh5SXl6e9e/dan/inpaXp3XfflVQwe2HmzJnW68aMGWNN7S+cCVBcWFiYli5dqmPHjmn9+vXlrt8wDM2aNUtxcXGSCrbjkCFDlJGRoaCgIL333nuqXr26V9sCAABUDooAAHCWMUtMyTYM4y9f88knn1i/P//886pXr57q1q2r559/3op/+umnZb528uTJiouLU/PmzdW9e3crXnyauq80bdrU+n3ixIl68cUX9cMPPyg+Pl7PPffcSYsAv/76qzZv3ixJqlGjhp5++mlFRUXpvPPO0wMPPGAtV1Y/a9asqWeeeUbVqlXTwIEDFRMTI+nU+njnnXcqODhY27Zt07333itJuuGGG1StWrVyXxMTE6PHHntMrVu3VpUqVVS7dm23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XX/99brhhhv08ccfSyqawj9jxgw1adJEISEhMk1TGRkZuv3221WrVi1FRkbqoosu0oYNG9zafeaZZ1S7dm1FRETolltu0fHjx92eL3k5gMvl0rPPPqv4+HiFhISoQYMGmjBhgiSpcePGkqT27dvLMAwlJiZar5s5c6Zatmyp0NBQtWjRQq+99prbelatWqX27dsrNDRUHTt21Pr16z3aLgMGDNDBgwf13XffWbHk5GT16dNHtWrVclv28OHD+uc//6lq1aqpSpUquuSSS/TLL7+4LZOcnKwGDRqoSpUquvLKK3Xw4MFS6/zss8/UoUMHhYaGqkmTJho3bpzy8/M9ytdbFAEAAAAAAAoLC3P7xP/XX3/V+++/r48++siajt+/f3+lp6fryy+/1Nq1a3Xeeefp4osv1qFDhyRJ77//vsaMGaMJEyZozZo1qlOnTqk35yU98sgjevbZZ/XEE09o8+bNmj17tmrXri2p4I28JH311VdKS0vT3LlzJUnTpk3TY489pgkTJmjLli2aOHGinnjiCc2aNUuSlJ2drQEDBqh58+Zau3atxo4dW+4sh5KCg4N1ww03uM0GSE5O1s0331xq2WHDhmnNmjX69NNP9f3338s0TV166aXWdly5cqVuvvlmDR8+XCkpKUpKStL48ePd2liwYIGGDh2qe++9V5s3b9Ybb7yh5ORkqxDicybMjIwMU5KZkZFR2akAAAAAqERn6nuDnJwcc/PmzWZOTo5Hy994443mwIEDrccrV640Y2JizEGDBpmmaZpjxowxg4KCzH379lnLfP3112ZkZKR5/Phxt7aaNm1qvvHGG6ZpmmaXLl3MO++80+35zp07m+3atStz3ZmZmWZISIg5bdq0MvPcvn27Kclcv369W7x+/frm7Nmz3WJPP/202aVLF9M0TfONN94wq1evbmZnZ1vPv/7662W2VVzPnj3N++67z9ywYYMZERFhZmVlmUuXLjVr1apl5ubmmu3atTPHjBljmqZppqammpLM7777znr9gQMHzLCwMPP99983TdM0hwwZYvbr189tHdddd50ZFRVlPe7evbs5ceJEt2X++9//mnXq1Ck3z7J4ug84Kqa0AAAAAADwZ59//rnCw8OVn5+vvLw8DRw4UK+++qr1fMOGDVWzZk3r8dq1a5WVlaWYmBi3dnJycvTbb79JkrZs2aI777zT7fkuXbpo8eLFZeawZcsWnThxQhdffLHHee/fv1+7du3SLbfcottuu82K5+fnKyoqymq3Xbt2qlKlilsenmrbtq0SEhL04YcfavHixfrHP/6hoKCgUrk7HA517tzZisXExKh58+basmWLtcyVV17p9rouXbpo/vz51uO1a9dq9erVbp/8O51OHT9+XMeOHXPrgy9QBAAAAACAAJSUlKTXX39dQUFBqlu3bqk3uVWrVnV77HK5VKdOHS1ZsqRUW6d6o7+wsDCvX+NyuSQVXBJQ/A24JNntdkmSaZqnlE9xN998s/7zn/9o8+bN1mUJxZW3DtM0ZRiGx3m4XC6NGzdOV111VannQkNDvcz6r1XqPQG+/fZbXXbZZapbt64Mw7BuQlHINE2NHTtWdevWVVhYmBITE/XTTz+5LXPixAndc889qlGjhqpWrarLL79cu3fvPo29AAAAAIAzT9WqVRUfH6+GDRuWKgCU5bzzzlN6erocDofi4+PdfmrUqCFJatmypX744Qe315V8XFxCQoLCwsL09ddfl/l8cHCwpIJPxgvVrl1b9erV07Zt20rlUXgjwVatWmnDhg3KycnxKI+yXH/99frxxx/Vpk0btWrVqtTzrVq1Un5+vlauXGnFDh48qNTUVLVs2dJa5q+2x3nnnaetW7eW6kt8fLxsNt+/Za/UIkB2drbatWunKVOmlPn8c889pxdffFFTpkzR6tWrFRsbq969e+vo0aPWMiNGjNC8efM0Z84cLV++XFlZWRowYIDbTgIAAAAA+Ht69eqlLl266IorrtCCBQu0Y8cOrVixQo8//rjWrFkjSbrvvvs0Y8YMzZgxQ6mpqRozZkypD3KLCw0N1ejRozVq1Ci9/fbb+u233/TDDz9o+vTpkqRatWopLCxM8+fP1969e5WRkSGp4NsLJk2apMmTJys1NVU//vijZs6cqRdffFFSwRt4m82mW265RZs3b9aXX36pF154wav+VqtWTWlpaeUWKBISEjRw4EDddtttWr58uTZs2KChQ4eqXr16GjhwoCTp3nvv1fz58/Xcc88pNTVVU6ZMcbsUQJKefPJJvf322xo7dqx++uknbdmyRe+9954ef/xxr/L1VKUWAS655BKNHz++zGkPpmnq5Zdf1mOPPaarrrpKbdq00axZs3Ts2DHNnj1bkpSRkaHp06fr3//+t3r16qX27dvrnXfe0Y8//qivvvrqdHcHAAAAAM5ahmHoyy+/VI8ePXTzzTerWbNmGjx4sHbs2GHdzf+6667Tk08+qdGjR6tDhw7auXOn7rrrrpO2+8QTT+jBBx/Uk08+qZYtW+q6667Tvn37JEkOh0OvvPKK3njjDdWtW9d6c33rrbfqrbfeUnJyss455xz17NlTycnJ1kyA8PBwffbZZ9q8ebPat2+vxx57TM8++6zXfY6Oji51WURxM2fOVIcOHTRgwAB16dJFpmnqyy+/tGZWXHDBBXrrrbf06quv6txzz9XChQtLvbnv27evPv/8cy1atEjnn3++LrjgAr344otq2LCh1/l6wjB9cbGEDxiGoXnz5lnfF7lt2zY1bdpU69atU/v27a3lBg4cqOjoaM2aNUvffPON9XUU1apVs5Zp166drrjiCo0bN67MdZ04cUInTpywHmdmZqp+/fo6ePCgIiMjJUk2m002m00ul8u65qR43Ol0ul3fUV7cbrfLMIxS3/FYeK1KyRkL5cUdDodM03SLG4Yhu91eKsfy4vSJPtEn+kSf6BN9ok/0iT7Rp5P3KTMzUzExMcrIyLDeG5wJjh8/ru3bt6tx48YVch05/J+n+4Df3hgwPT1dkqyKUqHatWtr586d1jLBwcFuBYDCZQpfX5ZJkyaVWSBYv369VeWpWbOmmjZtqu3bt2v//v3WMnFxcYqLi1Nqaqo1FUWSmjRpolq1amnTpk1F152cWKxmcQsVXfUPrftlqFyuouts2jSap2BHttb9OtQth/Pi31FuflVt2lF0B0mbLU8dE97Rkex6St3dx4qHBh9R28bztO9IM+3Y282KR1b9Qy3iFmr3gXO152BRAaVGVKqaxH6nbenddCCjmRWvG7NeDdq871mfJLVo0ULR0dFav3692wG9bdu2Cg4OtqYCFerYsaNyc3O1ceNGK2a323X++ecrIyNDP//8sxUPCwtTu3btdODAAW3bts2KR0VFqWXLltqzZ0/BPR9OLP7LPsXVSNHW3X2UmV3Pijeq/Z1qRafqx+1X6nhutBWvyHEKi77Usz79ySf7nk5tnHo99JoubVXDiuU7TX24YZ9iI4OVGF/0/yzzeL6+3HxQTWLC1Klh0ckxPTNXS349rDZ1qqpNnXArvu1gjlbtzFSnhpFqElN085dNaVnalJatxPhqio0MtuKrdmZq28EcXdoqRpGhRYepJb8eVnpmrq5pV0sXndvUoz75fN/7k1fjdGJxpex7p3KMiD93ZqXse6c0Tlume9QnvzhGhCRVzr4n78epTZ17/er8dLJx2rT3A/87P/2p1Dj9ed7yp/NTeeMUVesKvzs/lTdOUzdcr+gDRTcFyw86qkO1lyo0u74iD7ez4rmh+3WkxkpVzWymqplF+1hO1d91tNpGRRxuq7DsBlY8OzJV2ZGpij7QWcHHi+6Mnlltg45X3aXqe3vKkRdhxY/UWKnc0P2quaefDFfReetg7SVy2Y+r5p5+ahx+gUd98otjRID/DZudnS3gbOa3MwFWrFihbt26ac+ePapTp4613G233aZdu3Zp/vz5mj17tm666Sa3T/UlqXfv3mratKmmTp1a5rpO10wA1952stvyZRim8p3uN9qw2/IlmXK6SsbzJBlyutzrMw57nkzTPW4Ypuy2fLlMm1wue+m4yyaXWRS3GS7ZbE65XHa5TFuxuFOOuj+fUZVh1952f9knm80lp8sh0zSK9ckpm1E6XpHjZI/d6NfV7uLxDsNflsNmuMXzXaYMSfZicVOS02XKMCS7UTpuMyRbsbjLNOUyVW7cbjNUfK1O05RZVtxlypTksBlaMflfHvWprPjp/lTCtbddpex7p3KMcNTdcsZ8epSfdo5HffKHY4St9gaP+uQPxwhjf2uP+lSoos9PJxsns+YWvzs/FeXoPk5F5y3/OT+VN07lnbf88RPmyVt6yyi2L0mmTJtTMo1y4jYZxfYx03BJhqvcuOGyS8XORKbhlAzzJHH37W4aBX00TIeGN/vcoz75wzEi0P+GZSYAzlRn/EyA2NhYSQWf9hcvAuzbt8+aHRAbG6vc3FwdPnzYbTbAvn371LVr13LbDgkJUUhISKm4w+GQw+G+SQoPIiUVHixOFnfZ84raLva72zrLjJtlxg2j7LjNcMlmd5WO21yyqay4UzaVvnGiJ30qruS2OpW4YRhlxsvb7taJrcR2KLdPtvxSsZPFK2KcbH9uv7/qk6fxih6nfFfpuqBZXtyU8suoI7rMgjf4nsadZbR9sni+yywz/9Ox73kaL+9YcDr3PStHr48RlbPveTtOZfbV2+PeaTpG2BzF//g9ffueJ/GSubiMgv93fnV+Km+c/PD8VF685HnLH85PVo4lxulUz1uVcYyQYVpvtD2Luwre4HsYN21l32i6/HjZ42ca+R6ft/zhGBHof8OW9zxwtqjUGwOeTOPGjRUbG6tFixZZsdzcXC1dutR6g9+hQwcFBQW5LZOWlqZNmzadtAgAAAAAAEAgqtQyV1ZWln799Vfr8fbt25WSkqLq1aurQYMGGjFihCZOnKiEhAQlJCRo4sSJqlKliq6//npJBddC3XLLLXrwwQcVExOj6tWra+TIkTrnnHPUq1evyuoWAAAAAAB+qVKLAGvWrFFSUpL1+IEHHpAk3XjjjUpOTtaoUaOUk5Oj4cOH6/Dhw+rcubMWLlyoiIiiG7G89NJLcjgcGjRokHJycnTxxRcrOTm53Ok/AAAAAAAEqkotAiQmJupk9yU0DENjx47V2LFjy10mNDRUr776ql599dUKyBAAAAAAgLOH394TAAAAAAAA+Ba3vgQAAKhgrx5p8NcL+Yn7Yis7AwBARaIIAAAAAABnqd62a0/r+ha5Pjit64P3uBwAAAAAAFAphg0bJsMwrJ+YmBj169dPGzdutJYxDEMff/xxuY/z8vI0ePBg1alTx3pdo0aN3Not/HnmmWdOV9f8FkUAAAAAAECl6devn9LS0pSWlqavv/5aDodDAwYM8Oi1x44d0+WXX67Vq1dr+fLlatu2rfXcU089ZbVb+HPPPfdUVDfOGFwOAAAAAACoNCEhIYqNLbghSWxsrEaPHq0ePXpo//79qlmzZrmvO3LkiAYMGKDMzEwtX75cderUcXs+IiLCahdFmAkAAAAAAPALWVlZevfddxUfH6+YmJhyl0tPT1fPnj3lcrm0dOnSUgUAlI8iAAAAAACg0nz++ecKDw9XeHi4IiIi9Omnn+q9996TzVb+29X77rtPubm5+uqrr1StWrUylxk9erTVbuHPkiVLKqgXZw6KAAAAAACASpOUlKSUlBSlpKRo5cqV6tOnjy655BLt3Lmz3NdcdtllSk1N1RtvvFHuMg899JDVbuFP586dK6ILZxTuCQAAAAAAqDRVq1ZVfHy89bhDhw6KiorStGnTNH78+DJfM3ToUF1++eW6+eab5XQ6NXLkyFLL1KhRw61dFKAIAAAAAADwG4ZhyGazKScn56TL/fOf/5TdbteNN94ol8ulUaNGnaYMz2wUAQAAAAAAlebEiRNKT0+XJB0+fFhTpkxRVlaWLrvssr987Q033CCbzaZ//OMfcrlcevjhh63njh49arVbqEqVKoqMjPRtB84wFAEAAAAA4Cy1yPVBZafwl+bPn2/d3T8iIkItWrTQBx98oMTERI9eP2TIENntdt1www1yuVx69NFHJUlPPvmknnzySbdl77jjDk2dOtWn+Z9pKAIAAAAAACpFcnKykpOTT7qMaZonfSxJgwYN0qBBg6zHO3bs8EV6ZyW+HQAAAAAAgABBEQAAAAAAgABBEQAAAAAAgABBEQAAAAAAgABBEQAAAAAAgADBtwPgjNRx3F2VnYLH1r1e2RkAAAAAQAFmAgAAAAAAECAoAgAAAAAAECAoAgAAAAAAECC4JwAAAAAAnKV6dx1/Wte3aMXjp3V98B4zAQAAAAAAlWLYsGEyDMP6iYmJUb9+/bRx40ZJ0o4dO2QYhlJSUkq99oorrtCwYcOsx9u2bdOQIUNUt25dhYaGKi4uTgMHDlRqaupp6s2ZgSIAAAAAAKDS9OvXT2lpaUpLS9PXX38th8OhAQMGeNVGbm6uevfurczMTM2dO1dbt27Ve++9pzZt2igjI6OCMj8zcTkAAAAAAKDShISEKDY2VpIUGxur0aNHq0ePHtq/f7/HbWzevFnbtm3TN998o4YNG0qSGjZsqG7dulVIzmcyZgIAAAAAAPxCVlaW3n33XcXHxysmJsbj19WsWVM2m00ffvihnE5nBWZ45qMIAAAAAACoNJ9//rnCw8MVHh6uiIgIffrpp3rvvfdks3n+drVevXp65ZVX9OSTT6patWq66KKL9PTTT2vbtm0VmPmZiSIAAAAAAKDSJCUlKSUlRSkpKVq5cqX69OmjSy65RDt37vSqnbvvvlvp6el655131KVLF33wwQdq3bq1Fi1aVEGZn5koAgAAAAAAKk3VqlUVHx+v+Ph4derUSdOnT1d2dramTZumqKgoSSrz5n5Hjhyxni8UERGhyy+/XBMmTNCGDRvUvXt3jR9/er8m0d9RBAAAAAAA+A3DMGSz2ZSTk6Nq1aqpZs2aWr16tdsyOTk5+umnn9S8efOTttOiRQtlZ2dXdMpnFL4dAAAAAABQaU6cOKH09HRJ0uHDhzVlyhRlZWXpsssukySNHDlSEydOVO3atdW1a1cdPnxYzz77rBwOh4YOHSpJSklJ0ZgxY/SPf/xDrVq1UnBwsJYuXaoZM2Zo9OjRldY3f0QRAAAAAADOUotWPF7ZKfyl+fPnq06dOpIKpvO3aNFCH3zwgRITEyUVFAHCw8P1wgsv6LffflN0dLQuuOACLVu2TJGRkZKkuLg4NWrUSOPGjdOOHTtkGIb1+P7776+srvkligAAAAAAgEqRnJys5OTkky5js9k0fPhwDR8+vNxlatSoocmTJ/s4u7MT9wQAAAAAACBAUAQAAAAAACBAUAQAAAAAACBAUAQAAAAAACBAUAQAAAAAACBAUAQAAAAAACBAUAQAAAAAACBAUAQAAAAAACBAUAQAAAAAACBAOCo7AQAAAABAxTjvrpdO6/rWvX7/aV0fvMdMAAAAAABApUpPT9c999yjJk2aKCQkRPXr19dll12mr7/+2m25iRMnym6365lnninVRnJysgzDsH5q166tyy67TD/99NPp6sYZgSIAAAAAAKDS7NixQx06dNA333yj5557Tj/++KPmz5+vpKQk3X333W7Lzpw5U6NGjdKMGTPKbCsyMlJpaWnas2ePvvjiC2VnZ6t///7Kzc09HV05I1AEAAAAAABUmuHDh8swDK1atUrXXHONmjVrptatW+uBBx7QDz/8YC23dOlS5eTk6KmnnlJ2dra+/fbbUm0ZhqHY2FjVqVNHHTt21P3336+dO3dq69atp7NLfo0iAAAAAACgUhw6dEjz58/X3XffrapVq5Z6Pjo62vp9+vTpGjJkiIKCgjRkyBBNnz79pG0fOXJEs2fPliQFBQX5NO8zGTcGBAAAAABUil9//VWmaapFixYnXS4zM1MfffSRVqxYIUkaOnSounXrpldffVWRkZHWchkZGQoPD5dpmjp27Jgk6fLLL//L9gMJMwEAAAAAAJXCNE1JBdP4T2b27Nlq0qSJ2rVrJ0k699xz1aRJE82ZM8dtuYiICKWkpGjt2rWaOnWqmjZtqqlTp1ZM8mcoigAAAAAAgEqRkJAgwzC0ZcuWky43Y8YM/fTTT3I4HNbPTz/9VOqSAJvNpvj4eLVo0UJ33HGH/vGPf+i6666ryC6ccSgCAAAAAAAqRfXq1dW3b1/95z//UXZ2dqnnjxw5oh9//FFr1qzRkiVLlJKSYv18++23Wr16tTZt2lRu+/fff782bNigefPmVWQ3zigUAQAAAAAAlea1116T0+lUp06d9NFHH+mXX37Rli1b9Morr6hLly6aPn26OnXqpB49eqhNmzbWz4UXXmg9X57IyEjdeuutGjNmjHXpQaDjxoAAAAAAcJZa9/r9lZ3CX2rcuLHWrVunCRMm6MEHH1RaWppq1qypDh06aPLkybr++us1evToMl979dVXa9KkSXr22WfLbf++++7TK6+8og8++ECDBg2qqG6cMSgCAAAAAAAqVZ06dTRlyhRNmTKl1HMHDhwo93UPPPCAHnjgAUnSsGHDNGzYsFLLNGjQQHl5eT7L9UzH5QAAAAAAAAQIigAAAAAAAAQIigAAAAAAAAQIigAAAAAAAAQIigAAAAAAAAQIigAAAAAAAAQIigAAAAAAAAQIigAAAAAAAAQIigAAAAAAAAQIR2UnAAAAAACoGE1e+fdpXd+2ex88reuD95gJAAAAAACoFMOGDdMVV1xR5nONGjXSyy+/7BZbv369rrvuOtWpU0chISFq2LChBgwYoM8++0ymaUqSduzYIcMwlJKSUqrNxMREjRgxwlrmZD9jx449ae4l24iKitIFF1ygzz77rMzlJ06cKLvdrmeeeabUc8nJyYqOji73sS8xEwAAKljHcXdVdgoeW/d6ZWcAAABQtk8++USDBg1Sr169NGvWLDVt2lQHDx7Uxo0b9fjjj6t79+4ev3GuX7++0tLSrMcvvPCC5s+fr6+++sqKhYeHe9TWV199pdatW+vIkSN67bXXdPXVV2vdunVq06aN23IzZ87UqFGjNGPGDD388MMetV0RKAIAAM5Ifeu2q+wUPLbIVdkZAABwZsvOztYtt9yi/v37a+7cuVa8adOm6tSpk2699VZrJoAn7Ha7YmNjrcfh4eFyOBxuMU/FxMQoNjZWsbGxmjBhgl599VUtXrzYrQiwdOlS5eTk6KmnntLbb7+tb7/9Vj169PB6Xb5AEQBnpJgN2ZWdAgAAAIDTZOHChTp48KBGjRpV7jKGYZzGjErLy8vTtGnTJElBQUFuz02fPl1DhgxRUFCQhgwZounTp1MEAAAAAACgLKmpqZKk5s2bW7HVq1crKSnJejxnzhwNGDDAety1a1fZbO63wcvJydG5557r09wK15OTkyOXy6VGjRpp0KBB1vOZmZn66KOPtGLFCknS0KFD1a1bN7366quKjIz0aS6eoAgAAAAAADjjtG3b1rr5X0JCgvLz892ef++999SyZUu32A033ODzPN577z21aNFCqampGjFihKZOnarq1atbz8+ePVtNmjRRu3YFlzKee+65atKkiebMmaPbb7/d5/n8FYoAAAAAFezdHZ0qOwWP3deisjMAgNISEhIkSVu3btUFF1wgSQoJCVF8fHy5r6lfv36p58PCwnyeW/369ZWQkKCEhASFh4fr6quv1ubNm1WrVi1J0owZM/TTTz/J4Sh6++1yuTR9+vRKKQLwFYEAAAAAAL/Wp08fVa9eXc8++2xlp3JSPXv2VJs2bTRhwgRJ0o8//qg1a9ZoyZIlSklJsX6+/fZbrV69Wps2bTrtOTITAAAAAABQaTIyMqxp/YWKT6eXCu7e/9Zbb+m6665T//79de+99yohIUFZWVmaP3++pII7/vuDBx98UNdee61GjRql6dOnq1OnTmXeBLBLly6aPn26XnrppTLbcTqdpbZLcHCwWrVq9bfyowgAAAAAAGepbfc+WNkp/KUlS5aoffv2brEbb7yx1HJXXnmlVqxYoWeffVb//Oc/dejQIUVFRaljx46lbgpYmQYMGKBGjRppwoQJev/99zV69Ogyl7v66qs1adKkcmc3ZGVlldouDRs21I4dO/5WfobpzZcpnqUyMzMVFRWljIwMn96d0ZXezGdtVTRbbGplp+CV3l3HV3YKHlu04vHKTsFj591VdhXSH617/f7KTsFjbNeK0dt2bWWn4LFFrg8qOwWPce6qGJ3mP1rZKXhsVb+JlZ2Cxyb/3KuyU/DYfS2+quwUPBbox4GKem9Q0Y4fP67t27ercePGCg0Nrex0UAk83Qe4JwAAAAAAAAGCIgAAAAAAACXceeedCg8PL/PnzjvvrOz0Thn3BAAAAAAAoISnnnpKI0eOLPO5M+lSkZIoAgAAAAAAUEKtWrVUq1atyk7D57gcAAAAAACAAEERAAAAAACAAEERAAAAAACAAEERAAAAAACAAEERAAAAAACAAMG3AwAAAADAWarT/EdP6/pW9Zt4WtcH7zETAAAAAABQafbt26c77rhDDRo0UEhIiGJjY9W3b199//33kiTDMPTxxx+Xet2IESOUmJhoPR42bJgMw7B+YmJi1K9fP23cuFGSNH/+fBmGofT0dLd2YmNjVb9+fbfY7t27ZRiGFi5c6BYLDg5WixYtrNjSpUsVFBSk5cuXu70+OztbTZo00f33339K26QiUQQAAAAAAFSaq6++Whs2bNCsWbOUmpqqTz/9VImJiTp06JDXbfXr109paWlKS0vT119/LYfDoQEDBkiSLrzwQjkcDi1ZssRafsuWLTp+/LgyMzP166+/WvHFixcrKChI3bp1s2LJyckaNGiQjh07pu+++06S1LNnT91zzz0aNmyYsrOzrWVHjRqlkJAQTZo0yes+VDQuBwAAAAAAVIojR45o+fLlWrJkiXr27ClJatiwoTp16nRK7RXOJJAKPuEfPXq0evToof3796tmzZo6//zztWTJEg0ePFiStGTJEl144YUyTVNLlixRfHy8Fe/UqZOqVq0qSTJNUzNnztRrr72muLg4TZ8+3SoQTJw4UfPnz9fo0aM1ZcoULV68WNOmTdOKFSsUGhr6t7ZPRWAmAAAAAACgUoSHhys8PFwff/yxTpw44dO2s7Ky9O677yo+Pl4xMTGSpKSkJC1evNhaZvHixUpMTFTPnj1LxZOSktweHzt2TL169dI//vEPvf/++zp69KgkKTQ0VG+//bbefPNNffzxx7r55pv16KOPqmPHjj7tj68wEwAAKljMGysqOwXPve5/160BAICzl8PhUHJysm677TZNnTpV5513nnr27KnBgwerbdu2Xrf3+eefKzw8XFLBdfl16tTR559/Lput4PPvxMRETZw4UWlpaapTp46WLl2qhx56SC6XS5MnT5Yk7dq1S9u3b3crAkyfPl2DBw+W3W5X69atFR8fr/fee0+33nqrJKljx4565JFHdPXVV6t9+/Z6/PHH/+6mqTB+PRMgPz9fjz/+uBo3bqywsDA1adJETz31lFwul7WMaZoaO3as6tatq7CwMCUmJuqnn36qxKwBAAAAAJ66+uqrtWfPHn366afq27evlixZovPOO0/Jyclet5WUlKSUlBSlpKRo5cqV6tOnjy655BLt3LlTktStWzcFBwdryZIl2rx5s3JycnTeeeepQ4cOyszM1C+//KLFixcrJCREXbt2lVRwycLcuXM1dOhQaz1Dhw7VjBkz3Nb9+OOPy+Vy6eGHH5bD4b+ft/tvZpKeffZZTZ06VbNmzVLr1q21Zs0a3XTTTYqKitJ9990nSXruuef04osvKjk5Wc2aNdP48ePVu3dvbd26VREREZXcAwAAAOlAakxlp+C5fpWdAIBAFBoaqt69e6t379568skndeutt2rMmDEaNmyYIiIilJGRUeo1R44cUVRUlFusatWq1nX9ktShQwdFRUVp2rRpGj9+vKpUqaJO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BAiKAAAAAAAABAiKAAAAAAAABAiKAAAAAAAABAiKAAAAAAAABAiKAAAAAAAABAiKAAAAAAAABAiKAAAA/H979x9X493/Afx16vRLP1WIJD/6QYyhIUxlEvJrQrnHXdhuxoSZ2OY7G4a1udn9vbU2dyX7RrEwzBArMrOFik030xj3rZZbtfRDv87n+0f3udbpnH7RUTmv5+NxPR6uz/W5ruvz+VyXzzm9r8+5PkREREQ6gkEAIiIiIiIiIh3BIAARERERERGRjmAQgIiIiIiIiEhHMAhAREREREREpCMYBCAiIiIiIiLSEQwCEBEREREREekIBgGIiIiIiIiIdASDAEREREREREQ6gkEAIiIiIiIiIh3BIAARERERERGRjmAQgIiIiIiIiEhHMAhAREREREREpCMYBCAiIiIiIiLSEQwCEBEREREREekIBgGIiIiIiIiIdASDAEREREREREQ6gkEAIiIiIiIiIh3BIAARERERERGRjmAQgIiIiIiIiEhHMAhAREREREREpCPkLV0AImpFzme0dAmIiIiIiEiLOBKAiIiIiIiISEcwCEBERERERESkIxgEICIiIiIiItIRDAIQERERERER6QgGAYiIiIiIiIh0BIMARERERERERDqCQQAiIiIiIiIiHcEgABEREREREZGOYBCAiIiIiIiISEcwCEBERERERESkIxgEICIiIiIiItIRDAIQERERERER6Qh5SxeAiIiIiIhaD/f3Xm3pIjTapU9augREbQ9HAhARERERERHpCAYBiIiIiIiIiHQEgwBEREREREREOoJBACIiIiIiIiIdwSAAERERERERkY7g7ABERERERCSxyShu6SIQkRYxCEBERER/OJ/R0iUgIiIiLWIQgNomfkklIiIiIiJqMr4TgIiIiIiIiEhHPDVBgPDwcPTo0QPGxsYYPHgwUlJSWrpIRERERERERK3KUxEEiI+Px7Jly/D2228jLS0Nzz//PMaPH4/bt2+3dNGIiIiIiIiIWo2n4p0Af/3rXzF//ny8/PLLAIBt27bh+PHj+OSTT7Bp06YWLh0RERERURvCdy8RPdXafBCgvLwcFy9exOrVq1XSx44di3Pnzmncp6ysDGVlZdL677//DgDIy8tDZWUlAEBPTw96enpQKBRQKBRSXmV6VVUVhBD1pxsoUFWpgFAIyA31VcpQWVEFCKin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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "confusion_matrix = pd.crosstab(df['actual_mode'], df['predicted_mode'])\n", + "normalized_matrix = confusion_matrix.div(confusion_matrix.sum(axis=1), axis=0) * 100\n", + "ax = normalized_matrix.plot(kind='bar', \n", + " stacked=True, \n", + " figsize=(10, 7),\n", + " colormap='viridis')\n", + "\n", + "plt.title('Confusion Matrix', fontweight='bold')\n", + "plt.ylabel('Percentage of Predictions (%)')\n", + "plt.xlabel('Actual Mode of Transit')\n", + "plt.xticks(rotation=0)\n", + "plt.legend(title='Predicted Mode', bbox_to_anchor=(1.05, 1), loc='upper left')\n", + "plt.grid(axis='y', linestyle='--', alpha=0.7)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "85dbfc09", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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uNBIMvfcc48pLCw0RUVF5sQTT4y/hpLMz372s6TPSd97RZIpLy838+bNM7W1tfE+9O+zMcb88pe/NLm5uUaSKSoqMnPnzo0/hzabzTzwwAPDei0aGhrMggULzJQpU4wkM2vWrITn5LHHHoufO5Lv1aH0fR+ffvrp5txzz40//ty5c43T6TSSzOGHH26ampoG3HbmzJnx52r27Nlmzpw58e9lt9s94Hv5oosuMrNmzTKSzJQpUxL6eMMNN8TPO5jXEBgPBFhgBL73ve8ZSWbevHlJj19zzTVGkrn44osT2gcLsLFYzMybNy8eRvuHgj/84Q+moKDASDIPPfRQwu0OJsDm5OSYFStWmEgkYowxJhQKmcsuu8xIMvPnzx/O0xA3VICNxWJm7ty5RpK58cYb4+2DBdg9e/bEQ+HXv/51EwwGjTHGRKNRc9ddd8Vrf+eddxJud/vttxtJ5vbbb0+p9j7f/OY3jSRTXV1t3nzzzXj7+++/b4488kgjyXz+858fcLu+H/Sphn6v12sOOeSQeODp6ekxxvT28wc/+IHJyclJKcD+v//3/4wkM2fOHFNXV5dwfnNzs7nvvvvij9FnsPvv09nZaZ544gnT1taW0N7R0WFuuOEGI8lceeWVA27X95zk5OSYG264wfj9fmNM73vh29/+dvx57nvv9bnvvvuMJJOfn29+9rOfmWg0Gj/W1tZmfvCDH5jm5uZ42zvvvGNcLpfJy8szP/3pTxPO/+1vf2uKi4uNw+EwmzZtGrSP++t7Lz/++ONJj4/0e3Uofd/HTqfTFBcXmz//+c/xYzt37jRz5swxksxFF1004LarVq0yH374YUJbOBw2jz76qHE6neawww5LeF6MGfo/j31G+hoC44UAC4zA7t274yNCW7duTTgWDAZNWVmZkWSef/75hGODBdg1a9YYScblcsVHv/rrG42rra1NGNk5mAB73nnnDTjW0tISH/lsb28f6ilIMFiADQaD5pZbbonX8te//jV+bLAforfddlt8xDOZT33qU0aSufzyyxPaDybAejwek5+fbySZZ599dsDx119/PT6i98EHHyQcG2mAffTRR40kM23aNBMKhQYcP//881MKsCtWrDCSzP333z/sGg4UYA+kpqbG5Ofnm3A4nNDe95zMmTNnQHgKhULxEdK33nor3u7z+Ux5ebmRZJ588slhPf6FF144ZJ9/9KMfGUnm6quvHnafDhRgR/q9OpS+72NJ5t577x1w/J133om///YPq0P54he/aCSZV155JaE9lQCbymsIjCfmwAIjMG3aNC1evFjSvqWy+vz+979XR0eHpkyZorPOOmtY97d69WpJ0uc+97mkyy999atflcvl0s6dO7Vt27aDrL7Xv//7vw9oq6ioiM/P/eijj1K+zz/84Q867bTTdNppp2nevHmqqKjQPffcI0n6xje+EZ8LO5S+5+KGG25IevzrX/96wnmj4eWXX5bP59P06dP16U9/esDxk046SaeccoqMMVqzZs2oPOYf//hHSdKXv/zlpMthXXfddSndX9+Fgs8///yA+boH689//rO+8Y1v6Nxzz9Xpp58ef409Ho98Pt+gc5uvvvpq2e2JP2ZycnI0Z84cSYnvsVdeeUVtbW2qrq4e1jrLoVBIL7zwghwOx6Bzjs8//3xJ0rp164bTzWEZy+/V3NzcpN+Xxx13nE477TQZY5K+77du3arbb79dF154oRYtWhR/ffr6/c4776RUR3+pvIbAeHKmuwDAqi6//HK99NJLeuqpp/Rf//Vf8fa+QHvJJZfI6Rzet9h7770nSTr66KOTHi8qKlJNTY0++OADvffeezryyCMPsnoNuhbtlClTtG3btmGtc7u/5uZmNTc3S+pdsWHSpEk67bTT9JWvfEUXXHDBsO7jQM9F36YQTU1N6urqUnFxccp1DvaYRx555KC7lx1zzDF69dVX4+eO1mMeddRRSY8P1j6YCy64QDNmzNDq1atVXV2tT37yk/rEJz6hRYsWjXgjjVAopC984QsHXC90sAuMhnqPSUp4j7377ruSpJNPPnlAYErmvffeUyAQUG5urj71qU8lPcfsvZhqz549B7y/4RrL79VDDjlERUVFSY8dddRRevnllwe8/1asWKH/+I//UCwWG/R+B3t9hiOV1xAYT4zAAiP02c9+Vvn5+froo4+0YcMGSVJnZ6deeOEFSYmrDxxI3w+Bvh8KyVRWVkqSuru7R1pygoKCgqTtfeGh74d/Kq644gqZ3qlJikQiam5u1gsvvDDs8Cod+Lnoex6k0Xsu0vH89z3m5MmTh3y84SooKNBf//pXXXXVVYrFYvrlL3+pG264QbNnz9Yxxxyj3//+9ynXePfdd+s3v/mNqqqq9OSTT2rHjh0KBALx13jBggWSFF/dIFlNySR7j3V1dUmSSktLh1Wbx+OR1BuyX3nllaR/+r4vA4HAsO5zOMbyvZLqfa5fv17f+c53ZLPZtGLFCm3evFler1exWEzGGN12222SBn99hmMsPieA0UCABUaosLAwHsz6Rl2feeYZBYNBHXXUUTrxxBNTui9J8dHLZPqW7BpshCZTHOi56L902Wg9F+l4/vses6WlJenxoWoZzCGHHKL/+Z//UXt7u1577TXdfffdmjdvnrZs2aILLrhAf/vb31K6v761jp944gldfvnlqq2tlcvlih+vq6tLucbB9D2vnZ2dwzq/7/mbNm1aPFAP9We0jOV7ZbD3Qv/H63+ffa/Pt771Ld166606+uijVVBQEP8twmi+PsBEQ4AFDkLf1rLPPPOMwuHwgK1jh+tjH/uYJGnLli1Jj3d3d8d/GPWdm6kO9Fz0rW1ZWVmZMH1gsF/9p/KY77777qBhp+9xR+v577ufwXZL6/uV+kg4nU7Nnz9f3/72t7Vx40ZdfPHFikaj+p//+Z+U7qdvPdhTTz11wLG2trZR/dV83zSHjRs3Dvnr8D6zZs1STk6OGhoaDupX5Ps70PtoLL9X6+rqBv2VfN/7of99DvX6SIPPfT2Y7xVgoiDAAgfhX//1X1VVVaW2tjY9/PDDevnllxO2jh2us88+W5L0q1/9So2NjQOOP/zwwwoGg6qtrdURRxwxKrVPVH3PxYMPPpj0+AMPPJBwXp++nbD6dsZKxWmnnab8/HzV1dXpueeeG3D8jTfe0KuvviqbzaYzzzwz5ftPpu8Cv8ceeyzpr3gfeuihUXkcSfr4xz8uSaqvr09oP9Bz1nc82YYdP/jBDxSNRketxgULFqiiokJ79uzR008/fcDz8/PzdfbZZysWi8XfE6PhQM/JWH6vhkIhPfbYYwPa//nPf+qvf/3rgPffUK/P6tWrBw2wB/O9AkwUBFjgIDgcDl166aWSen+NZ4zRwoULNX369JTu54wzztBJJ52kYDCoSy65JOHXk6tXr47vMnXrrbdm/OjJ1772NRUXF2vTpk36xje+oVAoJEmKxWJauXKlnn/+eeXk5Oib3/xmwu0OO+wwSdKGDRsUiURSeszi4mJ97Wtfk9S7+sHbb78dP/bhhx/qiiuukCR9/vOfH/SillRdcsklmjZtmnbv3q1rr702HiaMMbr//vvjc6mH64c//KHuu+++AWFm165devTRRyVJJ5xwQsKxvudssKv0+1aN+OY3vxkfGTTG6Mknn9Q999yjvLy8lGocSl5env7zP/9TknTttdfq6aefThgN7+jo0A9/+MOEX7P/13/9l1wul+68807dfffdAwJZQ0OD7r//fv33f//3sOvoe07Wr1+fdDR+LL9XnU6nbr/99oTXY/fu3fHf9Fx44YUJ77++1+fuu+/W9u3b4+0bN27U1VdfPejr09fHjRs3jvqKFcC4Ga/1uoBM9fbbb8fXcJSUsGPP/g60E1ffwvYul8uccMIJ5vDDD4/f7+WXXz6qO3Htv6NRn5Gsa3qgnbiSOdBOXH27K5WVlZmTTjopvkOS3W43Dz/88IDbeDye+Pq7U6dONQsWLDALFy40K1asGFY9Pp/PLF68OP68HX300WbOnDnG4XDE18PsvxNXn5GuA2uMMX/+85/j6+4WFxebk046acQ7cX3961+Pnz9jxgxz8sknmyOPPDJe/+zZs01nZ2fC/dxxxx1GknE4HOb44483CxcuNAsXLoyvb/rGG28k1HfiiSea6urq+PtxsL4f6DkZbK3VWCxmvva1r8X7UVFRYU466SQzY8aMeD/2f9/++te/jq/hm5eXZ+bOnWtOPvnk+E5Zksy3v/3tYb0exhjzwQcfxN97tbW15hOf+IRZuHBhQq0j+V4dSrKduD72sY+Z448/Pr4T12GHHTZg3VmPxxPfASw3N9cce+yx5ogjjoi/f2+++eakayNHo9H4blzl5eXmlFNOMQsXLjRf//rX4+eM9DUExgsjsMBBmjt3ro499lhJvaNIF1100Yju5/DDD9fbb7+tW265RdOnT9fmzZvV3Nys008/XT/72c/i+5Zng/PPP19vvvmmLrvsMuXl5WnTpk0yxugzn/mMXn75ZX3lK18ZcJvi4mKtXr1a55xzjoLBoF599VWtW7du0Dmm+3O73frjH/+o+++/X/PmzdPOnTv13nvv6eijj9add96pDRs2qLy8fFT7uXjxYr322ms677zzZLPZtGXLFtXU1Ojpp5/Wt771rZTu66tf/aqWLl2q008/XeFwWJs2bVJHR4dOOukk/ehHP9Lrr7+ukpKShNvceuutuv3223X44Ydry5YtWrdundatWxe/av/EE0/U+vXrdeaZZyoWi2nr1q2aMmWKHnjgAa1atWrUnoc+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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data_series = tasks[0].distances\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 6))\n", + "violin_parts = ax.violinplot(\n", + " data_series,\n", + " showmeans=False,\n", + " showmedians=True,\n", + " showextrema=True\n", + ")\n", + "\n", + "ax.set_title('Violin Plot of distance to path', fontsize=16)\n", + "ax.set_ylabel('Distance (m)', fontsize=12)\n", + "\n", + "ax.set_xticks([])\n", + "ax.yaxis.grid(True, linestyle='--', which='major', color='grey', alpha=.25)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "emissioneval", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}