block by milroc 9165567

urban data hacking

Full Screen

index.html

<!DOCTYPE html>
  <head>
    <meta charset="utf-8">
    <link type="text/css" rel="stylesheet" href="sarahStyle.css"/>
    <link type="text/css" rel="stylesheet" href="style.css"/>
    <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  </head>
  <body>
    <div id="buttons">
        <button id="emb" name="Embarcadero" type="button" class="btn btn-default">Embarcadero<i class="fa fa-female hidden"></i><i class="fa fa-female hidden"></i><i class="fa fa-female hidden"></i> </button>
        <button id="mont" name="Montgomery" type="button" class="btn btn-default">Montgomery<i class="fa fa-male hidden"></i><i class="fa fa-male hidden"></i></button>
        <button id="pow" name="Powell" type="button" class="btn btn-default">Powell<i class="fa fa-male hidden"></i><i class="fa fa-female hidden"></i></button>
        <button id="cc" name="Civic Center" type="button" class="btn btn-default">Civic Center<i class="fa fa-male hidden"></i></button>
      </div>
    </div>
    <div id="charts"></div>
    <script src="d3.js"></script>
    <!-- // <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> -->
    <script src="charts.js"></script>
    <script src="src.js"></script>
  </body>
</html>

src.js

var stations = ["Civic Center", "Embarcadero", "Montgomery", "Powell"];
var station = "Civic Center";
var cc = d3.select("#cc").on("click", function() {
	station = stations[0];
	d3.selectAll(".btn").selectAll(".fa").classed('hidden', true);
	d3.select(this).selectAll(".fa").classed('hidden', false);
	redraw();
});
d3.select("#emb").on("click", function() {
	station = stations[1];
	d3.selectAll(".btn").selectAll(".fa").classed('hidden', true);
	d3.select(this).selectAll(".fa").classed('hidden', false);
	redraw();
});
d3.select("#mont").on("click", function() {
	station = stations[2];
	d3.selectAll(".btn").selectAll(".fa").classed('hidden', true);
	d3.select(this).selectAll(".fa").classed('hidden', false);
	redraw();
});
d3.select("#pow").on("click", function() {
	station = stations[3];
	d3.selectAll(".btn").selectAll(".fa").classed('hidden', true);
	d3.select(this).selectAll(".fa").classed('hidden', false);
	redraw();
});

d3.csv('urban.csv', function(data) {
	// convert time
	data.map(function(d) {
		d.timestamp = (new Date(d.timestamp));
		d.index = "i-" + d.timestamp.getMonth() + "-" + d.timestamp.getDate();
		d.count = +d.count;
		return d;
	})

	console.log(data);


	var timeExtent = d3.extent(data, function(d) { return d.timestamp; });

	// nest data
	var nested = d3.nest()
					.key(function(d) { return d.index; })
					.key(function(d) { return d.station; })
					.key(function(d) { return d.object; })
					.entries(data).map(function(d) {
		d.values = d.values.map(function(d) {
			d.values = d.values.map(function(d) {
				d.extent = d3.extent(d.values, function(d) { return d.count; });
				d.quartile1 = d3.quantile(d.values.map(function(d) { return d.count; }), .25);
				d.median = d3.median(d.values, function(d) { return d.count; });
				d.quartile2 = d3.quantile(d.values.map(function(d) { return d.count; }), .75);
				d.thresholds = [d.quartile1, d.median, d.quartile2, d.extent[1]];
				d.values = d.values.map(function(d) {
					d.minute = d.timestamp.getMinutes();
					d.hour = d.timestamp.getHours();
					return d;
				});
				return d;
			});
			return d;
		});
		return d;
	});

	var dataBase = {};

	nested.forEach(function(d) {
		dataBase[d.key] = {};
		d.values.forEach(function(e) {
			dataBase[d.key][e.key] = e;
		});
	});


	var index = "i-0-20";


	// hackety hack
	var stations = ["Civic Center", "Embarcadero", "Montgomery", "Powell"],
		indices = ["i-0-20", "i-0-21", "i-0-22", "i-0-23", "i-0-24", "i-0-25", "i-0-26", "i-0-27", "i-0-28", "i-0-29", "i-0-30", "i-0-31", "i-1-1", "i-1-2",];
	var i = 0;
	var j = 0;
	redraw();
	setInterval(function(d) {
		i++;
		if (i === indices.length) i = 0;
		redraw();
	}, 5000);


	function redraw() {
		var index = indices[i];
		var stationDiv = d3.select('#charts').selectAll('.station').data([dataBase[index][station]]);
		console.log(indices[i], dataBase[indices[i]][stations[j]]);

		stationDiv.enter().append('div').classed('station', true)
		stationDiv.each(function(stationObj) {
			var staKey = stationObj.key;
			var keys = [stationObj.key];
			var h1 = d3.select(this).selectAll('h1').data(keys);
			h1.enter().append('h1');
			h1.text(function(d) { return d; });
			var type = d3.select(this).selectAll('.type').data(stationObj.values);
			type.enter().append('div').classed('type', true)
			type.each(function(typeObj) {
				var h2 = d3.select(this).selectAll('h2').data([typeObj.key])
				h2.enter().append('h2')
				h2.text(function(d) { return d; })
				var chartValues = [typeObj.values];
				var chart = d3.select(this).selectAll('.chart').data(chartValues); //hack
				chart.enter().append('div').classed('chart', true)
				var colors = ['#33332d', '#5e3a28', '#864021', '#b04217', '#db4105'];
				// colors.reverse();
				if (d3.extent[1] > 1) {
					chart.call(d3.custom.heatmap().box(this.clientWidth)
										.zScale(
											d3.scale.threshold()
												.domain(typeObj.thresholds)
												.range(colors)
										)
							);
				} else {
					chart.call(d3.custom.heatmap().box(this.clientWidth)
										.zScale(
											d3.scale.linear()
												.domain(typeObj.extent)
												.range([colors[0], colors[colors.length - 1]])
										)
							);
				}

			});
		})
	}
});

style.css

@import url("//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700");
@import url(http://fonts.googleapis.com/css?family=Raleway);

button, .btn, .btn-default {
  background-color: #9FB4CC;
  height: 50px;
  line-height: 1.5;
  .highlight-fade;
  width: 136px;
}

i {
  padding: 0;
  padding-left: 5px;
}

div {
  padding: 0
}

#buttons, #charts {
  width: auto;
  margin-left: 25%;
  margin-right: 25%;
}
body {
  font-size: 14px;


  background-color: #33332D;
}

h1,h2,h3,h4,h5,body {
  color: #FFF8E3;
	font-family: 'Raleway', 'Helvetica Neue', Helvetica, Helvetica, Arial, sans-serif;
	font-weight: 200;
}

.type {
	display: inline-block;
	padding: 2.5%;
  width: 45%;
}
.type:first {
  padding-left: 200px;
}

.station > h1 {
	text-align: center;
}
.row {
  padding: 5px;
}

.y.axis line,
.y.axis path {
  fill: none;
  stroke: #FFF;
  shape-rendering: crispEdges;
}

.x.axis line,
.x.axis path {
  fill: none;
  stroke: none;
}

.axis text {
	font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Helvetica, Arial, sans-serif;
  fill: #FFF;

}

.brush .extent {
  stroke: #FFF;
  fill-opacity: .125;
  shape-rendering: crispEdges;
}

.area {
  opacity: .6;
}
.line {
  fill: none;
  /*shape-rendering: crispEdges;*/
}

.title {
  fill: #FFF;
  stroke: none;
}

.focus circle {
  fill: none;
  stroke-width: 2px;
}

.overlay {
  fill: none;
  pointer-events: all;
}
}

urbanHour.csv

timestamp,station,object,count
2014-01-20 12:00:00-08:00,Embarcadero,Buses,0
2014-01-20 12:00:00-08:00,Embarcadero,Cars,4
2014-01-20 12:00:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:00:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:01:00-08:00,Embarcadero,Buses,0
2014-01-20 12:01:00-08:00,Embarcadero,Cars,1
2014-01-20 12:01:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:01:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:02:00-08:00,Embarcadero,Buses,0
2014-01-20 12:02:00-08:00,Embarcadero,Cars,5
2014-01-20 12:02:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:02:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:03:00-08:00,Embarcadero,Buses,0
2014-01-20 12:03:00-08:00,Embarcadero,Cars,1
2014-01-20 12:03:00-08:00,Embarcadero,Trucks,1
2014-01-20 12:03:00-08:00,Embarcadero,Pedestrians,4
2014-01-20 12:04:00-08:00,Embarcadero,Buses,0
2014-01-20 12:04:00-08:00,Embarcadero,Cars,3
2014-01-20 12:04:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:04:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:05:00-08:00,Embarcadero,Buses,0
2014-01-20 12:05:00-08:00,Embarcadero,Cars,1
2014-01-20 12:05:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:05:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:06:00-08:00,Embarcadero,Buses,0
2014-01-20 12:06:00-08:00,Embarcadero,Cars,0
2014-01-20 12:06:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:06:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:07:00-08:00,Embarcadero,Buses,0
2014-01-20 12:07:00-08:00,Embarcadero,Cars,0
2014-01-20 12:07:00-08:00,Embarcadero,Trucks,1
2014-01-20 12:07:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:08:00-08:00,Embarcadero,Buses,0
2014-01-20 12:08:00-08:00,Embarcadero,Cars,2
2014-01-20 12:08:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:08:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:09:00-08:00,Embarcadero,Buses,0
2014-01-20 12:09:00-08:00,Embarcadero,Cars,0
2014-01-20 12:09:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:09:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:10:00-08:00,Embarcadero,Buses,0
2014-01-20 12:10:00-08:00,Embarcadero,Cars,3
2014-01-20 12:10:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:10:00-08:00,Embarcadero,Pedestrians,4
2014-01-20 12:11:00-08:00,Embarcadero,Buses,0
2014-01-20 12:11:00-08:00,Embarcadero,Cars,4
2014-01-20 12:11:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:11:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:12:00-08:00,Embarcadero,Buses,0
2014-01-20 12:12:00-08:00,Embarcadero,Cars,0
2014-01-20 12:12:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:12:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:13:00-08:00,Embarcadero,Buses,0
2014-01-20 12:13:00-08:00,Embarcadero,Cars,2
2014-01-20 12:13:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:13:00-08:00,Embarcadero,Pedestrians,4
2014-01-20 12:14:00-08:00,Embarcadero,Buses,0
2014-01-20 12:14:00-08:00,Embarcadero,Cars,2
2014-01-20 12:14:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:14:00-08:00,Embarcadero,Pedestrians,4
2014-01-20 12:15:00-08:00,Embarcadero,Buses,0
2014-01-20 12:15:00-08:00,Embarcadero,Cars,0
2014-01-20 12:15:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:15:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:16:00-08:00,Embarcadero,Buses,0
2014-01-20 12:16:00-08:00,Embarcadero,Cars,2
2014-01-20 12:16:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:16:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:17:00-08:00,Embarcadero,Buses,0
2014-01-20 12:17:00-08:00,Embarcadero,Cars,5
2014-01-20 12:17:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:17:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:18:00-08:00,Embarcadero,Buses,0
2014-01-20 12:18:00-08:00,Embarcadero,Cars,2
2014-01-20 12:18:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:18:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:19:00-08:00,Embarcadero,Buses,0
2014-01-20 12:19:00-08:00,Embarcadero,Cars,2
2014-01-20 12:19:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:19:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:20:00-08:00,Embarcadero,Buses,0
2014-01-20 12:20:00-08:00,Embarcadero,Cars,2
2014-01-20 12:20:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:20:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:21:00-08:00,Embarcadero,Buses,0
2014-01-20 12:21:00-08:00,Embarcadero,Cars,5
2014-01-20 12:21:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:21:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:22:00-08:00,Embarcadero,Buses,0
2014-01-20 12:22:00-08:00,Embarcadero,Cars,0
2014-01-20 12:22:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:22:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:23:00-08:00,Embarcadero,Buses,0
2014-01-20 12:23:00-08:00,Embarcadero,Cars,1
2014-01-20 12:23:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:23:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:24:00-08:00,Embarcadero,Buses,0
2014-01-20 12:24:00-08:00,Embarcadero,Cars,0
2014-01-20 12:24:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:24:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:25:00-08:00,Embarcadero,Buses,0
2014-01-20 12:25:00-08:00,Embarcadero,Cars,1
2014-01-20 12:25:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:25:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:26:00-08:00,Embarcadero,Buses,0
2014-01-20 12:26:00-08:00,Embarcadero,Cars,1
2014-01-20 12:26:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:26:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:27:00-08:00,Embarcadero,Buses,0
2014-01-20 12:27:00-08:00,Embarcadero,Cars,0
2014-01-20 12:27:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:27:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:28:00-08:00,Embarcadero,Buses,0
2014-01-20 12:28:00-08:00,Embarcadero,Cars,0
2014-01-20 12:28:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:28:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:29:00-08:00,Embarcadero,Buses,0
2014-01-20 12:29:00-08:00,Embarcadero,Cars,2
2014-01-20 12:29:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:29:00-08:00,Embarcadero,Pedestrians,1
2014-01-20 12:30:00-08:00,Embarcadero,Buses,0
2014-01-20 12:30:00-08:00,Embarcadero,Cars,1
2014-01-20 12:30:00-08:00,Embarcadero,Trucks,1
2014-01-20 12:30:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:31:00-08:00,Embarcadero,Buses,0
2014-01-20 12:31:00-08:00,Embarcadero,Cars,2
2014-01-20 12:31:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:31:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:32:00-08:00,Embarcadero,Buses,0
2014-01-20 12:32:00-08:00,Embarcadero,Cars,1
2014-01-20 12:32:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:32:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:33:00-08:00,Embarcadero,Buses,0
2014-01-20 12:33:00-08:00,Embarcadero,Cars,3
2014-01-20 12:33:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:33:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:34:00-08:00,Embarcadero,Buses,0
2014-01-20 12:34:00-08:00,Embarcadero,Cars,5
2014-01-20 12:34:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:34:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:35:00-08:00,Embarcadero,Buses,0
2014-01-20 12:35:00-08:00,Embarcadero,Cars,3
2014-01-20 12:35:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:35:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:36:00-08:00,Embarcadero,Buses,0
2014-01-20 12:36:00-08:00,Embarcadero,Cars,3
2014-01-20 12:36:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:36:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:37:00-08:00,Embarcadero,Buses,0
2014-01-20 12:37:00-08:00,Embarcadero,Cars,1
2014-01-20 12:37:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:37:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:38:00-08:00,Embarcadero,Buses,0
2014-01-20 12:38:00-08:00,Embarcadero,Cars,1
2014-01-20 12:38:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:38:00-08:00,Embarcadero,Pedestrians,4
2014-01-20 12:39:00-08:00,Embarcadero,Buses,0
2014-01-20 12:39:00-08:00,Embarcadero,Cars,2
2014-01-20 12:39:00-08:00,Embarcadero,Trucks,1
2014-01-20 12:39:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:40:00-08:00,Embarcadero,Buses,0
2014-01-20 12:40:00-08:00,Embarcadero,Cars,0
2014-01-20 12:40:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:40:00-08:00,Embarcadero,Pedestrians,4
2014-01-20 12:41:00-08:00,Embarcadero,Buses,0
2014-01-20 12:41:00-08:00,Embarcadero,Cars,0
2014-01-20 12:41:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:41:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:42:00-08:00,Embarcadero,Buses,0
2014-01-20 12:42:00-08:00,Embarcadero,Cars,2
2014-01-20 12:42:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:42:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:43:00-08:00,Embarcadero,Buses,0
2014-01-20 12:43:00-08:00,Embarcadero,Cars,0
2014-01-20 12:43:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:43:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:44:00-08:00,Embarcadero,Buses,0
2014-01-20 12:44:00-08:00,Embarcadero,Cars,0
2014-01-20 12:44:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:44:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:45:00-08:00,Embarcadero,Buses,0
2014-01-20 12:45:00-08:00,Embarcadero,Cars,2
2014-01-20 12:45:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:45:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:46:00-08:00,Embarcadero,Buses,0
2014-01-20 12:46:00-08:00,Embarcadero,Cars,4
2014-01-20 12:46:00-08:00,Embarcadero,Trucks,1
2014-01-20 12:46:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:47:00-08:00,Embarcadero,Buses,0
2014-01-20 12:47:00-08:00,Embarcadero,Cars,2
2014-01-20 12:47:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:47:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:48:00-08:00,Embarcadero,Buses,0
2014-01-20 12:48:00-08:00,Embarcadero,Cars,4
2014-01-20 12:48:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:48:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:49:00-08:00,Embarcadero,Buses,0
2014-01-20 12:49:00-08:00,Embarcadero,Cars,4
2014-01-20 12:49:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:49:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:50:00-08:00,Embarcadero,Buses,0
2014-01-20 12:50:00-08:00,Embarcadero,Cars,1
2014-01-20 12:50:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:50:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:51:00-08:00,Embarcadero,Buses,0
2014-01-20 12:51:00-08:00,Embarcadero,Cars,2
2014-01-20 12:51:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:51:00-08:00,Embarcadero,Pedestrians,2
2014-01-20 12:52:00-08:00,Embarcadero,Buses,0
2014-01-20 12:52:00-08:00,Embarcadero,Cars,2
2014-01-20 12:52:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:52:00-08:00,Embarcadero,Pedestrians,4
2014-01-20 12:53:00-08:00,Embarcadero,Buses,0
2014-01-20 12:53:00-08:00,Embarcadero,Cars,2
2014-01-20 12:53:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:53:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:54:00-08:00,Embarcadero,Buses,0
2014-01-20 12:54:00-08:00,Embarcadero,Cars,3
2014-01-20 12:54:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:54:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:55:00-08:00,Embarcadero,Buses,0
2014-01-20 12:55:00-08:00,Embarcadero,Cars,3
2014-01-20 12:55:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:55:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:56:00-08:00,Embarcadero,Buses,0
2014-01-20 12:56:00-08:00,Embarcadero,Cars,2
2014-01-20 12:56:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:56:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:57:00-08:00,Embarcadero,Buses,0
2014-01-20 12:57:00-08:00,Embarcadero,Cars,4
2014-01-20 12:57:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:57:00-08:00,Embarcadero,Pedestrians,3
2014-01-20 12:58:00-08:00,Embarcadero,Buses,0
2014-01-20 12:58:00-08:00,Embarcadero,Cars,3
2014-01-20 12:58:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:58:00-08:00,Embarcadero,Pedestrians,1
2014-01-20 12:59:00-08:00,Embarcadero,Buses,0
2014-01-20 12:59:00-08:00,Embarcadero,Cars,4
2014-01-20 12:59:00-08:00,Embarcadero,Trucks,0
2014-01-20 12:59:00-08:00,Embarcadero,Pedestrians,2