Category: Safety

Playing around with Chicago data: who’s running red lights?

Range Rover with Illinois license plate "0"

A Range Rover with Illinois license plate “0” is seen moving 40 MPH in a 30 MPH zone through a red light at Ashland and Cortland.

I’m just seeing who’s driving around Chicago one night, using the Tribune-published dataset of over 4.1 million tickets issued from red light cameras.

The City of Chicago has installed at least 340 red light cameras since the mid-2000s to reduce the number of people running red lights and crashing. They’re supposed to be installed at intersections where there’s a higher-than-average rate of right angle (“T-bone”) crashes, which are more injurious than other typical intersection crash types.

Assessing safety wasn’t the Tribune’s story angle, though. It was about showing spikes in the number of tickets issued, which I verified to some extent. The article called the tickets issued during these spikes “undeserved” and “unfair”. The data doesn’t have enough information to say whether or not that is the case; a video or extensive photo review is necessary to rule out rolling right turns while the light was red (a much less dangerous maneuver unless people are trying to cross the street).

The first query I ran assessed the number of people who get more than one ticket from a red light camera. Since I was tired my query was a little sloppy and it missed a lot of more useful order choices and didn’t select the right fields. I fell asleep and started again in the morning. This time, I got it right in just two tries – I needed to try again because I mistakenly put HAVING before the GROUP BY clause.

Here’s the first query, in its final form, to retrieve the number of tickets for each license plate in each state (I assumed there may be identical license plates among states).

select max(ticket_number), max(timestamp), license_plate, state, count(*) AS count FROM rlc_tickets group by license_plate, state HAVING count(*) > 1 order by count DESC NULLS LAST

It resulted in 851,538 rows, with each row representing a unique license plate-state combination and the number of red light violations that combination received. You can reasonably assert that cars don’t change license plates more than a couple times in a single person’s ownership, meaning you can also assert that each row represents one automobile.

851,538 vehicles, which make up 35.1% of all violators, have received 2,601,608, or 62.3%, of the 4,174,770 tickets. (There are 2,424,700 license plate-state combinations, using the query below.)

select count(ticket_number) from rlc_tickets group by license_plate, state

Here’re the top 10 vehicles that have received the most violations:

  1. SCHLARS, IL, 78
  2. 9720428, IL, 59
  3. 8919589, IL, 57
  4. A633520, IL, 52
  5. 3252TX, IL, 45
  6. A209445, IL, 44
  7. N339079, IL, 44
  8. X870991, IL, 41
  9. 239099, IL, 41
  10. 4552985, IL, 40

The next step would be to design a chart to show these vehicles’ activity over the months – did the vehicles’ drivers’ behavior change, decreasing the number of red light violations they received? Did the vehicle owner, perhaps a parent, tell their child to stop running red lights? Or has the vehicle owner appealed erroneously-issued tickets?

When I ran one of the first, mistaken, queries, I got results that put license plate “0” at the top of the list, with only nine tickets (license plates with two or more zeros were listed next).

I googled “license plate 0” and found a 2009 Tribune article which interviewed the Range Rover-driving owner of license plate “0” and the problems he encountered because of it. The City of Chicago parking meter enforcement staff were testing new equipment and used “0” as a test license plate not knowing such that license plate exists. Tom Feddor received real tickets, though.

I then looked up on PhotoNotice the license plate and ticket violation number to find, indeed, the license plate belonged to someone driving a Range Rover at Ashland Avenue and Cortland Street on July 17, 2008. An added bonus was Feddor’s speed in that Range Rover: the camera recorded the car going 40 MPH in a 30 MPH zone.

I was done browsing around for the biggest offenders so next I wondered how many tickets were issued to vehicles licensed in Arizona, where U-Haul registers all of its nationwide vehicles. Arizona plates came in 29th place for the greatest number of tickets.

select count(*) AS count, state from rlc_tickets group by state order by count DESC NULLS LAST

As you may have expected, four surrounding Midwest states, and Ohio, rounded up the top five states after Illinois – but this isn’t notable because most visitors come from there and they each only comprise less than 1.3% of the total tickets. The next state was Florida.

  • 3,986,739, IL
  • 51,104, WI
  • 40,737, MI
  • 27,539, IN
  • 8,550, OH
  • 7,684, MN
  • 7,139, FL

What’s next: I’m working on finding a correlation between the number of reported crashes, and type, at intersections with red light cameras and the number of tickets they issued. I started doing that before running the numbers behind this blog post but it got complicated and it takes a long time to geospatially compare over 500,000 crash reports with over 4.1 million red light tickets.

What else do you want to know?

I will delete all comments that don’t discuss the content of this post, including comments that call red light cameras, or this program, a “money grab”.

Red light camera ticket data insufficient to find cause for spikes

Spike in tickets issued at 119th/Halsted in May and June 2011. Nodes represent tickets grouped by week.

Spike in tickets issued at 119th/Halsted in May and June 2011. Nodes represent tickets grouped by week.

The Chicago Tribune published a dataset of over 4 million tickets issued to motorists for entering an intersection after the light had turned red. They analyzed the dataset and found unexplained spikes, where the number of tickets, being issued by the handfuls each day, suddenly tripled. (Download the dataset.)

I looked at the tickets issued by two of the 340 cameras. I didn’t find any spikes at Belmont/Sheridan (“400 W BELMONT”) but found a noticeable spike in May and June 2011 at the 119th Street and Halsted Street intersection (“11900 S HALSTED”).

I looked at three violations on one of the days that had an atypical number of tickets issued, May 12, 2011. Each motorist was ticketed, it appears, for turning right on red. It’s not possible, though, without watching the video, to see if the motorist rolled through the turn or indeed stopped before turning right.

The Tribune called tickets issued during these “spikes” “undeserved” but that’s hard to say without see the violations on video. The photos don’t provide enough evidence. The Tribune also reported that appeals during these spike periods were more likely to be overturned than in the period outside the spikes. The reporters discussed the possibility of malfunctions and malicious behavior, calling that an “intervention”.

The Chicago Department of Transportation, which oversees the program formerly operated by Redflex and now operated by Xerox, couldn’t refute either allegation, possibly with “service records, maintenance reports, email traffic, memos or anything else”. David Kidwell and Alex Richards report:

City transportation officials said neither the city nor Redflex made any changes to how violations were enforced. They acknowledged oversight failures and said the explosions of tickets should have been detected and resolved as they occurred. But they said that doesn’t mean the drivers weren’t breaking the law, and they defended the red light camera program overall as a safety success story. The program has generated nearly $500 million in revenue since it began in 2003.

The city was unaware of the spikes until given the evidence by the Tribune in January, said David Zavattero, a deputy director for the Chicago Department of Transportation. In the six months since, city officials have not provided any explanations.

“Trust me when I tell you that we want to know what caused these spikes you have identified as much as you do,” Zavattero said. “So far we can find no smoking gun.”

He acknowledged that faulty camera equipment likely played a role.

“I would say that is likely in some of these cases,” Zavattero said. “I cannot tell you that isn’t possible. It is possible. The old equipment was much more prone to break down than the equipment we are currently installing.”

You can download the data but you will likely produce the same results as the Tribune, but maybe a different conclusion. Their analysis has led people at all levels of the civic sphere to call for an investigation, including citizens, some of whom have filed a lawsuit, Alderman Waguespack and 19 other aldermen, and CDOT commissioner – who operates the red light camera program – Rebekah Scheinfeld.

I think they sufficiently identified a suspicious pattern. By the end of the long story, though, the Tribune didn’t prove its hypothesis that the tickets were “undeserved” or “unfair”.

In violation number 7003374335 you can see the driver of a Hyundai Santa Fe turning right at a red light. The Google Street View for this intersection shows that there is no RTOR restriction, meaning the driver is legally allowed to make a right turn here with a red light after coming to a complete stop and yielding to people in the crosswalk. But we can’t see if they stopped first. The next two violations that day at the same intersection I looked showed the same situation. (Find the violation by going to PhotoNotice and inputting 7003374335, NWD648, and CHI.)

I look forward to the investigation. The Tribune made a great start by analyzing the data and spurring the call for an investigation and it seems there’s not enough information in this dataset to explain why there are more tickets being issued.

One dataset that could help provide context – because these spikes, at least the ones that are sustained, don’t seem random – is knowing the number of vehicles passing through that intersection. The speed camera data has this information and allows one to show how different weekend traffic is from weekday traffic.

The "before" image showing the Santa Fe vehicle approaching the stop bar.

The “before” image showing the Santa Fe vehicle approaching the stop bar.

Violation photo 2

After: The Santa Fe vehicle is seen in a right turn.

Note: The Tribune identified 380 cameras but running a DISTINCT() query on the “camera name” field results in 340 values. Some cameras may have identical names because they’re at the same intersection, but you can’t discern that distinction from the dataset.

Going to worship at The Beer Temple takes too long

Minor suggestion to improve Elston-California-Belmont

A map of Belmont, Elston, California with lines and labels that show how I get to The Beer Temple and where I think the city should add car parking.

The Beer Temple opened two blocks from my house in Avondale last year, at 3185 N Elston Ave, on the six-way intersection of Belmont Avenue, Elston Avenue, and California Avenue. This intersection is beastly.

And it’s timed wrong. Since I live southwest of the great craft and imported beer store and it’s on the northwest corner of Elston (a diagonal street) and California, I have to cross twice. I make the first crossing, east-west across California at my street, and then walk north to the second crossing, north-south across Elston.

I cross at my street across California because there’s no light to wait for, and the crossing isn’t diagonal like my other option at Elston (which would mean I walk north, then diagonally south and east). Once I get to Elston, though, I’m screwed because the walk signal is about 15 seconds long but the wait for the next walk signal is about 90 seconds long.

It’s so long because the green for Elston is held for Elston traffic, but also held green for eastbound Belmont traffic that makes a right turn onto southeast-bound Elston. Instead of the walk signal being green for two phases of the cycle (for two of the three streets), it’s green for only one cycle: California’s.

This is because this six-way intersection is the less common type, the type with an island in the middle. It’s got the island because the three streets cross each other at different points and don’t share a common cross point. I’ve got to wait for two phases because Elston needs to stay green for Belmont traffic because you can’t have drivers waiting in the island area – too many cars may stack up and block cross traffic during another phase.

(At many intersections I would just cross whenever there’s a gap between fast-moving cars, but with six-way intersections you don’t always know from where a car will be speeding towards you.)

I get that, but that makes it suck for walking in this area. This design also makes it suck for people biking and driving to turn left from certain streets to other streets because they can’t make the left turn and keep on going. They make the left turn and then have to stop and wait for a second phase to keep going.

I’ve racked my mind for ideas on how to improve this intersection just mildly, in such a way that few would oppose (because that’s really the threshold you can’t cross to have a nice outcome in Chicago).

My idea? Add car parking in front of Dragon Lady Lounge in the “non-identified lane” there. It’s used as a travel lane, or a right-turn lane, depending on who’s driving and how they choose to maneuver their vehicle. It’s not needed for either because of the way traffic moves southbound on Elston past Dragon Lady Lounge and that Elston only has one travel lane in each direction on either side of this big intersection.

The parking would have the obvious benefit of putting customers closer to their destination, but would have the less obvious benefits of protecting people on the sidewalk, buffering noise and speeding vehicles from sidewalk users, and slow traffic past Dragon Lady Lounge when people are parking.

Why are children getting hurt in the street because of “looming”?

Adults are better than children at detecting the speed of a car that’s traveling faster than 20 miles per hour and are more likely to avoid crossing, thus not getting hit. 

Director of New York City-based Transportation Alternatives Paul Steely-White asked on Twitter for a plain English translation of this three-year old journal article about vehicle speeds and something called “looming”.

The article is called “Reduced Sensitivity to Visual Looming Inflates the Risk Posed by Speeding Vehicles When Children Try to Cross the Road”.

Skip to the end if you want the plain English translation, but I’ve posted the abstract below followed by excerpts from Tom Vanderbilt’s Traffic.

ABSTRACT: Almost all locomotor animals respond to visual looming or to discrete changes in optical size. The need to detect and process looming remains critically important for humans in everyday life. Road traffic statistics confirm that children up to 15 years old are overrepresented in pedestrian casualties. We demonstrate that, for a given pedestrian crossing time, vehicles traveling faster loom less than slower vehicles, which creates a dangerous illusion in which faster vehicles may be perceived as not approaching. Our results from perceptual tests of looming thresholds show strong developmental trends in sensitivity, such that children may not be able to detect vehicles approaching at speeds in excess of 20 mph. This creates a risk of injudicious road crossing in urban settings when traffic speeds are higher than 20 mph. The risk is exacerbated because vehicles moving faster than this speed are more likely to result in pedestrian fatalities.

The full text is free to download, but I think Steely-White needs to learn more now, so I pulled out my favorite book about driving, Tom Vanderbilt’s “Traffic”.

Page 95-97:

For humans, however, distance, like speed, is something we often judge rather imperfectly. Unfortunately for us, driving is really all about distance and speed. Consider a common and hazards maneuver in driving: overtaking a car on a two-lane road another approaches in the oncoming lane. When objects like cars are within twenty or thirty feet, we’re good at estimating how far away they are, thanks to our binocular vision (and the brain’s ability to construct a single 3D image from the differing 2D views each eye provides). Beyond that distance, both eyes are seeing the same view in parallel, and so things get a bit hazy. The farther out we go, the worse it gets: For a car that is twenty feet away, we might be accurate to within a few feet, but when it is three hundred yards away [900 feet], we might be off by a hundred yards [300 feet]. Considering that it takes about 279 feet for a car traveling at 55 miles per hour to stop (assuming an ideal average reaction time of 1.5 seconds), you can appreciate the problem of overestimating how far away an approaching car is – especially when they’re approaching you at 55 miles per hour.

[Here comes the keyword used in the journal article, “looming”]

Since we cannot tell exactly how far away the approaching car might be we guess using spatial cues, like its position relative to a roadside building or the car in front of us. We can also use the size of the oncoming car itself as a guide. We know it is approaching because its size is expanding or looming on our retina.

But there are problems with this. The first is that viewing objects straight on, as with the approaching car, does not provide us with a lot of information.

[…]

If all this is not enough to worry about there’s also the problem of the oncoming cars speed. A car in the distance approaching 20 miles per hour makes passing easy, but what if it is doing 80 miles per hour? The problem is this: We cannot really tell the difference. Until, that is, the car gets much closer — by which time it might be too late to act on the information.

[the topic continues]

Plain English translation

However, nothing I found in Traffic relates children and “looming”. The bottom line is that children are worse than adults at detecting the speed of a car coming in the cross direction and thus decide wrongly on when to cross the street.

Update: Based on Vanderbilt’s writing, it seems that humans cannot really be taught how to compensate for looming, to build a better perceptual model in the brain to detect the difference between cars traveling 20 and 80 MPH. If this is true, and I’d like to see research of pedestrian marketing and education programs designed for children, it may be that we should stop trying this approach.

Chicago Crash Browser, miraculously, has 2012 bicycle and pedestrian crash data

Screenshot shows that you can choose your own search radius. When researching, be sure to copy the permalink so you can revisit your results. 

I’ve upgraded the Chicago Crash Browser, my web application that gives you some basic crash and injury statitics for bicyclist and pedestrian crashes anywhere in Chicago, to include 2012 data. It took the Illinois Department of Transportation eight months to compile the data and it took me four months to finally get around to uploading it into my database. While I spent that time, I made some improvements to the usability of the app and output more information. Since the last major changes I made (back in February 2013) I’ve gained two code contributors (Richard and Robert) making this my first communal project on GitHub.

I know that it’s been used as part of research in the 46th Ward participatory budgeting process for 2013, and by residents in the 26th Ward to show Alderman Maldonado the problem intersections in the Humboldt Park area. Transitized recently included pedestrian crash stats obtained from the Crash Browser in a blog post about pedestrianizing Michigan Avenue in Streeterville.

The first change I made was adding another zoom level, number 19, so you can get closer to the data. I made some changes to count how many people were injured and total them. You can now choose your search distance in multiples of 50 feet between 50 and 200, inclusive. As is typical, I get sidetracked when I notice errors on the map. Thankfully I just fire up JOSM and correct them so the next person that looks at the map sees the correction. Future changes I want to make include upgrading to the latest jQuery, LeafletJS, and Leaflet plugins. I’d also like to migrate to Bootstrap to improve styling and add responsive design so it works better on small screens.

Sign up for the newsletter where I’ll send a couple emails each year describing new changes (I’ve so far only published one newsletter).