A package for loading, preprocessing, vizualising and synchronizing soccere event aand tracking data.
Project description
databallpy
A package for loading, preprocessing, vizualising and synchronizing soccer event- and tracking data.
This package is developed to create a standardized way to analyse soccer matches using both event- and tracking data. Other packages, like kloppy and floodlight, already standardize the import of data sources. The current package goes a step further in combining different data streams from the same match. In this case, the Match
object combines information from the event and tracking data.
Changelog for version 0.3.0
- Added way to save Match objects, and to load saved Match objects
- Fixed bug in opta event data, own goals are now parsed as seperate event type
- Added parser for Inmotio tracking data
- Added parser for Instat event data
- Added quality checks for the data, raises warning if quality is not good enough
Planned changes
- Adding different filters to filter the tracking data
- Adding features to quantify pressure, ball possession, etc. (if you have any ideas/requests, please open an issue!)
- Standardizing events in the event data
- Adding expected passing and goals models
Installation
$ pip install databallpy
Usage
The package is centered around the Match
object. A Match
has tracking data, event data metadata about the match.
For a more elaborate example, see the example file
$ from databallpy import get_match, get_open_match
$
$ match = get_match(
$ tracking_data_loc="../data/tracking_data.dat",
$ tracking_metadata_loc="../data/tracking_metadata.xml",
$ tracking_data_provider="tracab"
$ event_data_loc="../data/event_data_f24.xml",
$ event_metadata_loc="../data/event_metadata_f7.xml",
$ event_data_provider="opta",
$ )
$
$ # or to load an open metrica dataset of tracking and event data
$ match = get_open_match()
$
$ match.home_team_name # the team name of the home playing team
$ match.away_players # pandas dataframe with the names, ids, shirt numbers and positions of the away team
$ match.tracking_data # pandas dataframe with tracking data of the match
$ match.event_data # pandas dataframe with event data of the match
See the documentation of the Match
object and the example usage for more options. Note that this package is developed to combine event and tracking data, for now both datastreams are necessary to create a Match
object.
Synchronization of tracking and event data
Tracking and event data is often poorly synchronized. For instance, when taking the event data of Opta and tracking data of Tracab, you can sync the fist frame with the kick-off pass. Now you can sync the other events with the tracking data based on the time difference between the event and the kick off pass. If you do this, how get something like this:
Your browser does not support the video tag.As you can see, the timing (and placing) of the events do not correspond good with the tracking data locations, especially when events follow up quickly or around shots. Using the methodology of this article, this package is able to synchronize tracking and event data using the Needleman-Wunsch algorithm.
After running the following command, the events are better synchronized to the tracking data:
$ match.synchronise_tracking_and_event_data()
Your browser does not support the video tag.
Documentation
The official documentation can be found here.
Providers
For now we limited providers. We are planning on adding more providers later on.
Event data providers:
- Opta
- Metrica
- Instat
Tracking data providers:
- Tracab
- Metrica
- Inmotio
Contributing
Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
Maintainers & owners
Contributors
License
databallpy
was created by Alexander Oonk & Daan Grob. It is licensed under the terms of the MIT license.
Similar projects
Although we think this package helps when starting to analyse soccer data, other packages may be better suited for your specific needs. Make sure to check out the following packages as well:
And for a more specific toturials on how to get started with soccer data"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for databallpy-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1aee5f571cbd39b200628fa8b7b9dd85da0de0ce5dbc8113286f897d9bc8bff |
|
MD5 | e2cd9de249b33f2a89920a897c277ccb |
|
BLAKE2b-256 | 52b3638deb0adeb9c931c5eed073296d7f10c3e2961f75fce73a2d76e166f151 |