Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discrepancy between successful passes in the SPADL and atomic-SPADL representations #214

Open
BWyckaert opened this issue Mar 2, 2022 · 2 comments

Comments

@BWyckaert
Copy link
Contributor

While converting Wyscout events to SPADL actions most duels are removed as they are not considered on the ball actions, however in doing so some information is lost. Wyscout considers a pass which is followed by a duel as accurate (translated to SPADL as a successful action) even if the duel is lost by the teammate of the player who gave the pass. This causes successful passes to be followed by an action of the opposing team. It would make more sense (in my opinion) to mark the pass as failed and follow it up by an interception of the opposing player.

@probberechts
Copy link
Member

A pass is successful if it reaches a teammate. This is of course a nebulous concept. There is a thin line between intercepting the ball and recovering the ball immediately after it was received. However, I think the data annotator is best placed to judge that and I would not override it on our side.

On the other hand, I think it would make sense to add duels to SPADL as they are meaningful defensive actions. We already do so for ground duels (which should be converted to tackles if the implementation of the Wyscout converter is correct). Therefore, I assume you are referring to aerial duels for which SPADL does not have a corresponding action. It's not an interception (preventing an opponent's pass from reaching their teammates).

I don't know what the motivation was to ignore these aerial duels. Do you remember @TomDecroos?

@BWyckaert
Copy link
Contributor Author

Ok, it seems like I didn't understand the code correctly. A pass is marked with success if the corresponding Wyscout event is tagged as accurate. The reason I opened this issue is because there a discrepancy between successful passes in the default SPADL versus 'successful' passes in atomic SPADL. I defined a successful pass in atomic SPADL as a pass which is followed by a receival by a teammate. When converting to atomic, after every pass a new action is added which is either receival, interception, out and offside:

def _extra_from_passes(actions: pd.DataFrame) -> pd.DataFrame:

Determining the type of the next action is done as follows:

extra['type_id'] = (
extra.type_id.mask(same_team, ar.index('receival'))
.mask(~same_team, ar.index('interception'))
.mask(out, ar.index('out'))
.mask(offside, ar.index('offside'))

This means that successful actions as determined by Wyscout annotators will become 'unsuccessful' when converting to atomic if the consecutive action is executed by someone of the opposing team, but I don't know if there is anything to be done about this.

@probberechts probberechts changed the title Successful pass followed by action of opposing team Discrepancy between successful passes in the SPADL and atomic-SPADL representations Feb 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants