Coast 2 Coast MI Gravel Grinder Racers, Comprehensive interactive course/route map

First, I’m not affiliated in any way with the Michigan Coast2Coast Gravel Grinder. However, I’m doing the 204-mile gravel race and happen to have gained an absurd amount of experience with map-related and AI technologies, as well as full-stack coding from developing (a fun, free cycling route creation site). I decided to spend a couple of days on a project to help me understand the course and conditions as best as I can, and I thought I might as well share it!

So, check this out: Coast to Coast Info . Simply choose the mph average speed you assume you may average for the whole course (options are 14, 17, 20), and you get the latest weather data every 5 miles, assuming where you will be when! (I’m using Open Weather API’s 1-call hourly API).

Additionally, I grabbed satellite imagery for the entire course and created a quick Python program to generate masks of areas that cause low UV/sun exposure, such as foliage and buildings, from the test satellite imagery. I then used some key areas to train a DeepLabV3 segmentation AI with a ResNet101 backbone to mimic how I was masking them. Here’s an example:

On the left are some of the test satellite tiles. In the middle is a mask I created where I carefully masked trees, buildings, and other features that could block wind or UV. The far right shows what the AI could do after training!

I ran this for the whole course and turned it into a cool green overlay, showcasing it with a line indicating the route. Blue represents less exposed areas (cooler, not as windy), and red indicates more exposed areas.

I also know road surface types from my cycling/route creation site and have augmented the dataset from OpenStreetMap to include AI classified roads as well, so I have a nice surfaces layer:

I added all the aid stations, mile markers, etc., with hover-overs for additional details. In the bottom right, there’s an option to see average weather stats.

For more detailed weather information, I’m trying to make it as accurate as possible. I can get a 48-hour hourly forecast from Open Weather and daily forecasts. Currently, I mix the two: when I run out of hourly data, I extrapolate from the daily forecast. By tomorrow, it should all be hourly.

So, there you have it. I added a quick download option for the course. I may add some nice graphs like exposure per mile, elevation per mile, estimated water loss per mile, surface type per mile, etc.

I also might get fancy and make a shadow map based on where you’re likely to be, where the sun is in the sky, and where the exposure blockers (green areas) are in relation to the road.

I threw this together for myself and my team, but I thought, hey, why not make it publicly available? I may do this for future races too, or even ones that have enough requests or are famous enough.

Let me know if you have any thoughts or good ideas that I should add to it.

1 Like