![]() |
Tracking Tote/Container/Litter per Match Using API
Not being as familiar with the Events API as many of the data wizards on here I figured this would be a good question to pose to the CD community since I have neither the time nor knowledge to implement such software.
The per match data FIRST posts is not as detailed as they data refs input. Is it possible to calculate the categories FIRST doesn't post (container, tote, litter) on a per match basis using the change from the previous rankings? You would need to ensure the rankings are pulled every match and find the difference in each category for the 6 teams that played. Thoughts? |
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
|
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
|
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
|
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
|
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
Quote:
|
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
|
Re: Tracking Tote/Container/Litter per Match Using API
Couldn't you find the per-match Tote/Auto/Litter/Coopertition/Containter/Foul from the system of equations
M_i = a_i + t_i + l_i + c_i + r_i + p_i T_(j,t) = sum t_i P_(j,i) T_(j,a) = sum a_i P_(j,i) T_(j,l) = sum l_i P_(j,i) T_(j,c) = sum c_i P_(j,i) T_(j,r) = sum r_i P_(j,i) T_(j,p) = sum p_i P_(j,i) where M_i is the score in the ith 'half-match' (since scores are kept for both red and blue alliances, we can treat a single match as two 'half-matches', one per alliance), t_i is the tote score in the ith 'half-match', a_i is the autonomous score in the ith 'half-match', l_i is the litter score in the ith 'half-match', c_i is the coopertition score in the ith 'half-match', r_i is the recycle containter score in the ith 'half-match', p_i is the penalty score in the ith 'half-match' (that is, the number of points lost to penalties: it may differ from -6*(number of penalties) due to the rule that match scores do not go lower than 0), P_(j,i) is the scoring participation matrix: P_(j,i) = 1 if team j participated as a non-surrogate team in the ith 'half-match' and was not disqualified, T_(j,*) is the total number of points team j received in all the matches they played in (note: T_(j,p) is not given directly in the rankings, but it can be calculated as (Qualification Average) * (number of matches played - # matches disqualified) - (total score from all other components). For example, the calculation for team 1619 at the Colorado Regional looks like (131.9 * 10) - (240 + 0 + 548 + 396 + 165) = -30: they probably had 5 total fouls occur in the 'half-matches' that they played). Of course, this system might not have a unique solution (though it will always have a solution). I'd be interested if someone could give an argument that some feature of the way FIRST matches are scheduled forces the solution to be unique, or failing that at least some empirical data about how often the system is uniquely solvable. |
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
The per-match data includes only Final Score, Auto Points, and Foul Points. |
Re: Tracking Tote/Container/Litter per Match Using API
The information would certainly be useful! With it, you could infer how consistent a team is, or whether that moderate average is due to a few high scores and a bunch of low ones. Some of the high DPRs this year (and not just among those with canburglar mechanisms) make me realize that the whole OPR/DPR construct is not really very useful, at least for this game.
|
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
|
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
You can find an estimate for the OPR for each of those scoring components as follows: If [A] is the 2MxT binary matrix of the alliances (constructed from the match schedule), and [d] is the Tx5 vector of the Team Rankings component scores Coop, Auto, RC, Tote, and Litter, where M is the number of matches and T is the number of teams, then the OPRs for Coop, Auto, RC, Tote, and Litter can be computed by solving the system of Normal Equations [AT][A][OPR] = [d] ... for [OPR] In fact, that's how it's currently being done this year (with some additional tweaking to account for surrogates and DQ's). |
Re: Tracking Tote/Container/Litter per Match Using API
Quote:
However, it looks like in many instances (specifically, when the number of matches is at most twice the number of teams) we should be able to differentiate between coopertition points and points scored through totes, litter, and recycling. We can do so with the following system of equations: M_(r,i) = a_(r,i) + p_(r,i) + t_(r,i) + c_i M_(b,i) = a_(b,i) + p_(b,i) + t_(b,i) + c_i T_(j,c) = sum c_i (P_(r,j,i)+P_(b,j,i)) T_(j,t) = sum (t_(r,i) P_(r,j,i) + t_(b,i)P_(b,j,i)) where M_(r,i) (respectively, M_(b,i)) is final score of the red (respectively, blue) alliance, the a and p represent the autonomous and foul points (each of which is given), t represents the non-coopertition points (Tote, Litter, and Containter), c represents the coopertition points (since these are shared between the red and blue alliance, there is no need to distinguish between c_(r,i) and c_(b,i)), and P(r,j,i) (respectively, P_(b,j,i)) is 1 if team j was a non-surrogate, non-disqualified member of the red (respectively, blue) alliance in the ith match. Altogether, for 2M half-matches, we are estimating 3M parameters (1 t value per half-match, and 1 c value per pair of half-matches) from 2M+2T data points (the score data from M matches, plus 2 pieces of ranking data about the total coop and non-coop points scored by a team), where M is the number of half-matches and T is the number of teams. We have an over- (or exactly) determined system provided 3M <= 2M + 2T, or if M <= 2T. |
| All times are GMT -5. The time now is 16:52. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi