Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Keisuke ANDO
socceR
Commits
e2e55a3f
Commit
e2e55a3f
authored
Dec 26, 2022
by
Takumi Amano
💬
Browse files
[fix]フィールドのサイズを修正
parent
4f82b1a0
Changes
1
Hide whitespace changes
Inline
Side-by-side
R/make_data.R
View file @
e2e55a3f
soccer_field_length
=
105
soccer_field_width
=
68
soccer_goal_width
=
14.02
get_referee
<-
function
(
rcl
)
{
referee
<-
rcl
|>
dplyr
::
filter
(
command
==
"referee"
)
%>%
...
...
@@ -67,8 +70,9 @@ get_ball <- function(rcg) {
dplyr
::
mutate
(
next_ball_vy
=
lead
(
ball_vy
))
%>%
dplyr
::
mutate
(
kick_speed
=
(
ball_vx
^
2
+
ball_vy
^
2
))
%>%
dplyr
::
mutate
(
a_kick_speed
=
(
next_ball_vx
^
2
+
next_ball_vy
^
2
))
%>%
dplyr
::
mutate
(
target_ball_x
=
(
ball_x
+
next_ball_vx
*
10
))
%>%
dplyr
::
mutate
(
target_ball_y
=
(
ball_y
+
next_ball_vy
*
10
))
dplyr
::
mutate
(
target_ball_x
=
(
ball_x
+
ball_vx
))
%>%
dplyr
::
mutate
(
target_ball_y
=
(
ball_y
+
ball_vy
))
%>%
dplyr
::
mutate
(
shoot_ball
=
(
kick_speed
>
1
)
&
((
soccer_field_length
/
2
)
<
abs
(
target_ball_x
))
&
((
soccer_goal_width
/
2
)
>
abs
(
target_ball_y
)))
return
(
ball
)
}
...
...
@@ -132,7 +136,7 @@ get_kick_log <- function(action,goal) {
(
judge
==
"NULL"
)
&
(
next_judge
==
"NULL"
)
&
a_sameteam
&
!
a_sameunum
))
%>%
dplyr
::
mutate
(
shoot
=
(
shoot_scc
|
abs
(
target_ball_x
)
>
54
&
abs
(
target_ball_y
)
<
12
))
%>%
abs
(
target_ball_x
)
>
(
soccer_field_length
/
2
)
&
abs
(
target_ball_y
)
<
12
))
%>%
dplyr
::
mutate
(
dribble
=
(
(
!
shoot
)
&
(
!
pass_scc
)
&
...
...
@@ -215,8 +219,8 @@ get_shoot <- function(kick) {
dplyr
::
filter
(
shoot
==
TRUE
)
%>%
distinct
(
step
,
.keep_all
=
TRUE
)
%>%
dplyr
::
select
(
step
,
team
,
ball_x
,
ball_y
,
ball_vx
,
ball_vy
,
next_ball_x
,
next_ball_y
,
next_ball_vx
,
next_ball_vy
,
shoot
,
shoot_scc
)
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
54
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
54
-
abs
(
ball_x
)),
ball_y
))
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
)),
ball_y
))
return
(
output
)
}
...
...
@@ -224,8 +228,8 @@ get_xg <- function(kick){
output
<-
kick
|>
dplyr
::
filter
(
shoot
==
TRUE
)
%>%
distinct
(
step
,
.keep_all
=
TRUE
)
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
54
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
54
-
abs
(
ball_x
)),
ball_y
))
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
)),
ball_y
))
%>%
dplyr
::
select
(
step
,
team
,
px
,
py
,
ball_x
,
ball_y
,
ball_goal_dist
,
ball_goal_angle
)
return
(
output
)
}
...
...
@@ -242,8 +246,8 @@ get_xg_l <- function(kick){
dplyr
::
filter
(
shoot
==
TRUE
)
%>%
dplyr
::
filter
(
side
==
"l"
)
%>%
distinct
(
step
,
.keep_all
=
TRUE
)
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
54
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
54
-
abs
(
ball_x
)),
ball_y
))
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
)),
ball_y
))
%>%
dplyr
::
select
(
px
,
py
,
ball_x
,
ball_y
,
ball_goal_dist
,
ball_goal_angle
)
return
(
output
)
}
...
...
@@ -263,8 +267,8 @@ get_xg_r <- function(kick){
dplyr
::
filter
(
side
==
"r"
)
%>%
distinct
(
step
,
.keep_all
=
TRUE
)
%>%
dplyr
::
mutate
(
px
=
px
*
-1
,
py
=
py
*
-1
,
ball_x
=
-1
*
ball_x
,
ball_y
=
ball_y
*
-1
)
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
54
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
54
-
abs
(
ball_x
)),
ball_y
))
%>%
dplyr
::
mutate
(
ball_goal_dist
=
sqrt
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
))
^
2
+
abs
((
ball_y
))
^
2
))
%>%
dplyr
::
mutate
(
ball_goal_angle
=
atan2
((
(
soccer_field_length
/
2
)
-
abs
(
ball_x
)),
ball_y
))
%>%
dplyr
::
select
(
px
,
py
,
ball_x
,
ball_y
,
ball_goal_dist
,
ball_goal_angle
)
return
(
output
)
}
...
...
@@ -296,7 +300,7 @@ get_goalkeeper_action<- function(actionAll){
output
<-
actionAll
|>
dplyr
::
filter
(
unum
==
1
)
%>%
dplyr
::
mutate
(
ball_keeper_dist_x
=
sqrt
((
px
-
ball_x
)
^
2
))
%>%
dplyr
::
mutate
(
player_goal_dist
=
sqrt
((
54
-
abs
(
px
))
^
2
+
abs
((
py
))
^
2
))
%>%
dplyr
::
mutate
(
player_goal_dist
=
sqrt
((
(
soccer_field_length
/
2
)
-
abs
(
px
))
^
2
+
abs
((
py
))
^
2
))
%>%
dplyr
::
mutate
(
opp_team
=
(
team
!=
shoot_team
))
%>%
dplyr
::
mutate
(
ball_closer_goal_goalkeeper
=
opp_team
&
(
ball_goal_dist
<
player_goal_dist
))
return
(
output
)
...
...
@@ -309,8 +313,8 @@ get_shoot_epv <- function(players,shoot){
dplyr
::
select
(
step
,
side
,
ball_keeper_dist_x
,
keeper_goal_dist
=
player_goal_dist
,
ball_closer_goal_goalkeeper
)
opponent_team
<-
shootAll
|>
dplyr
::
filter
(
team
!=
shoot_team
)
%>%
dplyr
::
mutate
(
r_post_x
=
(
ball_x
+
(
py
-
ball_y
)
*
(
7
-
ball_x
)
/
(
-54
-
ball_y
)))
%>%
dplyr
::
mutate
(
l_post_x
=
(
ball_x
+
(
py
-
ball_y
)
*
(
-
7
-
ball_x
)
/
(
-54
-
ball_y
)))
%>%
dplyr
::
mutate
(
r_post_x
=
(
ball_x
+
(
py
-
ball_y
)
*
(
(
soccer_goal_width
/
2
)
-
ball_x
)
/
(
-
(
soccer_field_length
/
2
)
-
ball_y
)))
%>%
dplyr
::
mutate
(
l_post_x
=
(
ball_x
+
(
py
-
ball_y
)
*
(
-
(
soccer_goal_width
/
2
)
-
ball_x
)
/
(
-
(
soccer_field_length
/
2
)
-
ball_y
)))
%>%
dplyr
::
mutate
(
triangle_in_player
=
(
px
>
l_post_x
)
&
(
px
<
r_post_x
))
%>%
dplyr
::
mutate
(
dist_ball_in_3m
=
(
ball_player_dist
<
3
))
opp_triangle_in_player_num
<-
opponent_team
|>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment