My research is currently centred around understanding the role of consistent behavioural differences in the collective movements and functioning of animal groups. In particular, I assay large numbers of stickleback fish on various personality traits and expose them in groups to different ecological scenario’s. I have written custom tracking software in Python using the OpenCV library to be able to accurately track the position of individual fish in the freely-moving schools.
Today I wanted to share a simple visual that highlights the detailed individual-based tracking of a small fish school over time. Each fish is represented by a different colour, with the arrow showing its vectorized movement, with larger arrows indicating a higher speed. The video is centred around the vector of the group as a whole to better visualize the structure of the group over time. Lines indicate the smallest polygon encompassing all individuals and Individual Centre Distances. The moving axes indicate the relative speed of the group in a large circular arena.
In this short section of a 30-min long experimental trial it is clear that the group speed, cohesion, and structure fluctuate over time. At the same time, individuals also maintain to some extent their positions relative to the group centre, such as the green and yellow individual clearly having a stronger pulling power on the movements of the group as a whole.
I used RaspberryPi computers to film the fish, custom Python tracking scripts to acquire individual X,Y coordinates for each individual in the group, R to process the tracking data and acquire movement characteristics, and R with ffmpeg to create the visual.