Title: | An R Shiny App for Scouting Volleyball Match Files |
---|---|
Description: | Functions for scouting volleyball match files. |
Authors: | Ben Raymond [aut, cre], Adrien Ickowicz [aut], Krystian Kowalski [ctb], Brady Williams [ctb], openvolley.org [org] |
Maintainer: | Ben Raymond <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.2.9 |
Built: | 2024-12-14 04:38:09 UTC |
Source: | https://github.com/openvolley/ovscout2 |
Create a new datavolley match object
dv_create( match, more, teams, players_h, players_v, video_file, attacks = ov_simplified_attack_table(), setter_calls = ov_default_setter_calls_table(), winning_symbols = ov_default_winning_symbols(), zones_or_cones = "Z", regulation = "indoor rally point", comments )
dv_create( match, more, teams, players_h, players_v, video_file, attacks = ov_simplified_attack_table(), setter_calls = ov_default_setter_calls_table(), winning_symbols = ov_default_winning_symbols(), zones_or_cones = "Z", regulation = "indoor rally point", comments )
match |
list or single-row data.frame: (optional) with components |
more |
list or single-row data.frame: (optional) with components |
teams |
data.frame: a 2-row data frame describing the home and visiting teams, with required columns |
players_h , players_v
|
data.frame: with required columns |
video_file |
string: (optional) path to video file |
attacks |
data.frame: as returned by |
setter_calls |
data.frame: as returned by |
winning_symbols |
data.frame: as returned by |
zones_or_cones |
string: "Z" or "C". Will be ignored if |
regulation |
string: "indoor rally point", "beach rally point", or "indoor sideout". Will be ignored if |
comments |
character: optional vector of length up to 5, of comments |
A datavolley object
x <- dv_create(teams = data.frame(team_id = c("TM1", "TM2"), team = c("Team 1", "Team 2")), comments = "Test file", players_h = data.frame(firstname = toupper(letters[1:7]), lastname = "Player", number = 1:7), players_v = data.frame(firstname = letters[10:15], lastname = "VisPlayer", number = 10:15)) ## enter the team lineups for set 1 x <- dv_set_lineups(x, set_number = 1, lineups = list(6:1, 15:10), setter_positions = c(2, 1))
x <- dv_create(teams = data.frame(team_id = c("TM1", "TM2"), team = c("Team 1", "Team 2")), comments = "Test file", players_h = data.frame(firstname = toupper(letters[1:7]), lastname = "Player", number = 1:7), players_v = data.frame(firstname = letters[10:15], lastname = "VisPlayer", number = 10:15)) ## enter the team lineups for set 1 x <- dv_set_lineups(x, set_number = 1, lineups = list(6:1, 15:10), setter_positions = c(2, 1))
Probably only useful for testing.
dv_scout_from_console( x, prompt = "SCOUT> ", compound_table = ov_default_compound_table(), default_scouting_table = ov_default_scouting_table() )
dv_scout_from_console( x, prompt = "SCOUT> ", compound_table = ov_default_compound_table(), default_scouting_table = ov_default_scouting_table() )
x |
datavolley: a datavolley object as returned by |
prompt |
string: the prompt to show |
compound_table |
tibble: the table of default compound codes |
default_scouting_table |
tibble: the table of scouting defaults (skill type and evaluation) |
A modified version of x
, with rows added to the plays2 component
Enter the team lineups at the start of a set
dv_set_lineups(x, set_number, lineups, setter_positions, setters)
dv_set_lineups(x, set_number, lineups, setter_positions, setters)
x |
datavolley: a datavolley object |
set_number |
integer: set number, 1–3 for beach or 1–5 for indoor |
lineups |
list: two-element list with numeric vectors of player numbers. Each lineup is
|
setter_positions |
integer: two-element integer vector giving the position on court of the two setters. At least one of |
setters |
integer: two-element integer vector giving the jersey numbers of the two setters. At least one of |
A modified version of x
Colours can be either hex strings or names, but if using names they must be recognized both by R and as CSS colour names.
ov_app_styling()
ov_app_styling()
review_pane_width
is expressed as a percentage of the browser window width
A named list of styling parameters
Default attack combination code table
ov_default_attack_table() ov_simplified_attack_table()
ov_default_attack_table() ov_simplified_attack_table()
A tibble
Default compound skills table
ov_default_compound_table()
ov_default_compound_table()
A tibble
Default scouting (type and evaluation for each skill) table
ov_default_scouting_table()
ov_default_scouting_table()
A tibble
Default setter calls table
ov_default_setter_calls_table()
ov_default_setter_calls_table()
A tibble
Default keyboard shortcuts for ov_scouter
ov_default_shortcuts()
ov_default_shortcuts()
A named list
Default winning symbols table
ov_default_winning_symbols()
ov_default_winning_symbols()
A tibble
This is a helper function to install lighttpd. Currently it only works on Windows platforms. The lighttpd bundle will be downloaded from http://lighttpd.dtech.hu/ and saved to your user appdata directory.
ov_install_lighttpd(force = FALSE)
ov_install_lighttpd(force = FALSE)
force |
logical: force reinstallation if lighttpd already exists |
the path to the installed executable
## Not run: ov_install_lighttpd() ## End(Not run)
## Not run: ov_install_lighttpd() ## End(Not run)
Launch a Shiny app for scouting
ov_scouter( dvw, video_file, court_ref, season_dir, auto_save_dir, scoreboard = TRUE, ball_path = FALSE, playlist_display_option = "dv_codes", review_pane = TRUE, playback_rate = 1, scouting_options = ov_scouting_options(), app_styling = ov_app_styling(), shortcuts = ov_default_shortcuts(), scout_name = "", show_courtref = FALSE, dash = FALSE, host, launch_browser = TRUE, prompt_for_files = interactive(), ... )
ov_scouter( dvw, video_file, court_ref, season_dir, auto_save_dir, scoreboard = TRUE, ball_path = FALSE, playlist_display_option = "dv_codes", review_pane = TRUE, playback_rate = 1, scouting_options = ov_scouting_options(), app_styling = ov_app_styling(), shortcuts = ov_default_shortcuts(), scout_name = "", show_courtref = FALSE, dash = FALSE, host, launch_browser = TRUE, prompt_for_files = interactive(), ... )
dvw |
string or datavolley: either the path to a dvw or ovs file or a datavolley object (e.g. as returned by |
video_file |
string: optionally, the path to the video file. If not supplied (or |
court_ref |
data.frame or string: data.frame with the court reference (as returned by |
season_dir |
string: optional path to a directory with other dvw/ovs files from this season |
auto_save_dir |
string: optional path to a directory where the dvw will be saved automatically after each rally |
scoreboard |
logical: if |
ball_path |
logical: if |
playlist_display_option |
string: what to show in the plays table? Either "dv_codes" (scouted codes) or "commentary" (a plain-language interpretation of the touches) |
review_pane |
logical: if |
playback_rate |
numeric: starting playback rate of the video (1.0 is normal speed, higher is faster) |
scouting_options |
list: a named list with entries as per |
app_styling |
list: named list of styling options, as returned by |
shortcuts |
list: named list of keyboard shortcuts, as returned by |
scout_name |
string: the name of the scout (your name) |
show_courtref |
logical: if |
dash |
logical: support live MPEG DASH streams? If not specified, will default to |
host |
string: the IP address of this machine. Only required if you intend to connect to the app from a different machine (in which case use |
launch_browser |
logical: if |
prompt_for_files |
logical: if |
... |
: extra parameters passed to |
A note on scouting_options
If a *.ovs file (i.e. a partially-scouted file, that was previously scouted using this app) has been provided in the dvw
argument, then it will contain the scouting options used during the previous scouting session. Those options will be re-used EXCEPT if scouting_options
are also provided here. Any scouting options provided here via the scouting_options
argument will override options saved in the .ovs file. Thus, it is recommended that scouting_options
not be provided here along with a .ovs file unless absolutely necessary. If necessary, only the specific, relevant elements of the scouting_options
list should be provided. Note that *.dvw files do not contain saved options, only .ovs files that were scouted with this app.
## Not run: ov_scouter("demo") ## End(Not run)
## Not run: ov_scouter("demo") ## End(Not run)
Scouting options
ov_scouting_options( end_convention = "actual", nblockers = TRUE, default_nblockers = NA, transition_sets = FALSE, attacks_by = "codes", team_system = "SHM3", setter_dump_code = "PP", second_ball_attack_code = "P2", overpass_attack_code = "PR", default_scouting_table = ov_default_scouting_table(), compound_table = ov_default_compound_table(), attack_table = ov_simplified_attack_table() )
ov_scouting_options( end_convention = "actual", nblockers = TRUE, default_nblockers = NA, transition_sets = FALSE, attacks_by = "codes", team_system = "SHM3", setter_dump_code = "PP", second_ball_attack_code = "P2", overpass_attack_code = "PR", default_scouting_table = ov_default_scouting_table(), compound_table = ov_default_compound_table(), attack_table = ov_simplified_attack_table() )
end_convention |
string: either "actual" or "intended". Is the end coordinate of an attack or serve the actual end location (where the ball contacted the floor or out of bounds area), or the intended one. The actual might differ from the intended if there is a block touch or the ball hit the net. If "actual", and a block touch is recorded, then the end location of the attack will not be used for the dig location (the dig location will be missing) |
nblockers |
logical: scout the number of blockers on each attack? |
default_nblockers |
integer: if |
transition_sets |
logical: scout sets in transition? If |
attacks_by |
string: "codes" (X5, V5, etc) or "tempo" (high, medium, quick) |
team_system |
string: the assumed system that teams are using to assign e.g. passing and hitting responsibilities
|
setter_dump_code |
string: the attack combination code for a setter dump |
second_ball_attack_code |
string: the attack combination code for a second-ball attack |
overpass_attack_code |
string: the attack combination code for an attack on an overpass |
default_scouting_table |
tibble: the table of scouting defaults (skill type and evaluation) |
compound_table |
tibble: the table of compound codes |
attack_table |
tibble: table of attack codes (X5, V5, etc) as returned by |
A named list