Skip to content

Commit c7bed74

Browse files
author
UnravelSports [JB]
committed
unique
1 parent aa6dc0a commit c7bed74

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

README.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ This package currently supports:
1818
- ⚽ 🏈 [**Polars DataFrame Conversion**](#polars-dataframes)
1919
- ⚽ 🏈 [**Graph Neural Network**](#graph-neural-networks) Training, Graph Conversion and Prediction <small>
2020
[[🔗 Bekkers & Sahasrabudhe (2023)](https://arxiv.org/pdf/2411.17450)]</small>
21-
-[**Pressing Intensity**](#pressing-intensity)
21+
-[**Pressing Intensity**](#⚽-pressing-intensity)
2222
<small>[[🔗 Bekkers (2024)](https://arxiv.org/pdf/2501.04712)]</small>
23-
-[**Formation and Position Identification (EFPI)**](#pressing-intensity)
23+
-[**Formation and Position Identification (EFPI)**](#⚽-formation-and-position-identification)
2424
<small>[[🔗 Bekkers (2025)](https://arxiv.org/pdf/2506.23843)]</small>
2525

2626
🌀 Features
@@ -87,7 +87,7 @@ converter = SoccerGraphConverter(
8787

8888
---
8989

90-
### **Pressing Intensity**
90+
### **Pressing Intensity**
9191

9292
Compute [**Pressing Intensity**](https://arxiv.org/abs/2501.04712) for a whole game (or segment) of Soccer tracking data.
9393

@@ -116,7 +116,7 @@ model.fit(
116116

117117
---
118118

119-
### **Formation and Position Identification**
119+
### **Formation and Position Identification**
120120

121121
Compute [Elastic Formation and Position Identification, **EFPI**](https://arxiv.org/pdf/2506.23843) for individual frames, possessions, periods or specific time intervals for Soccer.
122122

@@ -137,6 +137,8 @@ model.fit(
137137
)
138138
```
139139

140+
![Elastic Formation and Position Identification Example](assets/efpi.png)
141+
140142
***More to come soon...!***
141143

142144
🌀 Quick Start
@@ -234,6 +236,20 @@ If you use this repository for any educational purposes, research, project etc.,
234236
</details>
235237
<br>
236238

239+
📎 [Bekkers, J. (2025). EFPI: Elastic Formation and Position Identification in Football (Soccer) using Template Matching and Linear Assignment. arXiv preprint arXiv:2506.23843.](https://arxiv.org/pdf/2506.23843)
240+
<details>
241+
<summary>BibTex</summary>
242+
<pre>
243+
@article{bekkers2025efpi,
244+
title={EFPI: Elastic Formation and Position Identification in Football (Soccer) using Template Matching and Linear Assignment},
245+
author={Bekkers, Joris},
246+
journal={arXiv preprint arXiv:2506.23843},
247+
year={2025}
248+
}
249+
</pre>
250+
</details>
251+
<br>
252+
237253
🌀 Social Media
238254
----
239255
[<img alt="alt_text" width="40px" src="https://upload.wikimedia.org/wikipedia/commons/c/ca/LinkedIn_logo_initials.png"/>](https://www.linkedin.com/in/joris-bekkers-33138288/)

unravel/soccer/dataset/kloppy_polars.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,9 @@ def load(
716716
if self._infer_goalkeepers:
717717
df = self.__infer_goalkeepers(df)
718718

719-
self.data = df
719+
self.data = df.unique(
720+
[Column.OBJECT_ID, Column.FRAME_ID, Column.PERIOD_ID]
721+
).sort([Column.FRAME_ID, Column.PERIOD_ID, Column.OBJECT_ID])
720722
return self
721723

722724
def add_dummy_labels(

0 commit comments

Comments
 (0)