Skip to content

Instantly share code, notes, and snippets.

@mbostock
Forked from mbostock/.block
Last active Apr 17, 2017
Embed
What would you like to do?
Marey’s Trains II
license: gpl-3.0
<!DOCTYPE html>
<meta charset="utf-8">
<style>
svg {
font: 10px sans-serif;
}
.axis path {
display: none;
}
.axis line {
fill: none;
stroke: #000;
shape-rendering: crispEdges;
}
.station line {
stroke: #ddd;
stroke-dasharray: 1,1;
shape-rendering: crispEdges;
}
.station text {
text-anchor: end;
}
.train line {
stroke-width: 1.5px;
}
.train circle {
fill: #777;
stroke: #fff;
stroke-width: 1.5px;
}
</style>
<body>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
var stations = []; // lazily loaded
var formatTime = d3.time.format("%I:%M%p");
var margin = {top: 20, right: 30, bottom: 20, left: 100},
width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;
var x = d3.time.scale()
.domain([parseTime("5:30AM"), parseTime("11:30AM")])
.range([0, width]);
var y = d3.scale.linear()
.range([0, height]);
var z = d3.scale.linear()
.domain([.0001, .0003])
.range(["purple", "orange"])
.interpolate(d3.interpolateLab);
var xAxis = d3.svg.axis()
.scale(x)
.ticks(8)
.tickFormat(formatTime);
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
svg.append("defs").append("clipPath")
.attr("id", "clip")
.append("rect")
.attr("y", -margin.top)
.attr("width", width)
.attr("height", height + margin.top + margin.bottom);
d3.tsv("schedule.tsv", type, function(error, trains) {
y.domain(d3.extent(stations, function(d) { return d.distance; }));
var station = svg.append("g")
.attr("class", "station")
.selectAll("g")
.data(stations)
.enter().append("g")
.attr("transform", function(d) { return "translate(0," + y(d.distance) + ")"; });
station.append("text")
.attr("x", -6)
.attr("dy", ".35em")
.text(function(d) { return d.name; });
station.append("line")
.attr("x2", width);
svg.append("g")
.attr("class", "x top axis")
.call(xAxis.orient("top"));
svg.append("g")
.attr("class", "x bottom axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis.orient("bottom"));
var train = svg.append("g")
.attr("class", "train")
.attr("clip-path", "url(#clip)")
.selectAll("g")
.data(trains.filter(function(d) { return /[NLB]/.test(d.type); }))
.enter().append("g")
.attr("class", function(d) { return d.type; });
train.selectAll("line")
.data(function(d) { return d.stops.slice(1).map(function(b, i) { return [d.stops[i], b]; }); })
.enter().append("line")
.attr("x1", function(d) { return x(d[0].time); })
.attr("x2", function(d) { return x(d[1].time); })
.attr("y1", function(d) { return y(d[0].station.distance); })
.attr("y2", function(d) { return y(d[1].station.distance); })
.style("stroke", function(d) { return z(Math.abs((d[1].station.distance - d[0].station.distance) / (d[1].time - d[0].time))); });
train.selectAll("circle")
.data(function(d) { return d.stops; })
.enter().append("circle")
.attr("transform", function(d) { return "translate(" + x(d.time) + "," + y(d.station.distance) + ")"; })
.attr("r", 2);
});
function type(d, i) {
// Extract the stations from the "stop|*" columns.
if (!i) for (var k in d) {
if (/^stop\|/.test(k)) {
var p = k.split("|");
stations.push({
key: k,
name: p[1],
distance: +p[2],
zone: +p[3]
});
}
}
return {
number: d.number,
type: d.type,
direction: d.direction,
stops: stations
.map(function(s) { return {station: s, time: parseTime(d[s.key])}; })
.filter(function(s) { return s.time != null; })
};
}
function parseTime(s) {
var t = formatTime.parse(s);
if (t != null && t.getHours() < 3) t.setDate(t.getDate() + 1);
return t;
}
</script>
number type direction stop|San Francisco|0|1 stop|22nd Street|40|1 stop|Bayshore|124|1 stop|So. San Francisco|178|1 stop|San Bruno|216|1 stop|Millbrae|249|2 stop|Broadway|280|2 stop|Burlingame|307|2 stop|San Mateo|334|2 stop|Hayward Park|354|2 stop|Hillsdale|391|2 stop|Belmont|428|2 stop|San Carlos|458|2 stop|Redwood City|499|2 stop|Atherton|543|3 stop|Menlo Park|574|3 stop|Palo Alto|604|3 stop|California Ave|649|3 stop|San Antonio|676|3 stop|Mountain View|702|3 stop|Sunnyvale|731|3 stop|Lawrence|757|4 stop|Santa Clara|805|4 stop|College Park|833|4 stop|San Jose|862|4 stop|Tamien|906|4 stop|Capitol|939|5 stop|Blossom Hill|966|5 stop|Morgan Hill|997|6 stop|San Martin|1021|6 stop|Gilroy|1053|6
102 N S 4:55am 5:00am 5:05am 5:11am 5:15am 5:19am - 5:23am 5:26am 5:29am 5:32am 5:35am 5:38am 5:43am - 5:48am 5:51am 5:55am 5:59am 6:03am 6:08am 6:12am 6:17am - 6:26am X X X X X X
104 N S 5:25am 5:30am 5:35am 5:41am 5:45am 5:49am - 5:53am 5:56am 5:59am 6:02am 6:05am 6:08am 6:13am - 6:18am 6:21am 6:25am 6:29am 6:33am 6:38am 6:42am 6:47am - 6:56am 7:03am X X X X X
206 L S 6:11am 6:16am - - - 6:29am - 6:33am 6:36am - 6:40am - 6:44am 6:49am - 6:54am 6:57am 7:01am - 7:07am - 7:12am - - 7:24am X X X X X X
208 L S 6:24am 6:29am 6:34am 6:40am 6:44am 6:48am - 6:52am 6:55am 6:58am 7:01am 7:04am i7:07am i7:12am - - 7:18am - - - - - 7:34am - 7:43am 7:50am X X X X X
210 L S 6:44am 6:49am - - - 7:01am - - 7:07am - - - i7:13am i7:18am - 7:23am 7:26am 7:30am 7:34am 7:38am 7:43am 7:49am 7:56am 7:59am 8:06am 8:13am X X X X X
312 B S 6:59am 7:04am - - - 7:17am - - - - - - - 7:30am - 7:35am - - - 7:44am - - - - 7:58am X X X X X X
314 B S 7:14am 7:19am - - - 7:32am - - - - 7:40am - - - - - 7:51am - - 7:58am - - - - 8:13am X X X X X X
216 L S 7:19am - - - 7:33am - - 7:38am 7:42am - 7:46am - 7:50am - - 7:58am 8:01am - - 8:09am - 8:16am - - 8:28am X X X X X X
218 L S 7:24am 7:29am 7:34am 7:40am 7:44am 7:48am - 7:52am 7:55am 7:58am 8:01am 8:04am i8:07am i8:12am - - 8:18am - - - - - 8:34am - 8:43am 8:50am X X X X X
220 L S 7:44am 7:49am - - - 8:01am - - 8:07am - - - i8:13am i8:18am - 8:23am 8:26am 8:30am 8:34am 8:38am 8:43am 8:49am 8:56am - 9:05am 9:12am X X X X X
322 B S 7:59am 8:04am - - - 8:17am - - - - - - - 8:30am - 8:35am - - - 8:44am - - - - 8:58am X X X X X X
324 B S 8:14am 8:19am - - - 8:32am - - - - 8:40am - - - - - 8:51am - - 8:58am - - - - 9:13am X X X X X X
226 L S 8:19am - - - 8:33am - - 8:38am 8:42am - 8:46am - 8:50am - - 8:58am 9:01am - - 9:09am - 9:16am - - 9:28am X X X X X X
228 L S 8:24am 8:29am 8:34am 8:40am 8:44am 8:48am - 8:52am 8:55am 8:58am 9:01am 9:04am i9:07am i9:12am - - 9:18am - - - - - 9:34am - 9:43am 9:50am X X X X X
230 L S 8:44am 8:49am - - - 9:01am - - 9:07am - - - i9:13am i9:18am - 9:23am 9:26am 9:30am 9:34am 9:38am 9:43am 9:49am 9:56am - 10:05am 10:12am X X X X X
332 B S 8:59am 9:04am - - - 9:17am - - - - - - - 9:30am - 9:35am - - - 9:44am - - - - 9:58am X X X X X X
134 N S 9:07am 9:12am 9:17am 9:23am 9:27am 9:31am - 9:35am 9:38am 9:41am 9:44am 9:47am 9:50am 9:55am - 10:00am 10:03am 10:07am 10:11am 10:15am 10:20am 10:24am 10:29am - 10:38am X X X X X X
236 L S 9:37am - - - 9:51am 9:55am - 9:59am 10:02am - 10:06am 10:09am 10:12am 10:17am - 10:22am 10:25am 10:29am 10:33am 10:37am 10:42am 10:46am 10:51am - 11:00am 11:07am X X X X X
138 N S 10:07am 10:12am 10:17am 10:23am 10:27am 10:31am - 10:35am 10:38am 10:41am 10:44am 10:47am 10:50am 10:55am - 11:00am 11:03am 11:07am 11:11am 11:15am 11:20am 11:24am 11:29am - 11:38am X X X X X X
142 N S 11:07am 11:12am 11:17am 11:23am 11:27am 11:31am - 11:35am 11:38am 11:41am 11:44am 11:47am 11:50am 11:55am - 12:00pm 12:03pm 12:07pm 12:11pm 12:15pm 12:20pm 12:24pm 12:29pm - 12:38pm X X X X X X
146 N S 12:07pm 12:12pm 12:17pm 12:23pm 12:27pm 12:31pm - 12:35pm 12:38pm 12:41pm 12:44pm 12:47pm 12:50pm 12:55pm - 1:00pm 1:03pm 1:07pm 1:11pm 1:15pm 1:20pm 1:24pm 1:29pm - 1:38pm X X X X X X
150 N S 1:07pm 1:12pm 1:17pm 1:23pm 1:27pm 1:31pm - 1:35pm 1:38pm 1:41pm 1:44pm 1:47pm 1:50pm 1:55pm - 2:00pm 2:03pm 2:07pm 2:11pm 2:15pm 2:20pm 2:24pm 2:29pm - 2:38pm X X X X X X
154 N S 2:07pm 2:12pm 2:17pm 2:23pm 2:27pm 2:31pm - 2:35pm 2:38pm 2:41pm 2:44pm 2:47pm 2:50pm 2:55pm - 3:00pm 3:03pm 3:07pm 3:11pm 3:15pm 3:20pm 3:24pm 3:29pm - 3:38pm X X X X X X
256 L S 2:37pm - - - 2:51pm 2:55pm - 2:59pm 3:02pm - 3:06pm 3:09pm 3:12pm 3:17pm - 3:22pm 3:25pm 3:29pm 3:33pm 3:37pm 3:42pm 3:46pm 3:51pm - 4:00pm 4:07pm X X X X X
158 N S 3:07pm 3:12pm 3:17pm 3:23pm 3:27pm 3:31pm - 3:35pm 3:38pm 3:41pm 3:44pm 3:47pm 3:50pm 3:55pm - 4:00pm 4:03pm 4:07pm 4:11pm 4:15pm 4:20pm 4:24pm 4:29pm 4:32pm 4:39pm 4:45pm 4:52pm 4:58pm 5:11pm 5:17pm 5:30pm
260 L S 3:37pm - - - 3:51pm 3:55pm - 3:59pm 4:02pm - 4:06pm 4:09pm 4:12pm 4:17pm - 4:22pm 4:25pm 4:29pm 4:33pm 4:37pm 4:42pm 4:46pm 4:51pm - 5:00pm 5:07pm X X X X X
362 B S 4:09pm - - - - 4:25pm - - - - 4:33pm - - - - - 4:44pm - - 4:51pm - - - - 5:06pm X X X X X X
264 L S 4:19pm - - - 4:33pm - - 4:38pm 4:42pm - 4:47pm - 4:51pm - - - 5:01pm 5:05pm - 5:11pm 5:16pm - - - 5:27pm X X X X X X
266 L S 4:27pm 4:32pm 4:40pm 4:48pm 4:52pm 4:56pm - 5:00pm 5:04pm 5:07pm 5:11pm 5:14pm 5:18pm i5:22pm - i5:28pm - - - 5:36pm - - 5:47pm - 5:55pm X X X X X X
368 B S 4:33pm - - - - 4:49pm - - 4:57pm - - - - 5:06pm - - 5:12pm - - - 5:21pm - - - 5:32pm 5:39pm X X X X X
270 L S 4:56pm - - 5:08pm - 5:14pm - - - - 5:22pm - - i5:28pm - i5:34pm 5:38pm 5:42pm 5:46pm 5:50pm 5:55pm 6:01pm 6:08pm - 6:16pm 6:22pm 6:29pm 6:35pm 6:48pm 6:54pm 7:07pm
372 B S 5:14pm - - - - 5:30pm - - - - 5:38pm - - - - - 5:49pm - - 5:56pm - - - - 6:11pm X X X X X X
274 L S 5:20pm - - - 5:34pm - - 5:39pm 5:43pm - 5:48pm - 5:52pm - - - 6:02pm 6:06pm - 6:12pm 6:17pm - - - 6:28pm X X X X X X
276 L S 5:27pm 5:32pm 5:40pm 5:48pm 5:52pm 5:56pm - 6:00pm 6:04pm 6:07pm 6:11pm 6:14pm 6:18pm i6:22pm - i6:28pm - - - 6:36pm - 6:43pm 6:48pm - 6:56pm 7:02pm 7:09pm 7:15pm 7:28pm 7:34pm 7:47pm
378 B S 5:33pm - - - - 5:49pm - - 5:57pm - - - - 6:06pm - - 6:12pm - - - 6:21pm - - - 6:32pm 6:39pm X X X X X
280 L S 5:56pm - - 6:08pm - 6:14pm - - - - 6:22pm - - i6:28pm - i6:34pm 6:38pm 6:42pm 6:46pm 6:50pm 6:55pm 7:01pm 7:08pm - 7:16pm 7:23pm X X X X X
382 B S 6:14pm - - - - 6:30pm - - - - 6:38pm - - - - - 6:49pm - - 6:56pm - - - - 7:11pm X X X X X X
284 L S 6:27pm 6:32pm 6:40pm 6:48pm 6:52pm 6:56pm - 7:00pm 7:04pm 7:07pm 7:11pm 7:14pm 7:18pm i7:22pm - i7:28pm - - - 7:36pm - - 7:47pm - 7:55pm X X X X X X
386 B S 6:33pm - - - - 6:49pm - - 6:57pm - - - - 7:06pm - - 7:12pm - - - 7:21pm - - - 7:32pm 7:39pm X X X X X
288 L S 6:56pm - - 7:08pm - 7:14pm - - - - 7:22pm - - i7:28pm - i7:34pm 7:38pm 7:42pm 7:46pm 7:50pm 7:55pm 7:59pm 8:04pm - 8:12pm 8:19pm X X X X X
190 N S 7:30pm 7:35pm 7:40pm 7:46pm 7:50pm 7:54pm - 7:58pm 8:01pm 8:04pm 8:07pm 8:10pm 8:13pm 8:18pm - 8:23pm 8:26pm 8:30pm 8:34pm 8:38pm 8:43pm 8:47pm 8:52pm - 9:01pm X X X X X X
192 N S 8:40pm 8:45pm 8:50pm 8:56pm 9:00pm 9:04pm - 9:08pm 9:11pm 9:14pm 9:17pm 9:20pm 9:23pm 9:28pm - 9:33pm 9:36pm 9:40pm 9:44pm 9:48pm 9:53pm 9:57pm 10:02pm - 10:11pm 10:18pm X X X X X
194 N S 9:40pm 9:45pm 9:50pm 9:56pm 10:00pm 10:04pm - 10:08pm 10:11pm 10:14pm 10:17pm 10:20pm 10:23pm 10:28pm - 10:33pm 10:36pm 10:40pm 10:44pm 10:48pm 10:53pm 10:57pm 11:02pm - 11:11pm 11:18pm X X X X X
196 N S 10:40pm 10:45pm 10:50pm 10:56pm 11:00pm 11:04pm - 11:08pm 11:11pm 11:14pm 11:17pm 11:20pm 11:23pm 11:28pm - 11:33pm 11:36pm 11:40pm 11:44pm 11:48pm 11:53pm 11:57pm 12:02am - 12:11am X X X X X X
198 N S 12:01am 12:06am 12:11am 12:17am 12:21am 12:25am - 12:29am 12:32am 12:35am 12:38am 12:41am 12:44am 12:49am - 12:54am 12:57am 1:01am 1:05am 1:09am 1:14am 1:18am 1:23am - 1:32am X X X X X X
422 W S 8:15am 8:20am 8:25am 8:31am 8:35am 8:39am 8:43am 8:45am 8:49am 8:52am 8:55am 8:58am 9:01am 9:07am 9:11am 9:14am 9:17am 9:21am 9:25am 9:29am 9:34am 9:38am 9:43am - 9:51am X X X X X X
424 W S 9:15am 9:20am 9:25am 9:31am 9:35am 9:39am 9:43am 9:45am 9:49am 9:52am 9:55am 9:58am 10:01am 10:07am 10:11am 10:14am 10:17am 10:21am 10:25am 10:29am 10:34am 10:38am 10:43am - 10:51am X X X X X X
426 W S 10:15am 10:20am 10:25am 10:31am 10:35am 10:39am 10:43am 10:45am 10:49am 10:52am 10:55am 10:58am 11:01am 11:07am 11:11am 11:14am 11:17am 11:21am 11:25am 11:29am 11:34am 11:38am 11:43am - 11:51am X X X X X X
428 W S 11:15am 11:20am 11:25am 11:31am 11:35am 11:39am 11:43am 11:45am 11:49am 11:52am 11:55am 11:58am 12:01pm 12:07pm 12:11pm 12:14pm 12:17pm 12:21pm 12:25pm 12:29pm 12:34pm 12:38pm 12:43pm - 12:51pm X X X X X X
430 W S 12:15pm 12:20pm 12:25pm 12:31pm 12:35pm 12:39pm 12:43pm 12:45pm 12:49pm 12:52pm 12:55pm 12:58pm 1:01pm 1:07pm 1:11pm 1:14pm 1:17pm 1:21pm 1:25pm 1:29pm 1:34pm 1:38pm 1:43pm - 1:51pm X X X X X X
432 W S 1:15pm 1:20pm 1:25pm 1:31pm 1:35pm 1:39pm 1:43pm 1:45pm 1:49pm 1:52pm 1:55pm 1:58pm 2:01pm 2:07pm 2:11pm 2:14pm 2:17pm 2:21pm 2:25pm 2:29pm 2:34pm 2:38pm 2:43pm - 2:51pm X X X X X X
434 W S 2:15pm 2:20pm 2:25pm 2:31pm 2:35pm 2:39pm 2:43pm 2:45pm 2:49pm 2:52pm 2:55pm 2:58pm 3:01pm 3:07pm 3:11pm 3:14pm 3:17pm 3:21pm 3:25pm 3:29pm 3:34pm 3:38pm 3:43pm - 3:51pm X X X X X X
436 W S 3:15pm 3:20pm 3:25pm 3:31pm 3:35pm 3:39pm 3:43pm 3:45pm 3:49pm 3:52pm 3:55pm 3:58pm 4:01pm 4:07pm 4:11pm 4:14pm 4:17pm 4:21pm 4:25pm 4:29pm 4:34pm 4:38pm 4:43pm - 4:51pm X X X X X X
438 W S 4:15pm 4:20pm 4:25pm 4:31pm 4:35pm 4:39pm 4:43pm 4:45pm 4:49pm 4:52pm 4:55pm 4:58pm 5:01pm 5:07pm 5:11pm 5:14pm 5:17pm 5:21pm 5:25pm 5:29pm 5:34pm 5:38pm 5:43pm - 5:51pm X X X X X X
440 W S 5:15pm 5:20pm 5:25pm 5:31pm 5:35pm 5:39pm 5:43pm 5:45pm 5:49pm 5:52pm 5:55pm 5:58pm 6:01pm 6:07pm 6:11pm 6:14pm 6:17pm 6:21pm 6:25pm 6:29pm 6:34pm 6:38pm 6:43pm - 6:51pm X X X X X X
442 W S 6:15pm 6:20pm 6:25pm 6:31pm 6:35pm 6:39pm 6:43pm 6:45pm 6:49pm 6:52pm 6:55pm 6:58pm 7:01pm 7:07pm 7:11pm 7:14pm 7:17pm 7:21pm 7:25pm 7:29pm 7:34pm 7:38pm 7:43pm - 7:51pm X X X X X X
444 W S 7:15pm 7:20pm 7:25pm 7:31pm 7:35pm 7:39pm 7:43pm 7:45pm 7:49pm 7:52pm 7:55pm 7:58pm 8:01pm 8:07pm 8:11pm 8:14pm 8:17pm 8:21pm 8:25pm 8:29pm 8:34pm 8:38pm 8:43pm - 8:51pm X X X X X X
446 W S 8:15pm 8:20pm 8:25pm 8:31pm 8:35pm 8:39pm 8:43pm 8:45pm 8:49pm 8:52pm 8:55pm 8:58pm 9:01pm 9:07pm 9:11pm 9:14pm 9:17pm 9:21pm 9:25pm 9:29pm 9:34pm 9:38pm 9:43pm - 9:51pm X X X X X X
448 W S 9:15pm 9:20pm 9:25pm 9:31pm 9:35pm 9:39pm 9:43pm 9:45pm 9:49pm 9:52pm 9:55pm 9:58pm 10:01pm 10:07pm 10:11pm 10:14pm 10:17pm 10:21pm 10:25pm 10:29pm 10:34pm 10:38pm 10:43pm - 10:51pm X X X X X X
450 S S 10:15pm 10:20pm 10:25pm 10:31pm 10:35pm 10:39pm 10:43pm 10:45pm 10:49pm 10:52pm 10:55pm 10:58pm 11:01pm 11:07pm 11:11pm 11:14pm 11:17pm 11:21pm 11:25pm 11:29pm 11:34pm 11:38pm 11:43pm - 11:51pm X X X X X X
454 S S 12:01am 12:06am 12:11am 12:17am 12:21am 12:25am 12:29am 12:31am 12:35am 12:38am 12:41am 12:44am 12:47am 12:53am 12:57am 1:00am 1:03am 1:07am 1:11am 1:15am 1:20am 1:24am 1:29am - 1:37am X X X X X X
101 N N 6:01am 5:52am 5:47am 5:41am 5:37am 5:33am - 5:28am 5:25am 5:22am 5:19am 5:16am 5:13am 5:09am - 5:04am 5:01am 4:57am 4:53am 4:49am 4:44am 4:40am 4:35am - 4:30am X X X X X X
103 N N 6:36am 6:27am 6:22am 6:16am 6:12am 6:08am - 6:03am 6:00am 5:57am 5:54am 5:51am 5:48am 5:44am - 5:39am 5:36am 5:32am 5:28am 5:24am 5:19am 5:15am 5:10am - 5:05am 4:58am X X X X X
305 B N 6:42am - - - - 6:24am - - - - 6:16am - - - - - 6:05am - - 5:57am - - - - 5:45am X X X X X X
207 L N 7:19am - - 7:05am - 6:59am - - - - 6:51am - - i6:45am - i6:39am 6:36am 6:31am 6:27am 6:23am 6:18am 6:12am 6:02am - 5:57am 5:50am X X X X X
309 B N 7:02am - - - - 6:45am - - 6:39am - - - - 6:30am - - 6:23am - - - 6:13am - - - 6:03am 5:56am X X X X X
211 L N 7:48am 7:40am 7:33am 7:25am 7:21am 7:17am - 7:11am 7:08am 7:05am 7:02am 6:58am 6:55am i6:51am - i6:45am - - - 6:37am - - 6:27am - 6:22am X X X X X X
313 B N 7:42am - - - - 7:24am - - - - 7:16am - - - - - 7:05am - - 6:57am - - - - 6:45am X X X X X X
215 L N 7:57am - - - 7:42am - - 7:35am 7:32am - 7:28am - 7:24am - - - 7:16am 7:11am - 7:05am 7:00am - - - 6:50am X X X X X X
217 L N 8:19am - - 8:05am - 7:59am - - - - 7:51am - - i7:45am - i7:39am 7:36am 7:31am 7:27am 7:23am 7:18am 7:12am 7:02am - 6:57am 6:49am 6:41am 6:35am 6:22am 6:16am 6:07am
319 B N 8:02am - - - - 7:45am - - 7:39am - - - - 7:30am - - 7:23am - - - 7:13am - - - 7:03am 6:56am X X X X X
221 L N 8:48am 8:40am 8:33am 8:25am 8:21am 8:17am - 8:11am 8:08am 8:05am 8:02am 7:58am 7:55am i7:51am - i7:45am - - - 7:37am - 7:30am 7:25am - 7:20am 7:12am 7:04am 6:58am 6:45am 6:39am 6:30am
323 B N 8:42am - - - - 8:24am - - - - 8:16am - - - - - 8:05am - - 7:57am - - - - 7:45am X X X X X X
225 L N 8:57am - - - 8:42am - - 8:35am 8:32am - 8:28am - 8:24am - - - 8:16am 8:11am - 8:05am 8:00am - - - 7:50am X X X X X X
227 L N 9:19am - - 9:05am - 8:59am - - - - 8:51am - - i8:45am - i8:39am 8:36am 8:31am 8:27am 8:23am 8:18am 8:12am 8:02am 7:58am 7:55am 7:47am 7:39am 7:33am 7:20am 7:14am 7:05am
329 B N 9:02am - - - - 8:45am - - 8:39am - - - - 8:30am - - 8:23am - - - 8:13am - - - 8:03am 7:56am X X X X X
231 L N 9:45am 9:37am 9:31am 9:25am 9:21am 9:17am - 9:11am 9:08am 9:05am 9:02am 8:58am 8:55am i8:51am - i8:45am - - - 8:37am - - 8:27am - 8:22am X X X X X X
233 L N 10:02am - - - 9:45am 9:41am - 9:36am 9:33am - 9:29am 9:26am 9:23am 9:19am - 9:14am 9:11am 9:07am 9:03am 8:59am 8:54am 8:50am 8:45am - 8:40am 8:33am X X X X X
135 N N 10:41am 10:32am 10:27am 10:21am 10:17am 10:13am - 10:08am 10:05am 10:02am 9:59am 9:56am 9:53am 9:49am - 9:44am 9:41am 9:37am 9:33am 9:29am 9:24am 9:20am 9:15am - 9:10am X X X X X X
237 L N 11:02am - - - 10:45am 10:41am - 10:36am 10:33am - 10:29am 10:26am 10:23am 10:19am - 10:14am 10:11am 10:07am 10:03am 9:59am 9:54am 9:50am 9:45am - 9:40am 9:33am X X X X X
139 N N 11:41am 11:32am 11:27am 11:21am 11:17am 11:13am - 11:08am 11:05am 11:02am 10:59am 10:56am 10:53am 10:49am - 10:44am 10:41am 10:37am 10:33am 10:29am 10:24am 10:20am 10:15am - 10:10am X X X X X X
143 N N 12:41pm 12:32pm 12:27pm 12:21pm 12:17pm 12:13pm - 12:08pm 12:05pm 12:02pm 11:59am 11:56am 11:53am 11:49am - 11:44am 11:41am 11:37am 11:33am 11:29am 11:24am 11:20am 11:15am - 11:10am X X X X X X
147 N N 1:41pm 1:32pm 1:27pm 1:21pm 1:17pm 1:13pm - 1:08pm 1:05pm 1:02pm 12:59pm 12:56pm 12:53pm 12:49pm - 12:44pm 12:41pm 12:37pm 12:33pm 12:29pm 12:24pm 12:20pm 12:15pm - 12:10pm X X X X X X
151 N N 2:41pm 2:32pm 2:27pm 2:21pm 2:17pm 2:13pm - 2:08pm 2:05pm 2:02pm 1:59pm 1:56pm 1:53pm 1:49pm - 1:44pm 1:41pm 1:37pm 1:33pm 1:29pm 1:24pm 1:20pm 1:15pm - 1:10pm X X X X X X
155 N N 3:41pm 3:32pm 3:27pm 3:21pm 3:17pm 3:13pm - 3:08pm 3:05pm 3:02pm 2:59pm 2:56pm 2:53pm 2:49pm - 2:44pm 2:41pm 2:37pm 2:33pm 2:29pm 2:24pm 2:20pm 2:15pm - 2:10pm X X X X X X
257 L N 4:02pm - - - 3:45pm 3:41pm - 3:36pm 3:33pm - 3:29pm 3:26pm 3:23pm 3:19pm - 3:14pm 3:11pm 3:07pm 3:03pm 2:59pm 2:54pm 2:50pm 2:45pm - 2:40pm 2:33pm X X X X X
159 N N 4:38pm 4:29pm 4:24pm 4:18pm 4:14pm 4:10pm - 4:05pm 4:02pm 3:59pm 3:56pm 3:53pm 3:50pm 3:46pm - 3:41pm 3:38pm 3:34pm 3:30pm 3:26pm 3:21pm 3:17pm 3:12pm 3:08pm 3:05pm X X X X X X
261 L N 5:03pm 4:55pm - - - 4:43pm - - 4:36pm - - - i4:29pm i4:25pm - 4:19pm 4:16pm 4:11pm 4:07pm 4:03pm 3:58pm 3:54pm 3:49pm - 3:44pm 3:37pm X X X X X
263 L N 5:29pm 5:21pm 5:13pm 5:05pm 5:01pm 4:57pm - 4:51pm 4:48pm 4:45pm 4:42pm 4:38pm i4:35pm i4:31pm - - 4:24pm - - - - - 4:10pm - 4:05pm 3:58pm X X X X X
365 B N 5:24pm 5:17pm - - - 5:05pm - - - - - - - 4:52pm - 4:46pm - - - 4:37pm - - - - 4:25pm X X X X X X
267 L N 6:02pm 5:55pm - - - 5:43pm - - 5:36pm - - - i5:29pm i5:25pm - 5:19pm 5:16pm 5:11pm 5:07pm 5:03pm 4:58pm 4:52pm 4:44pm - 4:39pm 4:32pm X X X X X
369 B N 5:44pm 5:37pm - - - 5:25pm - - - - 5:17pm - - - - - 5:06pm - - 4:58pm - - - - 4:45pm X X X X X X
271 L N 6:29pm 6:21pm 6:13pm 6:05pm 6:01pm 5:57pm - 5:51pm 5:48pm 5:45pm 5:42pm 5:38pm i5:35pm i5:31pm - - 5:24pm - - - - - 5:10pm - 5:05pm 4:58pm X X X X X
373 B N 6:24pm 6:17pm - - - 6:05pm - - - - - - - 5:52pm - 5:46pm - - - 5:37pm - - - - 5:25pm X X X X X X
275 L N 6:39pm - - - 6:22pm - - 6:15pm 6:12pm - 6:08pm - 6:04pm - - 5:57pm 5:54pm - - 5:46pm - 5:39pm - - 5:31pm X X X X X X
277 L N 7:02pm 6:55pm - - - 6:43pm - - 6:36pm - - - i6:29pm i6:25pm - 6:19pm 6:16pm 6:11pm 6:07pm 6:03pm 5:58pm 5:52pm 5:44pm - 5:39pm 5:32pm X X X X X
379 B N 6:44pm 6:37pm - - - 6:25pm - - - - 6:17pm - - - - - 6:06pm - - 5:58pm - - - - 5:45pm X X X X X X
281 L N 7:29pm 7:21pm 7:13pm 7:05pm 7:01pm 6:57pm - 6:51pm 6:48pm 6:45pm 6:42pm 6:38pm i6:35pm i6:31pm - - 6:24pm - - - - - 6:10pm - 6:05pm 5:58pm X X X X X
383 B N 7:24pm 7:17pm - - - 7:05pm - - - - - - - 6:52pm - 6:46pm - - - 6:37pm - - - - 6:25pm X X X X X X
285 L N 7:39pm - - - 7:22pm - - 7:15pm 7:12pm - 7:08pm - 7:04pm - - 6:57pm 6:54pm - - 6:46pm - 6:39pm - - 6:31pm 6:24pm X X X X X
287 L N 8:00pm 7:53pm - - - 7:41pm - 7:35pm 7:32pm - 7:28pm - 7:23pm 7:19pm - 7:13pm 7:10pm 7:06pm - 7:00pm - 6:53pm - - 6:45pm X X X X X X
189 N N 8:21pm 8:12pm 8:07pm 8:01pm 7:57pm 7:53pm - 7:48pm 7:45pm 7:42pm 7:39pm 7:36pm 7:33pm 7:29pm - 7:24pm 7:21pm 7:17pm 7:13pm 7:09pm 7:04pm 7:00pm 6:55pm - 6:50pm X X X X X X
191 N N 9:01pm 8:52pm 8:47pm 8:41pm 8:37pm 8:33pm - 8:28pm 8:25pm 8:22pm 8:19pm 8:16pm 8:13pm 8:09pm - 8:04pm 8:01pm 7:57pm 7:53pm 7:49pm 7:44pm 7:40pm 7:35pm - 7:30pm X X X X X X
193 N N 10:01pm 9:52pm 9:47pm 9:41pm 9:37pm 9:33pm - 9:28pm 9:25pm 9:22pm 9:19pm 9:16pm 9:13pm 9:09pm - 9:04pm 9:01pm 8:57pm 8:53pm 8:49pm 8:44pm 8:40pm 8:35pm - 8:30pm 8:23pm X X X X X
195 N N 11:01pm 10:52pm 10:47pm 10:41pm 10:37pm 10:33pm - 10:28pm 10:25pm 10:22pm 10:19pm 10:16pm 10:13pm 10:09pm - 10:04pm 10:01pm 9:57pm 9:53pm 9:49pm 9:44pm 9:40pm 9:35pm - 9:30pm 9:23pm X X X X X
197 N N 12:01am 11:52pm 11:47pm 11:41pm 11:37pm 11:33pm - 11:28pm 11:25pm 11:22pm 11:19pm 11:16pm 11:13pm 11:09pm - 11:04pm 11:01pm 10:57pm 10:53pm 10:49pm 10:44pm 10:40pm 10:35pm - 10:30pm X X X X X X
421 S N 8:36am 8:28am 8:23am 8:17am 8:12am 8:08am 8:03am 8:00am 7:57am 7:54am 7:51am 7:48am 7:45am 7:41am 7:37am 7:34am 7:31am 7:27am 7:23am 7:19am 7:14am 7:10am 7:05am - 7:00am X X X X X X
423 W N 9:36am 9:28am 9:23am 9:17am 9:12am 9:08am 9:03am 9:00am 8:57am 8:54am 8:51am 8:48am 8:45am 8:41am 8:37am 8:34am 8:31am 8:27am 8:23am 8:19am 8:14am 8:10am 8:05am - 8:00am X X X X X X
425 W N 10:36am 10:28am 10:23am 10:17am 10:12am 10:08am 10:03am 10:00am 9:57am 9:54am 9:51am 9:48am 9:45am 9:41am 9:37am 9:34am 9:31am 9:27am 9:23am 9:19am 9:14am 9:10am 9:05am - 9:00am X X X X X X
427 W N 11:36am 11:28am 11:23am 11:17am 11:12am 11:08am 11:03am 11:00am 10:57am 10:54am 10:51am 10:48am 10:45am 10:41am 10:37am 10:34am 10:31am 10:27am 10:23am 10:19am 10:14am 10:10am 10:05am - 10:00am X X X X X X
429 W N 12:36pm 12:28pm 12:23pm 12:17pm 12:12pm 12:08pm 12:03pm 12:00pm 11:57am 11:54am 11:51am 11:48am 11:45am 11:41am 11:37am 11:34am 11:31am 11:27am 11:23am 11:19am 11:14am 11:10am 11:05am - 11:00am X X X X X X
431 W N 1:36pm 1:28pm 1:23pm 1:17pm 1:12pm 1:08pm 1:03pm 1:00pm 12:57pm 12:54pm 12:51pm 12:48pm 12:45pm 12:41pm 12:37pm 12:34pm 12:31pm 12:27pm 12:23pm 12:19pm 12:14pm 12:10pm 12:05pm - 12:00pm X X X X X X
433 W N 2:36pm 2:28pm 2:23pm 2:17pm 2:12pm 2:08pm 2:03pm 2:00pm 1:57pm 1:54pm 1:51pm 1:48pm 1:45pm 1:41pm 1:37pm 1:34pm 1:31pm 1:27pm 1:23pm 1:19pm 1:14pm 1:10pm 1:05pm - 1:00pm X X X X X X
435 W N 3:36pm 3:28pm 3:23pm 3:17pm 3:12pm 3:08pm 3:03pm 3:00pm 2:57pm 2:54pm 2:51pm 2:48pm 2:45pm 2:41pm 2:37pm 2:34pm 2:31pm 2:27pm 2:23pm 2:19pm 2:14pm 2:10pm 2:05pm - 2:00pm X X X X X X
437 W N 4:36pm 4:28pm 4:23pm 4:17pm 4:12pm 4:08pm 4:03pm 4:00pm 3:57pm 3:54pm 3:51pm 3:48pm 3:45pm 3:41pm 3:37pm 3:34pm 3:31pm 3:27pm 3:23pm 3:19pm 3:14pm 3:10pm 3:05pm - 3:00pm X X X X X X
439 W N 5:36pm 5:28pm 5:23pm 5:17pm 5:12pm 5:08pm 5:03pm 5:00pm 4:57pm 4:54pm 4:51pm 4:48pm 4:45pm 4:41pm 4:37pm 4:34pm 4:31pm 4:27pm 4:23pm 4:19pm 4:14pm 4:10pm 4:05pm - 4:00pm X X X X X X
441 W N 6:36pm 6:28pm 6:23pm 6:17pm 6:12pm 6:08pm 6:03pm 6:00pm 5:57pm 5:54pm 5:51pm 5:48pm 5:45pm 5:41pm 5:37pm 5:34pm 5:31pm 5:27pm 5:23pm 5:19pm 5:14pm 5:10pm 5:05pm - 5:00pm X X X X X X
443 W N 7:36pm 7:28pm 7:23pm 7:17pm 7:12pm 7:08pm 7:03pm 7:00pm 6:57pm 6:54pm 6:51pm 6:48pm 6:45pm 6:41pm 6:37pm 6:34pm 6:31pm 6:27pm 6:23pm 6:19pm 6:14pm 6:10pm 6:05pm - 6:00pm X X X X X X
445 W N 8:36pm 8:28pm 8:23pm 8:17pm 8:12pm 8:08pm 8:03pm 8:00pm 7:57pm 7:54pm 7:51pm 7:48pm 7:45pm 7:41pm 7:37pm 7:34pm 7:31pm 7:27pm 7:23pm 7:19pm 7:14pm 7:10pm 7:05pm - 7:00pm X X X X X X
447 W N 9:36pm 9:28pm 9:23pm 9:17pm 9:12pm 9:08pm 9:03pm 9:00pm 8:57pm 8:54pm 8:51pm 8:48pm 8:45pm 8:41pm 8:37pm 8:34pm 8:31pm 8:27pm 8:23pm 8:19pm 8:14pm 8:10pm 8:05pm - 8:00pm X X X X X X
449 W N 10:36pm 10:28pm 10:23pm 10:17pm 10:12pm 10:08pm 10:03pm 10:00pm 9:57pm 9:54pm 9:51pm 9:48pm 9:45pm 9:41pm 9:37pm 9:34pm 9:31pm 9:27pm 9:23pm 9:19pm 9:14pm 9:10pm 9:05pm - 9:00pm X X X X X X
451 S N 12:06am 11:58pm 11:53pm 11:47pm 11:42pm 11:38pm 11:33pm 11:30pm 11:27pm 11:24pm 11:21pm 11:18pm 11:15pm 11:11pm 11:07pm 11:04pm 11:01pm 10:57pm 10:53pm 10:49pm 10:44pm 10:40pm 10:35pm - 10:30pm X X X X X X
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment