Driving¶
Some other relations to use are: * expo_line_west: 2351006 * blue_line_north: 2351005 * c_line_east: 2377889 * s1_ost_flug: 1773071 * bart_red_south: 2851509 * caltrain_local: 2768041 * san_bernardino_line: 1287719 * orange_county_line: 2812899 * ca_hsr: 7739486
If using BART, set gague = 1.676 * meter
when creating the Route.
[1]:
# Maybe Network is just a Route with a MultiIndex
[2]:
from pandas import isna
from dpd.driving import Route
relation = 1287719 # san_bernardino_line
route = Route.from_osm_relation(relation=relation)
for name in [
"San Bernardino–Downtown",
"Rialto",
"Fontana",
"Upland",
"Claremont",
"Pomona–North",
"Baldwin Park",
"El Monte",
]:
route.remove_stop(name)
route.drop([0, 1, 2], inplace=True)
route["type"] = route["name"].map(lambda x: "node" if isna(x) else "stop")
route["dwell_time"] = route["type"].map(lambda x: 45 if x == "stop" else None)
route["distance_to_point"] = route.distance_to_point
route.stops
[2]:
geometry | name | type | dwell_time | distance_to_point | |
---|---|---|---|---|---|
3 | POINT (-13044783.927 3791434.500) | Redlands–Downtown | stop | 45.0 | 0.0 m |
274 | POINT (-13058824.020 3796486.357) | San Bernardino Depot | stop | 45.0 | 16655.95377891604 m |
489 | POINT (-13086585.643 3795095.687) | Rancho Cucamonga | stop | 45.0 | 44616.30247282995 m |
602 | POINT (-13101712.414 3795316.021) | Montclair | stop | 45.0 | 59766.89984536552 m |
785 | POINT (-13123235.081 3795111.238) | Covina | stop | 45.0 | 81557.81338859064 m |
1093 | POINT (-13154418.241 3791838.044) | Cal State LA | stop | 45.0 | 116007.39146111836 m |
1312 | POINT (-13161791.276 3790912.334) | Los Angeles Union Station | stop | 45.0 | 124635.87800640527 m |
[3]:
from folium import Map
map_ = Map(location=[34, -117.75], zoom_start=10)
route.geometry.explore(m=map_)
route.stops.geometry.explore(m=map_, color="black", marker_kwds={"radius": 20})
[3]:
Make this Notebook Trusted to load map: File -> Trust Notebook
[4]:
from dpd.driving import Vehicles
vehicles = Vehicles(
url="https://raw.githubusercontent.com/davidbailey/Notes/trunk/Trains.csv",
vehicle="Stadler KISS",
)
[5]:
from uuid import uuid4
from astropy.constants import g0
from astropy.units import meter, second
from dpd.driving import EdgesLanesNodesDriver
from dpd.driving.datacollection import DYNAMIC_BODY_DRIVER_REPORTERS
from dpd.mapping.edges import object_for_edge
from dpd.mapping.nodes import NodeModel
from dpd.modeling import TransportationModel
mu = 0.25 # https://railroads.dot.gov/sites/fra.dot.gov/files/fra_net/17468/A%20Survey%20of%20Wheel-Rail%20Friction.pdf
node_model = NodeModel(velocity_unit=meter / second)
edges = route.edges
edges["object"] = edges.apply(object_for_edge, axis=1)
route["object"] = route.apply(node_model.object_for_node, axis=1)
body_model = TransportationModel(
time_unit=second / 1,
agent_reporters=DYNAMIC_BODY_DRIVER_REPORTERS | {"geometry": "geometry"},
)
vehicle = vehicles.vehicle(
initial_acceleration=mu * g0,
max_acceleration=mu * g0,
max_deceleration=1 * meter / second**2,
initial_position=0 * meter,
initial_velocity=0 * meter / second,
unique_id=uuid4(),
model=body_model,
)
driver = EdgesLanesNodesDriver.from_node_ids(
edges_dict=edges.T,
nodes_dict=route.T,
node_ids=route.index,
body=vehicle,
driver_final_velocity=0 * meter / second,
driver_max_velocity=vehicle.max_velocity,
unique_id=uuid4(),
model=body_model,
)
body_model.schedule.add(driver)
while body_model.running:
body_model.step()
node_model.step()
# run the data collector one more time because we never get the final data point
body_model.schedule.add(driver)
body_model.datacollector.collect(body_model)
/home/docs/checkouts/readthedocs.org/user_builds/dpd/envs/latest/lib/python3.9/site-packages/astropy/units/quantity.py:671: RuntimeWarning: divide by zero encountered in divide
result = super().__array_ufunc__(function, method, *arrays, **kwargs)
[6]:
"""
Add to beginning of edges in the driver to get geometry to work.
"""
from shapely.geometry import LineString, Point
LineString([Point(0, 0), Point(0, 0)]).interpolate(0)
[6]:
[7]:
from pandas import merge
df = body_model.get_dataframe()
df = merge(
df,
route.stops[["name", "distance_to_point"]],
left_on="position",
right_on="distance_to_point",
how="left",
).set_index(df.index)
df
[7]:
position | velocity | acceleration | geometry | time | name | distance_to_point | ||
---|---|---|---|---|---|---|---|---|
Step | AgentID | |||||||
0 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 0.0 m | 0.0 m / s | 2.4516625 m / s2 | None | 0.0 s | Redlands–Downtown | 0.0 m |
1 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 0.0 m | 0.0 m / s | 2.4516625 m / s2 | None | 1.0 s | Redlands–Downtown | 0.0 m |
2 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 0.0 m | 0.0 m / s | 2.4516625 m / s2 | None | 2.0 s | Redlands–Downtown | 0.0 m |
3 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 0.0 m | 0.0 m / s | 2.4516625 m / s2 | None | 3.0 s | Redlands–Downtown | 0.0 m |
4 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 0.0 m | 0.0 m / s | 2.4516625 m / s2 | None | 4.0 s | Redlands–Downtown | 0.0 m |
... | ... | ... | ... | ... | ... | ... | ... | ... |
4376 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 124635.87800640527 m | 1.7794783459398131 m / s | -1.0 m / s2 | POINT (-13044783.927377628 3791434.499901977) | 4376.0 s | Los Angeles Union Station | 124635.87800640527 m |
4377 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 124635.87800640527 m | 1.7794783459398131 m / s | -1.0 m / s2 | POINT (-13044783.927377628 3791434.499901977) | 4377.0 s | Los Angeles Union Station | 124635.87800640527 m |
4378 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 124635.87800640527 m | 1.7794783459398131 m / s | -1.0 m / s2 | POINT (-13044783.927377628 3791434.499901977) | 4378.0 s | Los Angeles Union Station | 124635.87800640527 m |
4379 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 124635.87800640527 m | 1.7794783459398131 m / s | -1.0 m / s2 | POINT (-13044783.927377628 3791434.499901977) | 4379.0 s | Los Angeles Union Station | 124635.87800640527 m |
4381 | 4159f0a7-2769-4332-a40d-97c438b795e4 | 124635.87800640527 m | 1.7794783459398131 m / s | -1.0 m / s2 | POINT (-13044783.927377628 3791434.499901977) | 4381.0 s | Los Angeles Union Station | 124635.87800640527 m |
4381 rows × 7 columns
[8]:
# Redo Trip to support MultiIndex and multiple Trips, Trip
[9]:
from matplotlib import pyplot as plt
from dpd.driving import Trip
trip = Trip.from_model(df, route)
fig = plt.figure(figsize=(18, 16))
ax = fig.add_subplot(111)
trip.plot_schedule(ax=ax)
trip.stops
[9]:
timedelta | name | total_time | total_distance | geometry | ||
---|---|---|---|---|---|---|
Stop | Arriva/Departure | |||||
Redlands–Downtown | Arrival | 0 days 00:00:00 | Redlands–Downtown | 0.0 s | 0.0 m | POINT (-13044783.927 3791434.500) |
Departure | 0 days 00:00:45 | Redlands–Downtown | 45.0 s | 0.0 m | POINT (-13044783.927 3791434.500) | |
San Bernardino Depot | Arrival | 0 days 00:12:15 | San Bernardino Depot | 735.0 s | 16655.95377891604 m | POINT (-13058824.020 3796486.357) |
Departure | 0 days 00:12:59 | San Bernardino Depot | 779.0 s | 16655.95377891604 m | POINT (-13058824.020 3796486.357) | |
Rancho Cucamonga | Arrival | 0 days 00:26:36 | Rancho Cucamonga | 1596.0 s | 44616.30247282995 m | POINT (-13086585.643 3795095.687) |
Departure | 0 days 00:27:20 | Rancho Cucamonga | 1640.0 s | 44616.30247282995 m | POINT (-13086585.643 3795095.687) | |
Montclair | Arrival | 0 days 00:34:46 | Montclair | 2086.0 s | 59766.89984536552 m | POINT (-13101712.414 3795316.021) |
Departure | 0 days 00:35:30 | Montclair | 2130.0 s | 59766.89984536552 m | POINT (-13101712.414 3795316.021) | |
Covina | Arrival | 0 days 00:46:23 | Covina | 2783.0 s | 81557.81338859064 m | POINT (-13123235.081 3795111.238) |
Departure | 0 days 00:47:07 | Covina | 2827.0 s | 81557.81338859064 m | POINT (-13123235.081 3795111.238) | |
Cal State LA | Arrival | 0 days 01:04:32 | Cal State LA | 3872.0 s | 116007.39146111836 m | POINT (-13154418.241 3791838.044) |
Departure | 0 days 01:05:16 | Cal State LA | 3916.0 s | 116007.39146111836 m | POINT (-13154418.241 3791838.044) | |
Los Angeles Union Station | Arrival | 0 days 01:12:16 | Los Angeles Union Station | 4336.0 s | 124635.87800640527 m | POINT (-13161791.276 3790912.334) |
Departure | 0 days 01:13:01 | Los Angeles Union Station | 4381.0 s | 124635.87800640527 m | POINT (-13161791.276 3790912.334) |
[10]:
from datetime import datetime
trip.index = trip.index + datetime(year=1970, month=1, day=1)
trip["distance"] = trip["total_distance"].map(lambda x: x.value)
trajectory = trip.to_trajectory(index=0)
trajectory
[10]:
Trajectory 0 (1970-01-01 00:00:00 to 1970-01-01 01:13:01) | Size: 4381 | Length: 124635.9m
Bounds: (-13161791.276421035, 3790465.5527902134, -13044783.927377628, 3796554.127811356)
LINESTRING (-13044783.927377628 3791434.499901977, -13044783.927377628 3791434.499901977, -13044783.
[11]:
from astropy.units import m, s
from pandas import Series
trajectory.add_speed(overwrite=True)
speed = trajectory.df["speed"]
speed.index = df.position
speed.index = speed.index.map(lambda x: x.value)
speed_limits = Series(
map(lambda x: x.value, route.speed_limits), index=route.distance_to_point[:-1]
)
speed_limits.index.name = "position"
speed_limits.index = speed_limits.index.map(lambda x: x.value)
fig = plt.figure(figsize=(18, 16))
ax = fig.add_subplot(111)
speed.plot(ax=ax)
speed_limits.plot(ax=ax)
ax.set_ylim([0, 50])
plt.show()
[12]:
from dpd.driving import Schedule
schedule = Schedule.from_trip(trip)
schedule.schedule[schedule.schedule.index.isin(["Departure"], level=1)].applymap(
lambda x: x.round("s")
)
/tmp/ipykernel_2767/1069224915.py:5: FutureWarning: DataFrame.applymap has been deprecated. Use DataFrame.map instead.
schedule.schedule[schedule.schedule.index.isin(["Departure"], level=1)].applymap(
[12]:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Stop | Arriva/Departure | |||||||||||||||||||||
Redlands–Downtown | Departure | 1970-01-01 06:00:45 | 1970-01-01 06:20:45 | 1970-01-01 06:40:45 | 1970-01-01 07:00:45 | 1970-01-01 07:20:45 | 1970-01-01 07:40:45 | 1970-01-01 08:00:45 | 1970-01-01 08:20:45 | 1970-01-01 08:40:45 | 1970-01-01 09:00:45 | ... | 1970-01-01 21:00:45 | 1970-01-01 21:20:45 | 1970-01-01 21:40:45 | 1970-01-01 22:00:45 | 1970-01-01 22:20:45 | 1970-01-01 22:40:45 | 1970-01-01 23:00:45 | 1970-01-01 23:20:45 | 1970-01-01 23:40:45 | 1970-01-02 00:00:45 |
San Bernardino Depot | Departure | 1970-01-01 06:12:59 | 1970-01-01 06:32:59 | 1970-01-01 06:52:59 | 1970-01-01 07:12:59 | 1970-01-01 07:32:59 | 1970-01-01 07:52:59 | 1970-01-01 08:12:59 | 1970-01-01 08:32:59 | 1970-01-01 08:52:59 | 1970-01-01 09:12:59 | ... | 1970-01-01 21:12:59 | 1970-01-01 21:32:59 | 1970-01-01 21:52:59 | 1970-01-01 22:12:59 | 1970-01-01 22:32:59 | 1970-01-01 22:52:59 | 1970-01-01 23:12:59 | 1970-01-01 23:32:59 | 1970-01-01 23:52:59 | 1970-01-02 00:12:59 |
Rancho Cucamonga | Departure | 1970-01-01 06:27:20 | 1970-01-01 06:47:20 | 1970-01-01 07:07:20 | 1970-01-01 07:27:20 | 1970-01-01 07:47:20 | 1970-01-01 08:07:20 | 1970-01-01 08:27:20 | 1970-01-01 08:47:20 | 1970-01-01 09:07:20 | 1970-01-01 09:27:20 | ... | 1970-01-01 21:27:20 | 1970-01-01 21:47:20 | 1970-01-01 22:07:20 | 1970-01-01 22:27:20 | 1970-01-01 22:47:20 | 1970-01-01 23:07:20 | 1970-01-01 23:27:20 | 1970-01-01 23:47:20 | 1970-01-02 00:07:20 | 1970-01-02 00:27:20 |
Montclair | Departure | 1970-01-01 06:35:30 | 1970-01-01 06:55:30 | 1970-01-01 07:15:30 | 1970-01-01 07:35:30 | 1970-01-01 07:55:30 | 1970-01-01 08:15:30 | 1970-01-01 08:35:30 | 1970-01-01 08:55:30 | 1970-01-01 09:15:30 | 1970-01-01 09:35:30 | ... | 1970-01-01 21:35:30 | 1970-01-01 21:55:30 | 1970-01-01 22:15:30 | 1970-01-01 22:35:30 | 1970-01-01 22:55:30 | 1970-01-01 23:15:30 | 1970-01-01 23:35:30 | 1970-01-01 23:55:30 | 1970-01-02 00:15:30 | 1970-01-02 00:35:30 |
Covina | Departure | 1970-01-01 06:47:07 | 1970-01-01 07:07:07 | 1970-01-01 07:27:07 | 1970-01-01 07:47:07 | 1970-01-01 08:07:07 | 1970-01-01 08:27:07 | 1970-01-01 08:47:07 | 1970-01-01 09:07:07 | 1970-01-01 09:27:07 | 1970-01-01 09:47:07 | ... | 1970-01-01 21:47:07 | 1970-01-01 22:07:07 | 1970-01-01 22:27:07 | 1970-01-01 22:47:07 | 1970-01-01 23:07:07 | 1970-01-01 23:27:07 | 1970-01-01 23:47:07 | 1970-01-02 00:07:07 | 1970-01-02 00:27:07 | 1970-01-02 00:47:07 |
Cal State LA | Departure | 1970-01-01 07:05:16 | 1970-01-01 07:25:16 | 1970-01-01 07:45:16 | 1970-01-01 08:05:16 | 1970-01-01 08:25:16 | 1970-01-01 08:45:16 | 1970-01-01 09:05:16 | 1970-01-01 09:25:16 | 1970-01-01 09:45:16 | 1970-01-01 10:05:16 | ... | 1970-01-01 22:05:16 | 1970-01-01 22:25:16 | 1970-01-01 22:45:16 | 1970-01-01 23:05:16 | 1970-01-01 23:25:16 | 1970-01-01 23:45:16 | 1970-01-02 00:05:16 | 1970-01-02 00:25:16 | 1970-01-02 00:45:16 | 1970-01-02 01:05:16 |
Los Angeles Union Station | Departure | 1970-01-01 07:13:01 | 1970-01-01 07:33:01 | 1970-01-01 07:53:01 | 1970-01-01 08:13:01 | 1970-01-01 08:33:01 | 1970-01-01 08:53:01 | 1970-01-01 09:13:01 | 1970-01-01 09:33:01 | 1970-01-01 09:53:01 | 1970-01-01 10:13:01 | ... | 1970-01-01 22:13:01 | 1970-01-01 22:33:01 | 1970-01-01 22:53:01 | 1970-01-01 23:13:01 | 1970-01-01 23:33:01 | 1970-01-01 23:53:01 | 1970-01-02 00:13:01 | 1970-01-02 00:33:01 | 1970-01-02 00:53:01 | 1970-01-02 01:13:01 |
7 rows × 55 columns
[13]:
from numpy import concatenate
route_reversed = Route(route.reversed[["geometry", "name", "object"]].copy())
route_reversed["distance_to_point"] = route_reversed.distance_to_point
route_reversed.stops
[13]:
geometry | name | object | distance_to_point | |
---|---|---|---|---|
0 | POINT (-13161791.276 3790912.334) | Los Angeles Union Station | <dpd.mapping.nodes.stop.Stop object at 0x7f137... | 0.0 m |
219 | POINT (-13154418.241 3791838.044) | Cal State LA | <dpd.mapping.nodes.stop.Stop object at 0x7f137... | 8628.48654528681 m |
527 | POINT (-13123235.081 3795111.238) | Covina | <dpd.mapping.nodes.stop.Stop object at 0x7f137... | 43078.06461781463 m |
710 | POINT (-13101712.414 3795316.021) | Montclair | <dpd.mapping.nodes.stop.Stop object at 0x7f137... | 64868.978161039704 m |
823 | POINT (-13086585.643 3795095.687) | Rancho Cucamonga | <dpd.mapping.nodes.stop.Stop object at 0x7f137... | 80019.57553357532 m |
1038 | POINT (-13058824.020 3796486.357) | San Bernardino Depot | <dpd.mapping.nodes.stop.Stop object at 0x7f137... | 107979.92422748917 m |
1309 | POINT (-13044783.927 3791434.500) | Redlands–Downtown | <dpd.mapping.nodes.stop.Stop object at 0x7f138... | 124635.8780064052 m |
[14]:
edges = route_reversed.edges
edges["object"] = edges.apply(object_for_edge, axis=1)
body_model = TransportationModel(
time_unit=second / 1, agent_reporters=DYNAMIC_BODY_DRIVER_REPORTERS
)
vehicle = vehicles.vehicle(
initial_acceleration=mu * g0,
max_acceleration=mu * g0,
max_deceleration=1 * meter / second**2,
initial_position=0 * meter,
initial_velocity=0 * meter / second,
unique_id=uuid4(),
model=body_model,
)
driver = EdgesLanesNodesDriver.from_node_ids(
edges_dict=edges.T,
nodes_dict=route_reversed.T,
node_ids=route_reversed.index,
body=vehicle,
driver_final_velocity=0 * meter / second,
driver_max_velocity=vehicle.max_velocity,
unique_id=uuid4(),
model=body_model,
)
body_model.schedule.add(driver)
while body_model.running:
body_model.step()
node_model.step()
# run the data collector one more time because we never get the final data point
body_model.schedule.add(driver)
body_model.datacollector.collect(body_model)
/home/docs/checkouts/readthedocs.org/user_builds/dpd/envs/latest/lib/python3.9/site-packages/astropy/units/quantity.py:671: RuntimeWarning: divide by zero encountered in divide
result = super().__array_ufunc__(function, method, *arrays, **kwargs)
[15]:
df = body_model.get_dataframe()
df = merge(
df,
route_reversed.stops[["name", "distance_to_point"]],
left_on="position",
right_on="distance_to_point",
how="left",
).set_index(df.index)
trip_reversed = Trip.from_model(df, route, include_geometry=False)
trip_reversed.index = trip_reversed.index + datetime(year=1970, month=1, day=1)
schedule_reversed = Schedule.from_trip(trip_reversed)
schedule_reversed.reverse_distance()
[16]:
fig = plt.figure(figsize=(18, 16))
ax = fig.add_subplot(111)
schedule.plot_schedule(ax=ax)
schedule_reversed.plot_schedule(ax=ax)
schedule.trips[list(schedule.trips.keys())[0]].plot_schedule(ax=ax) # to add labels
plt.show()
[17]:
import gtfs_kit
feed = gtfs_kit.read_feed(
"http://www.bart.gov/dev/schedules/google_transit.zip", dist_units="mi"
)
trip = Trip.from_gtfs(feed, trip_id="1508825")
from astropy import units
units.imperial.enable()
trip["total_distance"] = trip.total_distance.map(
lambda x: (x.value * units.imperial.foot).to(units.meter)
)
[18]:
from matplotlib import pyplot as plt
fig = plt.figure(figsize=(18, 16))
ax = fig.add_subplot(111)
trip.plot_schedule(ax=ax)
plt.show()
[19]:
from dpd.driving import Schedule
schedule = Schedule.from_gtfs(feed, route_id="6", direction_id=0)
schedule_reversed = Schedule.from_gtfs(feed, route_id="5", direction_id=1)
[20]:
from astropy import units
units.imperial.enable()
for trip_id in schedule.trips:
trip = schedule.trips[trip_id]
trip["total_distance"] = trip.total_distance.map(
lambda x: (x.value * units.imperial.foot).to(units.meter)
)
for trip_id in schedule_reversed.trips:
trip = schedule_reversed.trips[trip_id]
trip["total_distance"] = trip.total_distance.map(
lambda x: (x.value * units.imperial.foot).to(units.meter)
)
[21]:
schedule_reversed.reverse_distance()
[22]:
from matplotlib import pyplot as plt
fig = plt.figure(figsize=(18, 16))
ax = fig.add_subplot(111)
schedule.plot_schedule(ax=ax)
schedule.trips[list(schedule.trips.keys())[-1]].plot_schedule(ax=ax) # to add labels
schedule_reversed.plot_schedule(ax=ax)
plt.show()
[23]:
schedule_reversed.schedule
[23]:
1508825 | 1508819 | 1508824 | 1508777 | 1508778 | 1508779 | 1508780 | 1508781 | 1508782 | 1508783 | ... | 1531530 | 1531531 | 1531532 | 1531533 | 1531534 | 1531535 | 1531536 | 1531537 | 1531538 | 1531539 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Stop | Arriva/Departure | |||||||||||||||||||||
South Hayward | Arrival | 0 days 04:37:00 | 0 days 05:17:00 | 0 days 04:57:00 | 0 days 05:37:00 | 0 days 05:57:00 | 0 days 06:17:00 | 0 days 06:37:00 | 0 days 06:57:00 | 0 days 07:17:00 | 0 days 07:37:00 | ... | 0 days 16:17:00 | 0 days 16:37:00 | 0 days 16:57:00 | 0 days 17:17:00 | 0 days 17:37:00 | 0 days 17:57:00 | 0 days 18:17:00 | 0 days 18:37:00 | 0 days 18:57:00 | 0 days 19:17:00 |
Departure | 0 days 04:37:00 | 0 days 05:17:00 | 0 days 04:57:00 | 0 days 05:37:00 | 0 days 05:57:00 | 0 days 06:17:00 | 0 days 06:37:00 | 0 days 06:57:00 | 0 days 07:17:00 | 0 days 07:37:00 | ... | 0 days 16:17:00 | 0 days 16:37:00 | 0 days 16:57:00 | 0 days 17:17:00 | 0 days 17:37:00 | 0 days 17:57:00 | 0 days 18:17:00 | 0 days 18:37:00 | 0 days 18:57:00 | 0 days 19:17:00 | |
Hayward | Arrival | 0 days 04:41:00 | 0 days 05:21:00 | 0 days 05:01:00 | 0 days 05:41:00 | 0 days 06:01:00 | 0 days 06:21:00 | 0 days 06:41:00 | 0 days 07:01:00 | 0 days 07:21:00 | 0 days 07:41:00 | ... | 0 days 16:21:00 | 0 days 16:41:00 | 0 days 17:01:00 | 0 days 17:21:00 | 0 days 17:41:00 | 0 days 18:01:00 | 0 days 18:21:00 | 0 days 18:41:00 | 0 days 19:01:00 | 0 days 19:21:00 |
Departure | 0 days 04:41:00 | 0 days 05:21:00 | 0 days 05:01:00 | 0 days 05:41:00 | 0 days 06:01:00 | 0 days 06:21:00 | 0 days 06:41:00 | 0 days 07:01:00 | 0 days 07:21:00 | 0 days 07:41:00 | ... | 0 days 16:21:00 | 0 days 16:41:00 | 0 days 17:01:00 | 0 days 17:21:00 | 0 days 17:41:00 | 0 days 18:01:00 | 0 days 18:21:00 | 0 days 18:41:00 | 0 days 19:01:00 | 0 days 19:21:00 | |
Bay Fair | Arrival | 0 days 04:45:00 | 0 days 05:25:00 | 0 days 05:05:00 | 0 days 05:45:00 | 0 days 06:05:00 | 0 days 06:25:00 | 0 days 06:45:00 | 0 days 07:05:00 | 0 days 07:25:00 | 0 days 07:45:00 | ... | 0 days 16:25:00 | 0 days 16:45:00 | 0 days 17:05:00 | 0 days 17:25:00 | 0 days 17:45:00 | 0 days 18:05:00 | 0 days 18:25:00 | 0 days 18:45:00 | 0 days 19:05:00 | 0 days 19:25:00 |
Departure | 0 days 04:45:00 | 0 days 05:25:00 | 0 days 05:05:00 | 0 days 05:45:00 | 0 days 06:05:00 | 0 days 06:25:00 | 0 days 06:45:00 | 0 days 07:05:00 | 0 days 07:25:00 | 0 days 07:45:00 | ... | 0 days 16:25:00 | 0 days 16:45:00 | 0 days 17:05:00 | 0 days 17:25:00 | 0 days 17:45:00 | 0 days 18:05:00 | 0 days 18:25:00 | 0 days 18:45:00 | 0 days 19:05:00 | 0 days 19:25:00 | |
San Leandro | Arrival | 0 days 04:48:00 | 0 days 05:28:00 | 0 days 05:08:00 | 0 days 05:48:00 | 0 days 06:08:00 | 0 days 06:28:00 | 0 days 06:48:00 | 0 days 07:08:00 | 0 days 07:28:00 | 0 days 07:48:00 | ... | 0 days 16:28:00 | 0 days 16:48:00 | 0 days 17:08:00 | 0 days 17:28:00 | 0 days 17:48:00 | 0 days 18:08:00 | 0 days 18:28:00 | 0 days 18:48:00 | 0 days 19:08:00 | 0 days 19:28:00 |
Departure | 0 days 04:49:00 | 0 days 05:29:00 | 0 days 05:09:00 | 0 days 05:49:00 | 0 days 06:09:00 | 0 days 06:29:00 | 0 days 06:49:00 | 0 days 07:09:00 | 0 days 07:29:00 | 0 days 07:49:00 | ... | 0 days 16:29:00 | 0 days 16:49:00 | 0 days 17:09:00 | 0 days 17:29:00 | 0 days 17:49:00 | 0 days 18:09:00 | 0 days 18:29:00 | 0 days 18:49:00 | 0 days 19:09:00 | 0 days 19:29:00 | |
Coliseum | Arrival | 0 days 04:52:00 | 0 days 05:32:00 | 0 days 05:12:00 | 0 days 05:52:00 | 0 days 06:12:00 | 0 days 06:32:00 | 0 days 06:52:00 | 0 days 07:12:00 | 0 days 07:32:00 | 0 days 07:52:00 | ... | 0 days 16:32:00 | 0 days 16:52:00 | 0 days 17:12:00 | 0 days 17:32:00 | 0 days 17:52:00 | 0 days 18:12:00 | 0 days 18:32:00 | 0 days 18:52:00 | 0 days 19:12:00 | 0 days 19:32:00 |
Departure | 0 days 04:53:00 | 0 days 05:33:00 | 0 days 05:13:00 | 0 days 05:53:00 | 0 days 06:13:00 | 0 days 06:33:00 | 0 days 06:53:00 | 0 days 07:13:00 | 0 days 07:33:00 | 0 days 07:53:00 | ... | 0 days 16:33:00 | 0 days 16:53:00 | 0 days 17:13:00 | 0 days 17:33:00 | 0 days 17:53:00 | 0 days 18:13:00 | 0 days 18:33:00 | 0 days 18:53:00 | 0 days 19:13:00 | 0 days 19:33:00 | |
Fruitvale | Arrival | 0 days 04:56:00 | 0 days 05:36:00 | 0 days 05:16:00 | 0 days 05:56:00 | 0 days 06:16:00 | 0 days 06:36:00 | 0 days 06:56:00 | 0 days 07:16:00 | 0 days 07:36:00 | 0 days 07:56:00 | ... | 0 days 16:36:00 | 0 days 16:56:00 | 0 days 17:16:00 | 0 days 17:36:00 | 0 days 17:56:00 | 0 days 18:16:00 | 0 days 18:36:00 | 0 days 18:56:00 | 0 days 19:16:00 | 0 days 19:36:00 |
Departure | 0 days 04:56:00 | 0 days 05:36:00 | 0 days 05:16:00 | 0 days 05:56:00 | 0 days 06:16:00 | 0 days 06:36:00 | 0 days 06:56:00 | 0 days 07:16:00 | 0 days 07:36:00 | 0 days 07:56:00 | ... | 0 days 16:36:00 | 0 days 16:56:00 | 0 days 17:16:00 | 0 days 17:36:00 | 0 days 17:56:00 | 0 days 18:16:00 | 0 days 18:36:00 | 0 days 18:56:00 | 0 days 19:16:00 | 0 days 19:36:00 | |
Lake Merritt | Arrival | 0 days 05:00:00 | 0 days 05:40:00 | 0 days 05:20:00 | 0 days 06:00:00 | 0 days 06:20:00 | 0 days 06:40:00 | 0 days 07:00:00 | 0 days 07:20:00 | 0 days 07:40:00 | 0 days 08:00:00 | ... | 0 days 16:40:00 | 0 days 17:00:00 | 0 days 17:20:00 | 0 days 17:40:00 | 0 days 18:00:00 | 0 days 18:20:00 | 0 days 18:40:00 | 0 days 19:00:00 | 0 days 19:20:00 | 0 days 19:40:00 |
Departure | 0 days 05:00:00 | 0 days 05:40:00 | 0 days 05:20:00 | 0 days 06:00:00 | 0 days 06:20:00 | 0 days 06:40:00 | 0 days 07:00:00 | 0 days 07:20:00 | 0 days 07:40:00 | 0 days 08:00:00 | ... | 0 days 16:40:00 | 0 days 17:00:00 | 0 days 17:20:00 | 0 days 17:40:00 | 0 days 18:00:00 | 0 days 18:20:00 | 0 days 18:40:00 | 0 days 19:00:00 | 0 days 19:20:00 | 0 days 19:40:00 | |
West Oakland | Arrival | 0 days 05:05:00 | 0 days 05:45:00 | 0 days 05:25:00 | 0 days 06:05:00 | 0 days 06:25:00 | 0 days 06:45:00 | 0 days 07:05:00 | 0 days 07:25:00 | 0 days 07:45:00 | 0 days 08:05:00 | ... | 0 days 16:45:00 | 0 days 17:05:00 | 0 days 17:25:00 | 0 days 17:45:00 | 0 days 18:05:00 | 0 days 18:25:00 | 0 days 18:45:00 | 0 days 19:05:00 | 0 days 19:25:00 | 0 days 19:45:00 |
Departure | 0 days 05:06:00 | 0 days 05:46:00 | 0 days 05:26:00 | 0 days 06:06:00 | 0 days 06:26:00 | 0 days 06:46:00 | 0 days 07:06:00 | 0 days 07:26:00 | 0 days 07:46:00 | 0 days 08:06:00 | ... | 0 days 16:46:00 | 0 days 17:06:00 | 0 days 17:26:00 | 0 days 17:46:00 | 0 days 18:06:00 | 0 days 18:26:00 | 0 days 18:46:00 | 0 days 19:06:00 | 0 days 19:26:00 | 0 days 19:46:00 | |
Embarcadero | Arrival | 0 days 05:12:00 | 0 days 05:52:00 | 0 days 05:32:00 | 0 days 06:12:00 | 0 days 06:32:00 | 0 days 06:52:00 | 0 days 07:12:00 | 0 days 07:32:00 | 0 days 07:52:00 | 0 days 08:12:00 | ... | 0 days 16:52:00 | 0 days 17:12:00 | 0 days 17:32:00 | 0 days 17:52:00 | 0 days 18:12:00 | 0 days 18:32:00 | 0 days 18:52:00 | 0 days 19:12:00 | 0 days 19:32:00 | 0 days 19:52:00 |
Departure | 0 days 05:13:00 | 0 days 05:53:00 | 0 days 05:33:00 | 0 days 06:13:00 | 0 days 06:33:00 | 0 days 06:53:00 | 0 days 07:13:00 | 0 days 07:33:00 | 0 days 07:53:00 | 0 days 08:13:00 | ... | 0 days 16:53:00 | 0 days 17:13:00 | 0 days 17:33:00 | 0 days 17:53:00 | 0 days 18:13:00 | 0 days 18:33:00 | 0 days 18:53:00 | 0 days 19:13:00 | 0 days 19:33:00 | 0 days 19:53:00 | |
Montgomery Street | Arrival | 0 days 05:14:00 | 0 days 05:54:00 | 0 days 05:34:00 | 0 days 06:14:00 | 0 days 06:34:00 | 0 days 06:54:00 | 0 days 07:14:00 | 0 days 07:34:00 | 0 days 07:54:00 | 0 days 08:14:00 | ... | 0 days 16:54:00 | 0 days 17:14:00 | 0 days 17:34:00 | 0 days 17:54:00 | 0 days 18:14:00 | 0 days 18:34:00 | 0 days 18:54:00 | 0 days 19:14:00 | 0 days 19:34:00 | 0 days 19:54:00 |
Departure | 0 days 05:14:00 | 0 days 05:54:00 | 0 days 05:34:00 | 0 days 06:14:00 | 0 days 06:34:00 | 0 days 06:54:00 | 0 days 07:14:00 | 0 days 07:34:00 | 0 days 07:54:00 | 0 days 08:14:00 | ... | 0 days 16:54:00 | 0 days 17:14:00 | 0 days 17:34:00 | 0 days 17:54:00 | 0 days 18:14:00 | 0 days 18:34:00 | 0 days 18:54:00 | 0 days 19:14:00 | 0 days 19:34:00 | 0 days 19:54:00 | |
Powell Street | Arrival | 0 days 05:16:00 | 0 days 05:56:00 | 0 days 05:36:00 | 0 days 06:16:00 | 0 days 06:36:00 | 0 days 06:56:00 | 0 days 07:16:00 | 0 days 07:36:00 | 0 days 07:56:00 | 0 days 08:16:00 | ... | 0 days 16:56:00 | 0 days 17:16:00 | 0 days 17:36:00 | 0 days 17:56:00 | 0 days 18:16:00 | 0 days 18:36:00 | 0 days 18:56:00 | 0 days 19:16:00 | 0 days 19:36:00 | 0 days 19:56:00 |
Departure | 0 days 05:16:00 | 0 days 05:56:00 | 0 days 05:36:00 | 0 days 06:16:00 | 0 days 06:36:00 | 0 days 06:56:00 | 0 days 07:16:00 | 0 days 07:36:00 | 0 days 07:56:00 | 0 days 08:16:00 | ... | 0 days 16:56:00 | 0 days 17:16:00 | 0 days 17:36:00 | 0 days 17:56:00 | 0 days 18:16:00 | 0 days 18:36:00 | 0 days 18:56:00 | 0 days 19:16:00 | 0 days 19:36:00 | 0 days 19:56:00 | |
Civic Center / UN Plaza | Arrival | 0 days 05:17:00 | 0 days 05:57:00 | 0 days 05:37:00 | 0 days 06:17:00 | 0 days 06:37:00 | 0 days 06:57:00 | 0 days 07:17:00 | 0 days 07:37:00 | 0 days 07:57:00 | 0 days 08:17:00 | ... | 0 days 16:57:00 | 0 days 17:17:00 | 0 days 17:37:00 | 0 days 17:57:00 | 0 days 18:17:00 | 0 days 18:37:00 | 0 days 18:57:00 | 0 days 19:17:00 | 0 days 19:37:00 | 0 days 19:57:00 |
Departure | 0 days 05:18:00 | 0 days 05:58:00 | 0 days 05:38:00 | 0 days 06:18:00 | 0 days 06:38:00 | 0 days 06:58:00 | 0 days 07:18:00 | 0 days 07:38:00 | 0 days 07:58:00 | 0 days 08:18:00 | ... | 0 days 16:58:00 | 0 days 17:18:00 | 0 days 17:38:00 | 0 days 17:58:00 | 0 days 18:18:00 | 0 days 18:38:00 | 0 days 18:58:00 | 0 days 19:18:00 | 0 days 19:38:00 | 0 days 19:58:00 | |
16th Street / Mission | Arrival | 0 days 05:20:00 | 0 days 06:00:00 | 0 days 05:40:00 | 0 days 06:20:00 | 0 days 06:40:00 | 0 days 07:00:00 | 0 days 07:20:00 | 0 days 07:40:00 | 0 days 08:00:00 | 0 days 08:20:00 | ... | 0 days 17:00:00 | 0 days 17:20:00 | 0 days 17:40:00 | 0 days 18:00:00 | 0 days 18:20:00 | 0 days 18:40:00 | 0 days 19:00:00 | 0 days 19:20:00 | 0 days 19:40:00 | 0 days 20:00:00 |
Departure | 0 days 05:20:00 | 0 days 06:00:00 | 0 days 05:40:00 | 0 days 06:20:00 | 0 days 06:40:00 | 0 days 07:00:00 | 0 days 07:20:00 | 0 days 07:40:00 | 0 days 08:00:00 | 0 days 08:20:00 | ... | 0 days 17:00:00 | 0 days 17:20:00 | 0 days 17:40:00 | 0 days 18:00:00 | 0 days 18:20:00 | 0 days 18:40:00 | 0 days 19:00:00 | 0 days 19:20:00 | 0 days 19:40:00 | 0 days 20:00:00 | |
24th Street / Mission | Arrival | 0 days 05:22:00 | 0 days 06:02:00 | 0 days 05:42:00 | 0 days 06:22:00 | 0 days 06:42:00 | 0 days 07:02:00 | 0 days 07:22:00 | 0 days 07:42:00 | 0 days 08:02:00 | 0 days 08:22:00 | ... | 0 days 17:02:00 | 0 days 17:22:00 | 0 days 17:42:00 | 0 days 18:02:00 | 0 days 18:22:00 | 0 days 18:42:00 | 0 days 19:02:00 | 0 days 19:22:00 | 0 days 19:42:00 | 0 days 20:02:00 |
Departure | 0 days 05:22:00 | 0 days 06:02:00 | 0 days 05:42:00 | 0 days 06:22:00 | 0 days 06:42:00 | 0 days 07:02:00 | 0 days 07:22:00 | 0 days 07:42:00 | 0 days 08:02:00 | 0 days 08:22:00 | ... | 0 days 17:02:00 | 0 days 17:22:00 | 0 days 17:42:00 | 0 days 18:02:00 | 0 days 18:22:00 | 0 days 18:42:00 | 0 days 19:02:00 | 0 days 19:22:00 | 0 days 19:42:00 | 0 days 20:02:00 | |
Glen Park | Arrival | 0 days 05:25:00 | 0 days 06:04:00 | 0 days 05:45:00 | 0 days 06:24:00 | 0 days 06:44:00 | 0 days 07:04:00 | 0 days 07:24:00 | 0 days 07:44:00 | 0 days 08:04:00 | 0 days 08:24:00 | ... | 0 days 17:04:00 | 0 days 17:24:00 | 0 days 17:44:00 | 0 days 18:04:00 | 0 days 18:24:00 | 0 days 18:44:00 | 0 days 19:04:00 | 0 days 19:24:00 | 0 days 19:44:00 | 0 days 20:04:00 |
Departure | 0 days 05:25:00 | 0 days 06:05:00 | 0 days 05:45:00 | 0 days 06:25:00 | 0 days 06:45:00 | 0 days 07:05:00 | 0 days 07:25:00 | 0 days 07:45:00 | 0 days 08:05:00 | 0 days 08:25:00 | ... | 0 days 17:05:00 | 0 days 17:25:00 | 0 days 17:45:00 | 0 days 18:05:00 | 0 days 18:25:00 | 0 days 18:45:00 | 0 days 19:05:00 | 0 days 19:25:00 | 0 days 19:45:00 | 0 days 20:05:00 | |
Balboa Park | Arrival | 0 days 05:27:00 | 0 days 06:07:00 | 0 days 05:47:00 | 0 days 06:27:00 | 0 days 06:47:00 | 0 days 07:07:00 | 0 days 07:27:00 | 0 days 07:47:00 | 0 days 08:07:00 | 0 days 08:27:00 | ... | 0 days 17:07:00 | 0 days 17:27:00 | 0 days 17:47:00 | 0 days 18:07:00 | 0 days 18:27:00 | 0 days 18:47:00 | 0 days 19:07:00 | 0 days 19:27:00 | 0 days 19:47:00 | 0 days 20:07:00 |
Departure | 0 days 05:27:00 | 0 days 06:07:00 | 0 days 05:47:00 | 0 days 06:27:00 | 0 days 06:47:00 | 0 days 07:07:00 | 0 days 07:27:00 | 0 days 07:47:00 | 0 days 08:07:00 | 0 days 08:27:00 | ... | 0 days 17:07:00 | 0 days 17:27:00 | 0 days 17:47:00 | 0 days 18:07:00 | 0 days 18:27:00 | 0 days 18:47:00 | 0 days 19:07:00 | 0 days 19:27:00 | 0 days 19:47:00 | 0 days 20:07:00 | |
Daly City | Arrival | 0 days 05:31:00 | 0 days 06:11:00 | 0 days 05:51:00 | 0 days 06:31:00 | 0 days 06:51:00 | 0 days 07:11:00 | 0 days 07:31:00 | 0 days 07:51:00 | 0 days 08:11:00 | 0 days 08:31:00 | ... | 0 days 17:11:00 | 0 days 17:31:00 | 0 days 17:51:00 | 0 days 18:11:00 | 0 days 18:31:00 | 0 days 18:51:00 | 0 days 19:11:00 | 0 days 19:31:00 | 0 days 19:51:00 | 0 days 20:11:00 |
Departure | 0 days 05:31:00 | 0 days 06:11:00 | 0 days 05:51:00 | 0 days 06:31:00 | 0 days 06:51:00 | 0 days 07:11:00 | 0 days 07:31:00 | 0 days 07:51:00 | 0 days 08:11:00 | 0 days 08:31:00 | ... | 0 days 17:11:00 | 0 days 17:31:00 | 0 days 17:51:00 | 0 days 18:11:00 | 0 days 18:31:00 | 0 days 18:51:00 | 0 days 19:11:00 | 0 days 19:31:00 | 0 days 19:52:00 | 0 days 20:12:00 | |
Berryessa / North San Jose | Arrival | NaT | 0 days 04:49:00 | NaT | 0 days 05:09:00 | 0 days 05:29:00 | 0 days 05:49:00 | 0 days 06:09:00 | 0 days 06:29:00 | 0 days 06:49:00 | 0 days 07:09:00 | ... | 0 days 15:49:00 | 0 days 16:09:00 | 0 days 16:29:00 | 0 days 16:49:00 | 0 days 17:09:00 | 0 days 17:29:00 | 0 days 17:49:00 | 0 days 18:09:00 | 0 days 18:29:00 | 0 days 18:49:00 |
Departure | NaT | 0 days 04:49:00 | NaT | 0 days 05:09:00 | 0 days 05:29:00 | 0 days 05:49:00 | 0 days 06:09:00 | 0 days 06:29:00 | 0 days 06:49:00 | 0 days 07:09:00 | ... | 0 days 15:49:00 | 0 days 16:09:00 | 0 days 16:29:00 | 0 days 16:49:00 | 0 days 17:09:00 | 0 days 17:29:00 | 0 days 17:49:00 | 0 days 18:09:00 | 0 days 18:29:00 | 0 days 18:49:00 | |
Milpitas | Arrival | NaT | 0 days 04:53:00 | NaT | 0 days 05:13:00 | 0 days 05:33:00 | 0 days 05:53:00 | 0 days 06:13:00 | 0 days 06:33:00 | 0 days 06:53:00 | 0 days 07:13:00 | ... | 0 days 15:53:00 | 0 days 16:13:00 | 0 days 16:33:00 | 0 days 16:53:00 | 0 days 17:13:00 | 0 days 17:33:00 | 0 days 17:53:00 | 0 days 18:13:00 | 0 days 18:33:00 | 0 days 18:53:00 |
Departure | NaT | 0 days 04:53:00 | NaT | 0 days 05:13:00 | 0 days 05:33:00 | 0 days 05:53:00 | 0 days 06:13:00 | 0 days 06:33:00 | 0 days 06:53:00 | 0 days 07:13:00 | ... | 0 days 15:53:00 | 0 days 16:13:00 | 0 days 16:33:00 | 0 days 16:53:00 | 0 days 17:13:00 | 0 days 17:33:00 | 0 days 17:53:00 | 0 days 18:13:00 | 0 days 18:33:00 | 0 days 18:53:00 | |
Warm Springs / South Fremont | Arrival | NaT | 0 days 05:01:00 | NaT | 0 days 05:21:00 | 0 days 05:41:00 | 0 days 06:01:00 | 0 days 06:21:00 | 0 days 06:41:00 | 0 days 07:01:00 | 0 days 07:21:00 | ... | 0 days 16:01:00 | 0 days 16:21:00 | 0 days 16:41:00 | 0 days 17:01:00 | 0 days 17:21:00 | 0 days 17:41:00 | 0 days 18:01:00 | 0 days 18:21:00 | 0 days 18:41:00 | 0 days 19:01:00 |
Departure | NaT | 0 days 05:01:00 | NaT | 0 days 05:21:00 | 0 days 05:41:00 | 0 days 06:01:00 | 0 days 06:21:00 | 0 days 06:41:00 | 0 days 07:01:00 | 0 days 07:21:00 | ... | 0 days 16:01:00 | 0 days 16:21:00 | 0 days 16:41:00 | 0 days 17:01:00 | 0 days 17:21:00 | 0 days 17:41:00 | 0 days 18:01:00 | 0 days 18:21:00 | 0 days 18:41:00 | 0 days 19:01:00 | |
Fremont | Arrival | NaT | 0 days 05:07:00 | NaT | 0 days 05:27:00 | 0 days 05:47:00 | 0 days 06:07:00 | 0 days 06:27:00 | 0 days 06:47:00 | 0 days 07:07:00 | 0 days 07:27:00 | ... | 0 days 16:07:00 | 0 days 16:27:00 | 0 days 16:47:00 | 0 days 17:07:00 | 0 days 17:27:00 | 0 days 17:47:00 | 0 days 18:07:00 | 0 days 18:27:00 | 0 days 18:47:00 | 0 days 19:07:00 |
Departure | NaT | 0 days 05:07:00 | NaT | 0 days 05:27:00 | 0 days 05:47:00 | 0 days 06:07:00 | 0 days 06:27:00 | 0 days 06:47:00 | 0 days 07:07:00 | 0 days 07:27:00 | ... | 0 days 16:07:00 | 0 days 16:27:00 | 0 days 16:47:00 | 0 days 17:07:00 | 0 days 17:27:00 | 0 days 17:47:00 | 0 days 18:07:00 | 0 days 18:27:00 | 0 days 18:47:00 | 0 days 19:07:00 | |
Union City | Arrival | NaT | 0 days 05:12:00 | NaT | 0 days 05:32:00 | 0 days 05:52:00 | 0 days 06:12:00 | 0 days 06:32:00 | 0 days 06:52:00 | 0 days 07:12:00 | 0 days 07:32:00 | ... | 0 days 16:12:00 | 0 days 16:32:00 | 0 days 16:52:00 | 0 days 17:12:00 | 0 days 17:32:00 | 0 days 17:52:00 | 0 days 18:12:00 | 0 days 18:32:00 | 0 days 18:52:00 | 0 days 19:12:00 |
Departure | NaT | 0 days 05:12:00 | NaT | 0 days 05:32:00 | 0 days 05:52:00 | 0 days 06:12:00 | 0 days 06:32:00 | 0 days 06:52:00 | 0 days 07:12:00 | 0 days 07:32:00 | ... | 0 days 16:12:00 | 0 days 16:32:00 | 0 days 16:52:00 | 0 days 17:12:00 | 0 days 17:32:00 | 0 days 17:52:00 | 0 days 18:12:00 | 0 days 18:32:00 | 0 days 18:52:00 | 0 days 19:12:00 |
44 rows × 315 columns
[ ]: