This is my final project for CS 573 - Data Visualization.
This project uses crash data over the last nine years in the city of Boston, MA.
This Dataset is pulled from data.boston.gov, provided as part of the Vision Zero Boston program, contains records of the date, time, location, and type of crash for incidents requiring public safety response which may involve injuries or fatalities. All records are compiled by the Department of Innovation and Technology from the City's Computer-Aided Dispatch (911) system and verified as having required a response from a public safety agency. To protect the privacy of individuals involved in these incidents, they do not indicate the severity of specific crashes or whether medical care was provided in any specific case.
For this project, I set out to understand the geographic distribution of crashes, the patterns of crashes by time of year, year-after-year. While I was learning new data viz techniques, I sought out to identify subsets of the data where crashes have a high value and crash rates for mode/vehicle type by parsing the data and adding interactivity.
I completed several iterations of each visualization as my knowledge and experience grew throughout the course. From learning new techniques like including color channels and interactivity, to ensuring scalability by learning how toimport and parse the data from the raw data file rather than hard coding data points in my java file directly, my visualizations evolved.
The first iteration of the map was merely an outline of Massachusetts, as I was learning to use and understand geojson data. And iteration two was the map with test points on the map that would later represent the locations of crashes from the crash data. In iteration three, I successfully added in the real coordinate data points to plot crashes, parsing the data from the csv file.
In the fourth iteration, I decided to use Boston geojson data as the crash data contained only Boston specific crashes. I was able to successfully plot the crash data points on the Boston map but could not import and parse the geojson data. Instead I had hardcoded the geojson data into my javascript file, making the UI really slow and ultimately not feasible. In iteration five, I added color channels by color coding the data points by crash type, but still had hardcoded geojson data.
In iteration six, I finally made the visualization scalable, by importing and parsing the geojson data in my javascript file, instead of having it hard coded. Viz hub now ran much quicker, and I cut down almost all of the lag time I was experiencing. In iteration 7, I added interactivity by including check boxes to filter what types of crashes the user wanted to see on the graph.
In my eigth and final iteration, I improved the look of my visualization, including centering the map, and combining the legend and check boxes for a better user experience and improved aesthetic.
The first iteration of the line chart was actually a bar chart, originally showing the number of crashes each month over the past 10 years, from 2015-2025.
I decided that a line chart would better represent the data as it contained time-series elements, which I was intending to illustrate. This was my second iteration.
The third iteration was one of my final visualizations, where I decided to add color channels in terms of seasons. I saw that the data contained some seasonality, with patterns in crash rates trending during the same time of year, each year.
In iteration four of the line graph, I implemented color channels and interactivity, by filtering the crashes by type of crash, with separate lines for each type,and check boxes to add or take away the lines for a given type of crash.
By the fifth iteration, I changed the line to be one trend line, but kept the interactive element with the check boxes to filter by type.
And in the 6th and final iteration, I made minor changes to improve the look of the check boxes by adding the full type labels.