
3 minute read
Ice to Meet You 2022
Text: Tim Hut
For the Harambee equivalent of the Ideaal!, I was tasked to collect statistics of a certain volleyball match, my goal was to alongside the usual ranking of the players who made the most points, mistakes, and an overview in a bar plot who did what how often, I also wanted to make a diagram (in the form of a digraph) which shows who play to whom. Based on a story of one of my current coaches also former teammate and to make my life a bit easier, I encoded the match such that a script I wrote in Python could make the appropriate figures with as less effort possible.
Advertisement
First, I am going to define how I encoded it in a bit more mathematically. For a match M let str_M denote a string in the following from:
Where for the kth action:
• Pk denotes the shirt number of the player performing the action, Pk is in a high enough base such that it is only a single digit. In the Python script I assume base 64 as not often the shirt number is above 20. If it is unclear which player performs this action, the player is denoted as #.
• Ak denotes what action is performed and is chosen from the following list:
• Hk denotes how well the action is performed and is chosen from the following list:
• Furthermore, I summarize the actions combined of the opposing team as ‘0##’ , '0#0' or '0#1' instead per player, as I am only interested in who plays towards to opposing team and if a point was scored by them.
From this one could see that I make the underlying assumption that an action is not bad if the ball is kept in play, which is in real life not always the case as someone can give a very bad pass, but the next player makes a good save that keeps it in play. Currently it is also based solely on manual input and is prone to human error, a real-life example would be at some point I kept inconsistently mixing up the numbers for lower hand and upper hand ball. Finally, to who is attributed the point is sometimes in a gray area. For instance, consider the following scenario:
In this scenario I attribute the point to player with number 12 and write 'C51' instead of 'C5#0#1', had the opponent directed it inward to the field I would have denoted it as the latter. However, if the attacking player was from the opposing team (and player 12 would try to pass it) I would always write '0##C20'
I am not the first person who is writing this article and previously they just tallied everything on paper. At the moment encoding the match does not make it more efficient as it outputs the same kind of table as one would have by doing it by hand with the same speed, as I currently have Python not set up to also make the figures (and I won’t in the future because the figures Python creates are kinda ugly). The only benefit it has is it also preserves the chronology of actions, but that is something that is currently not needed.