New York City Taxi Route Viewer

Screenshot Taxi Data


The data we decided to use is from the Yellow Taxi trip sheet data from the NYC Taxi & Limousine Commission. Stumbling upon the data we surprised with the amount of data that was available. The data had a variety of potential ways it could be displayed.

Screenshot Taxi Data Screenshot Taxi Data


Since the data was about taxi routes, it reminded us about line visualizations for data. The first one shows plane flights and the second is an illustration of mouse movement tracking. These ideas motivated us to draw the trails for the taxi route locations. We thought it would be interesting to see trends and data concentrations of certain categories.

Screenshot Taxi Data

Scoping Down

Pursing the idea, we quickly realized how much data we were dealing with. Referring back to the image of the data above, there were over a million data entries a month. We knew that bringing in that much data would result in unfavorable load times. Briefing it over again, our solution was to bring in and store the data through a custom API and store it on a local server. Doing so will greatly increase the load times when loading in the data points for the data. However, this was the first experience with this approach. We soon had to shrink our data pool to a manageable size, opting to do a single day’s worth of data instead; which still yielded a bit under 300 thousand data entries.

Screenshot Taxi Data

Sketching it Out

As we split ways to tackle the project on two fronts, I tasked myself to sketch out a rough idea of what we wanted. On the front end, our goal was to utilize the Google Maps API to display our data. The visualization will plot both pick up and drop off locations using latitude and longitude information from each route. Each route will be drawn in the way of “as the crow flies,” connecting the pick up and drop off points with a line. Each route’s drop off location on hover will display additional information about the route such as distance, actual distance this time, tip amount, etc. In addition, we would have a time slider to limit the amount of routes being shown at a time to reduce clutter.

Screenshot Taxi Data

Front End Prototype

Link to Prototype

Handling the front end side of the project, my next task was to build a prototype version of our final product. Using the Google Maps API and JavaScript, I took a few hard coded taxi route data points to show a working proof of concept. This was one of the milestones within our project. It showed the basic data plotting on the map and drawing the routes. In addition, also showing latitude and longitude coordinates when hovering over the drop off points.

Screenshot Taxi Data Screenshot Taxi Data

Final Stages

GitHub Link

After the custom API and server setup was completed. The next step was to reformat the JavaScript to be ready to receive the data from the server. After some visual tweaks such as having separate colors for the pick up and drop off locations, and tweaking the time slider to different time increments, the last thing was to import the code to the server. We were pretty happy with the results, as running through the time segments we could see certain trends and focal areas. For example, since we did the data set for January 2nd, which was a Saturday. Setting the time frame to around work hours, you could see a lot of routes heading into the city. Other times such as at 1:10AM as shown in the screenshot, there were a lot drop offs at the airport, which makes sense as it is a frequent time for plane flights.