Coder Social home page Coder Social logo

del_stats's Introduction

DEL Hockey Stats

Processing, aggregating and visualizing DEL hockey stats.

del_stats's People

Contributors

leaffan avatar verbunt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

verbunt

del_stats's Issues

Register shootout data

Shootout information need to be registered in individual player stats as well as team stats files.

Calculate and display individual game score

Individual player game score (courtesy of Dom Luszczyszyn may be calculated with the following formula:

Player Game Score = 0,75 * G + 0,7 * A1 + 0,55 * A2 + 0,075 * SOG + 0,05 * BLK + 0,15 * PD - 0,15 * PT + 0,01 * FOW - 0,01 * FOL + 0,05 * CF - 0,05 * CA + 0,15 * GF - 0,15 * GA

This should be incorporated into player game statistics retrieval and display.

Unfortunately there is no information about drawn penalties available with the DEL data, all the other stuff should be there though.

Duplicate players in player information display

Player information displays several entries (those of players who participated in the MagentaSport Cup) multiple times. This needs to be fixed. Best solution would be a replacement for the aggregated stats file in JSON format that is no longer directly used by the frontend.

Display league-wide save percentages

League-wide save percentages are calculated beforehand to later retrieve GSAA (Goals Saved Above Average). As a reference these league-wide values should be displayed on the corresponding pages.

Display shootout stats

This includes:

  • player profiles (only for applicable games)
  • team profiles (only for applicable games)
  • player stats (aggregated according to selected filters, only for applicable players and goaltenders)
  • team stats (aggregated according to,selected filters)

Jersey numbers

Make jersey numbers available on player profile with the most currently used as primary number, other ones need to be at least mentioned. Player game logs should also include the used number.

Player and team shot logs

It would be nice to have player shots logs, in order to show collected locations of shots on goals, misses, and blocked shots.

Player list on player profile complete and dependent on season

The list of available players on a player profile page needs to show all players that played for the team in question during the season the data is displayed for. Currently only those players are available that are currently with this team.

Backend: make list of players that took ice for a team during a season
Frontend: display all those players in dropdown list, make sure the first one is selected when there's a null player

Detailed power play statistics

Power play statistics should be separated by actual skater situation on ice, i.e. 5-vs-4, 5-vs-3, and 4-vs-3. To do so we have to collect the number of goals scored in each situation, the overall number of opportunities of and times spent in these situations. Reconstruction of skater situation for each second of a game should be used as a basis for this retrieval.

Adjust player age display on player profile to season

Player profile pages usually show the current age of a player. However for other seasons than the current one this should be adjusted to the age midway through the corresponding season, i.e. usually at the turn of the year back then.

Not sure how to make the user aware of this adjustment.

Analyze and display detailed faceoff statistics

Detailed information is available for each faceoff event. It should be feasible to derive individual statistics on the following criteria:

  • faceoffs per zone, i.e. offensive, neutral, and defensive
  • faceoffs per side with regard to the player's handedness
  • more stuff.

Visualization of starting lineup frequencies

Due to missing shift data line combinations for forwards and defenseman are only available via the official starting line ups. It is nevertheless desirable to visualize the offensive line and defensive pair combinations according to their frequency, e.g. in an alluvial graph.

Calculate (5v5) goals saved above average

In an attempt to objectify goaltender statistics we should include (5v5) goals save above average for each goalie game. Later this should be displayed both individually per game and aggregated over a defined period of time.

A league-wide 5v5 save percentage needs to be calculated first.

Some basic tests

This would be nice. Testing is necessary for downloading team and game data scripts, downloading player career stats scripts, and processing scripts.

TOI/Shift

Calculation and visualization of time on ice per shift.

Provide game reports

For each game played, a detailed game report with the usual stuff (goals, penalties, shots, team stats, player stats...) should be available to be used as reference and link target for each game mentioned in the other stats displays.

Registry of all players doesn't represent up-to-date information

It has been found that the registry of all players (del_players.json) under certain circumstances does not hold up-to-date information, i.e. if a player was utilized as a forward the previous season and is now playing as a defender he could still be registered as a forward. In a first step to to correct this issue It has to be made sure that the most recent position registered for the player in the official data is also stored in the central registry file.
In a second step we should allow for position (and nationality?) changes over the course of multiple seasons.

Register forward line/defense pair composition

Official data from DEL provides roster sheets that contain lines and defense pairs as registered by the coaching staff prior to the game. This data should be stored and adequately visualized. Additionally a number of further analyses could be possible, e.g. in order to measure the efficiency of a line.

Player scoring streaks

Retrieve and display player scoring streaks, i.e. longest streak during the season and currently on-going streak.

Goalie statistics

Goaltender statistics have to be retrieved and aggregated separately from normal skater statistics.

Develop an expected goals model

Prerequisite would be resolving issue #24.

It would be neat if we could incorporate a shooter's handedness into the parameters.

Also we would need a second model disregarding blocked shots to allow for later calculation of some advanded goaltending statistics.

5-on-5-statistics

With on-ice skater situations reconstructed for every second of every game (and therefore also for every shot event) it should be now possible to separate statistic data items valid for 5-on-5 hockey from other situations.

This issue affects both backend retrieval as well as frontend display of the collected data.

Team game logs

Like the player game logs, we should have team game logs.

example config.yml

Hi,

I came across this project. It looks really nice, especially the amount of statistics you get out of just a couple of JSON files from DEL. I would like to play a little bit more with it. Is there any chance to get an example config.yml and some basic instructions (f.i. in which order the backend scripts need to be executed).

Thanks and best regards,
GrindSa

Team-independent goaltender statistics

To detach individual goaltender performance from team performance an adjusted way of measuring the former is necessary. A multiple of approaches could be feasible, including an adjusted save percentage that gives shots against over the threshold of the league average a higher weight in the calculation and vice versa. Other ways could be quality starts and some kind of adjustment based on the number of shots taken from different shot zones.

Double names in selection list for player profiles

Since introduction of playoff statistics there is a nasty doubling of player names in the corresponding selection list on the player profile pages. This is because player stats are both aggregated for regular season and playoffs therefore creating two entries for the same name in the dataset. This should be fixed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.