Python Reveals Tunnel Traffic Patterns in Colorado
Introduction
Driving on the I-70 corridor in Colorado between Denver and Vail can be a gamble not just for visitors but even for local. The traffic is unpredictable due to road work, severe weather, car accidents, and the occasional closure due to a rock slide or avalanche. Google maps can be helpful but is anecdotally unreliable in the area.
About midway through the drive you go through the Eisenhower Tunnel on the top of Loveland Pass. According to the Vail Daily the completion of the tunnel in 1979 reduced the travel time from Denver to Vail to under two hours. The tunnel is an integral component to the route to three of the major ski resorts in Colorado, Vail, Breckenridge, and Beaver Creek. The tunnel is also used to get from Denver to many of the national and state parks in Western Colorado and Utah, so it provides an accurate indicator of recreation traffic in both the winter and summer.
Question
This project looks at how traffic through the tunnel varies directionally, seasonally, daily, and hourly. Determining these trends can help drivers make informed decisions about when to drive in order to lower the probability of hitting traffic. The insight is also applied to identify the ideal times to add public transportation between Denver and Vail. Taking into consideration longer term trends, II looked into the change in traffic during and after the Covid-19 pandemic to see if it had a significant impact on traffic.
Data
The data includes six csv files of continuous hourly traffic counts at the Eisenhower Tunnel from January, 2018 to September, 2023 from the Colorado Department of Transportation. Each csv file included a date, direction, and a traffic count for each hour (24 columns). The raw data is shown below.
To process this data I started by concatenating the six csv files into a pandas dataframe. I then converted the date to a pandas datatime and used this to add a weekday, month, and year column. From this starting point, I created several new dataframes to answer the questions I was interested in. Because all of the hour columns were values not variable names, I had to stack the values on top of each one and then repeat dates as necessary. For example, instead of having 24 hour columns, I had 1 column for the hour,1 for the count eastbound, and 1 for the count westbound. My code can be found on my GitHub.
Analysis
Overall Trends
I first looked at all the data from the hours 12 am, 6 am, 10 am, 4 pm, and 8 pm. The visual below shows the yearly variation in traffic at the tunnel from 2018 to September of 2023. The steep drop in traffic during the Covid-19 pandemic in 2020 is also illustrated.
If we take a closer look at this data broken down by month, weekday, and hour we can see that the ski season (December, January, February, and March) and the summer (June, July, August, and September) are very busy, while what is called the shoulder season (April, May, October and November) is not as busy.
There is higher volume going west on Thursdays, Fridays, and Saturdays, particularly in the morning. We also see high volume going east on Sundays and Mondays, particularly in the afternoon.
A Closer Look at Daily and Seasonal Trends
To look more closely at the daily trends during each season I made a dataframe that shows the mean hourly traffic for each weekday during each season going both eastbound and westbound. The seasons I used were ski season, summer, and shoulder season, as discussed above.
Going westbound, we can see high traffic volume in the morning during ski season on Fridays and Saturdays and high volume on Friday afternoons in both ski season and the summer.
The two images below highlight the differences in the westbound morning traffic during ski season and the summer. More people are on the roads early during ski season, motivated to get there early to get a full day of skiing in and get a parking place.
Going eastbound, we see high volume Saturday and Sunday afternoons and extremely high volume during ski season and the summer on Sunday mornings from 9 am to 12 pm.
The image below highlights the peak in travelers on Sunday morning (a similar trend is seen in the winter). This peak is likely due to tourists driving to the airport to return home. Denver is the only major airport in the area, and almost all recreation destinations are west of Denver.
Covid-19
I was interested to see how much of an impact the Covid-19 pandemic had on traffic and if traffic has increased pre-Covid to post-Covid. The dataframe I used for this analysis included the average hourly traffic count for each hour of each weekday from February to April of 2018, 2020, and 2023. The visual below shows the decrease in the median amount of hourly traffic by almost 50%. Additionally the traffic in February to April of 2020 was much more predictable. There is no observable difference in pre and post-pandemic traffic; the median only increased by about 2.5%.
Statistically there is a difference among the pre, during, and post-pandemic groups. A one-way anova comparing all three groups gives a p-value of 1.2e-20. The t-tests comparing the pre and post-pandemic group to the pandemic group have p-values of 2.2e-16 and 5.2e-19, respectively. However there is not a statistically significant difference between the pre and post-pandemic group where the t-test has a p-value of 0.3933.
Conclusions and Driving Tips
There is no statistical difference in westbound winter traffic pre and post-pandemic, but a very clear difference during Covid. However, there are clear patterns of traffic at specific times and on particular days that vary somewhat during the season. For example, when driving eastbound, the huge spike in Sunday morning traffic (particularly in the summer) is likely due to visitors who have flown in for the weekend on their way to the airport
When driving westbound, try to avoid leaving Denver between 2 pm and 6 pm on Fridays. Even during shoulder season there is likely to be traffic. If you are going skiing on the weekend, try to leave Denver by 5 am on Saturdays and Sundays. If you need to be on the road between 10 am and 2 pm, make sure you leave with plenty of extra time to be at the airport. Also, expect heavy eastbound traffic between 2 pm and 6 pm on Saturdays and Sundays.
Future Work
It would be interesting to analyze other continuous traffic stations in the area to see if the patterns correlate with those at the Eisenhower Tunnel. Winter Park, CO (another ski area northwest of Denver) has introduced a computer train from Denver, and it would be interesting if traffic patterns in the area would differ from those at the tunnel.
The main work here falls in how to decrease commuter traffic on CO I-70 between Denver and Vail. In an article in the Colorado Newsline Christof Stork states, โThe key is that people will use public transportation if it is fast, comfortable and has a reliable schedule. Modern commuter rail has these properties while buses do not, and during bad weather, rail is often reliable while roads are not.โ Currently, there is no good public transportation option, and there are no existing train tracks for that route. Research is needed to investigate how many buses would be needed to make a difference, and more importantly, how to motivate people to use them.