[TBA Blog ] ZEBRA Data Analysis (2 of 3): Zones

ZEBRA Data Analysis (2 of 3): Zones
By Caleb Sykes

Happy new year everyone! This is the second blog post in a series on ZEBRA Dart Analysis. You can check out the first post here. This post will talk about splitting the field into useful “zones” and then grouping those zones logically. Doing this will provide us even more foundation for useful analysis in part 3.


One of the coolest visual representations of the capabilities of the ZEBRA Dart system comes in the form of heat maps. Here are some heatmaps from 2018, and below is a heatmap image from 2019:


Check out the rest of the article here: https://blog.thebluealliance.com/2020/01/01/zebra-data-analysis-2-of-3-zones/


For anyone keeping up with this, I’ve updated the data parser to v3. I added logging capability to make it easier to debug more advanced metrics. I also added the option to dump the output data to a csv file.

With that out of the way, I can now get to work on part 3. :slight_smile:


I got a question from @Matt_Boehm_329 about what heatmaps would look like if you just use my zones instead of the very granular heatmaps that are created using the raw data. Here is 254’s qual 1 heatmap using raw data:

This is very granular, and definitely the best for human viewing.

Next, I looked at each timestep, and for whatever zone they were in, I assigned their position to be the center of that zone. Here is that heatmap:

This is not particularly useful. All of the dots are the same size. You can tell a little bit based on the color, but it’s a very poor visual representation of the data.

The next thing I did was to spread around these data points a little within the zone instead of just centering them all exactly at the central point. Here is a picture showing a small amount of bleed:

This is much easier to interpret. I made the bleed proportional to the zone dimensions, so you can get a sense of the zone size based on the spread. You can see small, high density zones in areas like the middle left red cargo ship zone. You can also see large, low density zones, such as the depot.

Note that we are seeing bleed into the cargo ship and rocket. This is because of how I set up my zone definitions for those areas. As you can see in the below picture, my zone definitions clearly enter into the rocket and cargo ship.

Had I known we would be using zones for something like these heatmaps, I would have made the zones stop at the edges the field structures, but I didn’t think much of it at the time.

Here’s that same bleeding effect, but even more spread out from the central point of each zone:

I like this one better I think, there’s more area covered by dots so it looks a little more natural, just personal preference though.

Finally, here’s one where I just randomly pick a location within the current zone’s rectangular area to make a mark (note that this will cause the non-rectangular zones by the rocket to be a bit misrepresented, the above 2 images had this same issue to a lesser extent):

This really just looks like a blurrier version of the raw data, which is exactly what we would expect! You can still see that 254 spent a lot of time at the loading station and adjacent zone, on the near two rocket scoring locations, the middle left side cargo ship location, and the left middle L1 platform. They spent most of the rest of their time just driving between those locations.

I’m not really planning to officially add this functionality into my data parser. The raw data definitely makes the clearest, most useful heatmaps. But these are still interesting to help us mentally visualize what the “zones” actually mean.

1 Like

Thanks but I think I did a bad job in describing my request. I was looking for something more like the example below:

Where color intensity is a gradient for the amount of time spent in the zone in relation to the max amount of time spent in a single zone. The idea would be to try and break down the gradient in a way so there is never more than 1 box or zone that is maxed (unless the values are exactly the same)

Zone 1 = 5%
Zone 2 = 4%
Zone 3 = 2%
Zone 4 = 5.5%
Zone 11 = 2%
Zone 12 = 4%
all other zones <.5%

Would result in something looking more like:

I know that is WAY easier to do in paint for a small section of a hypothetical field though

Yeah, I think that’s out of scope for me. All the data is there if someone wants to build a tool that does this. I just don’t know off-hand an easy way to interface excel with a viewing tool, and I’d rather focus on other things at the moment. One cautionary note when doing that kind of viewing is that not all zones are the same size. So a team may spend the same time in a small zone and a large zone giving those zones the same coloring, but their location density will actually be much higher in the smaller zone. You could account for size in the coloring, and if you do that the zone colors will roughly look like the last heatmap graph I shared above, just with solid colors instead of dots so it’ll be cleaner.

1 Like

I’ll poke around some. Thanks for all the investigation and work you have done so far

Thanks :). If anyone does build something with excel I would be happy to look into integrating it with my data parser.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.