The study of traffic has always been a fascinating problem to me. The reason for this is because it is so hard, yet so solvable. The task of minimizing traffic in, say, New York City is a seemingly impossible problem, but there is no reason that it should be impossible. There is no information which could not be gathered, nothing which could not be controlled or altered, and no reason that we could not create a functional model for it, apart from the fact that it is just so extremely complicated. To me, this makes for a fascinating problem, so I was very excited to find a data set consisting of GPS information for 25000 trips made by a private car service in San Francisco.
(For a fascinating look at all aspects of traffic, check out Tom Vanderbilt’s book Traffic.)
The programming process for this exercise was largely straightforward, although not without some hiccups. My sketch pulls the trip number, date/time, longitude, and latitude from the file, and proceeds to draw each trip one at a time. Each trip is drawn in a constant color, although the colors of different trips change. How they change is dependent on what variables are set. If the randomcolors variable is set to false (as it is by default), the color of the trip corresponds to the time of day the trip was made. Trips made at night are purple, trips made during the day are yellow, and everything in between is somewhere in between.
There are many different options which can be set to filter out only certain trips. There is an option to include or not include trips made on each day of the week, as well as an option for starttime and endtime, allowing the user to select which hours of the day he wishes to include. There is also an option to fade older routes as new ones are drawn, as well as a variable for how quickly these routes fade. These options, while aesthetically pleasing, are not without their drawbacks.
The hardest part of this exercise was balancing form with function. Often, making the sketch more aesthetically pleasing meant sacrificing or obscuring meaningful information. For example, consider the fade option. Having the option enabled produces visually appealing, ever-changing images, but it comes at the cost of conveying information, since we will never get a “big picture” aggregation of all of the information. There is a similar problem with the randomcolors option. As can be seen in the pictures, the images produced with random colors can be quite spectacular, but they convey less information than the images where the paths are colored based on time of day.
This dichotomy is what compelled me to include all of the options mentioned above. As long as the most aesthetic models were visible along with the most functional models, it was not as much of a problem that they could not be displayed simultaneously. Overall, I am pleased with the results of my sketch, both in terms of form and function. Although it was expected, I am nevertheless pleased with how apparent the layout of the city is – it matches up perfectly to satellite images of San Francisco, turn for turn and street for street. I also enjoy the information conveyed by the image when it is colored according to time of day . It is readily apparent which areas of the city are more heavily traveled at night (the purpler ones), and indeed, they match up very well with the areas suggested when one googles “San Francisco nightlife”.
In all, I am glad I chose the project I did. I enjoyed working with data – particularly from a field I find so interesting – and I enjoyed the challenge of trying to make the data meaningful yet artistic. It was certainly a learning experience, but I feel much better prepared to tackle a challenge like this again.
The code for this exercise can be found here: Gleeman_Ex3