Each play is represented by a vertical bar, which begins at the line of scrimmage for that play and ends where the rusher is downed, fumbles the ball, or enters the endzone for a score. Each play is color coded for the "success" of the play.
You run NRAV with
./nrav [output-file] [rusher-name] [week] [season] |
NRAV takes four input arguments:
NRAV makes calls to curl (downloading the raw archived .csv file from GitHub) and gunzip (decompressing the archive into a .csv file). jgraph, a graphing package created by James Plank and used in NRAV, also makes calls to ps2pdf (converting the PostScript jgraph outputs to PDF) and convert (converting the PDF to JPEG).
These programs need to be installed as a prerequisite. You can install these with the following command on Debian-based systems:
UNIX> sudo apt-get install curl gzip ghostscript imagemagick
Additionally, policy.xml located in /etc/ImageMagick-7 (7 may be any number) needs to be modified for convert to work properly. Open policy.xml in the text editor of your choice with root privileges and make the following change:
Before ... <policy domain="coder" rights="none" pattern="PDF" /> ... |
After ... <policy domain="coder" rights="read | write" pattern="PDF" /> ... |
This program was tested on hydra3.eecs.utk.edu and on an Ubuntu Linux system.
Starting with the 2021-2022 season, the NFL has elected to move from a 16-game regular season format to an 17-game regular season format. NRAV has yet to be updated to account for that, but will be updated once the 2021-2022 season starts.
Here are some examples of NRAV outputs and what they can tell us about a particular running back's performance in a game.
UNIX> nrav Derrick-Henry-Wk-14-2018 D.Henry 14 2018Here is the jgraph:
You can tell that Derrick Henry, the RB for the Tennessee Titans, in Week 14, 2020 against the Jaguars, was used quite evenly across the field in various yardage situations. He was also able to pull off touchdowns from any part of the field, even having a 99-yard touchdown where he was able to use his stiff arm ability and top end speed to break away when most others could not.
Next, take a look at Dalvin Cook in Week 1, 2020 against the Packers:
UNIX> ./nrav Dalvin-Cook-Wk-1-2020 D.Cook 1 2020
Dalvin Cook was incredibly effective in the redzone, with 4 out of 5 of his attempts inside the opponent's 5 yard line resulting in a score. Otherwise, he wasn't utilized as much outside the redzone, with the Vikings relying more on the pass game.
Next, take a look at Ezekiel Elliott in Week 6, 2020 against the Cardinals:
UNIX> ./nrav Ezekiel-Elliott-Wk-6-2020 E.Elliott 6 2020
Ezekiel Elliott, an elite running back in years past, has been struggling this season, particularly with fumbles. The graph shows us that he wasn't able to get any scores, with his only redzone carry resulting in lost yardage. Not only that, he also had a fumble, which he had been struggling with all season. What this graph doesn't show is that he had a second fumble from a shovel pass behind the line of scrimmage. However, because it was a pass, even if Elliott received it behind line of scrimmage, it isn't a run play and doesn't show up on the visualization.
Now, take a look at Rudi Johnson in Week 10, 2003 against the Texans:
UNIX> ./nrav Rudi-Johnson-Wk-10-2003 Ru.Johnson 10 2003
These inputs were chosen more to test the limits of the program. This game is notable in that it has the most rushing attempts by a single rusher in a game of any game in the 1999 NFL season and beyond. It is also an older game, 2003, which tests if older data still accurate. However, it also tells another story: the NFL was far more run-heavy in times past, and comparing the number of attempts in this graph to the ones above really shows how the NFL has become more of a passing league in the modern era.
Lastly, a Hall of Famer, LaDanian Tomlinson in Week 10, 2006 against the Bengals:
UNIX> ./nrav LaDainian-Tomlinson-Wk-10-2006 L.Tomlinson 10 2006
Have fun!