Exemple #1
0
 def get_average_dribble_distance(hits):
     i = 0
     dribbleDistances = []
     dribbleHitNo = []
     while i < len(hits):
         # find full dribble
         hit = hits[i]
         dribbleHits = []
         if hit.dribble == 2:
             dribbleHits.append(hit)
             i += 1
             while hits[i].dribble:
                 dribbleHits.append(hit)
                 i += 1
             # add last dribble hit - it has .dribble=0
             dribbleHits.append(hits[i])
             
             dribbleDistance = misc.find_distance(dribbleHits[0].position,dribbleHits[-1].position)
             dribbleDistances.append(dribbleDistance)
             dribbleHitNo.append(len(dribbleHits))
         
         i += 1
     aveDribbleDistance = div(sum(dribbleDistances),len(dribbleDistances))
     aveDribbleHits = div(sum(dribbleHitNo),len(dribbleHitNo))
     
     return aveDribbleDistance,aveDribbleHits
    def analyse_game_possession(game):
        try:
            if game.isPossessionAnalysed: return
        except: pass
        
        for player in game.players:
            player.possessionH = []
            player.possessionP = []
        
        for frameNo in game._framesToParse:

            ballPosition = game.ball.positions[frameNo]
            minDistance = 50000
            closestPlayer = None
            for player in game.players:
                playerPosition = player.positions[frameNo]
                distance = misc.find_distance(playerPosition,ballPosition)
                #check if closest
                if distance < minDistance:
                    minDistance = distance
                    # print(str(frameNo)+', '+str(distance)+', '+player.name)
                    closestPlayer = player
            
            closestPlayer.possessionP.append(frameNo)
            # print(player.name)
            
            hitter = None
            _HitFrameNo = 0
            for hit in game.hits:
                if _HitFrameNo < hit.frameNo <= frameNo:
                    hitter = hit.player
            
            hitter.possessionH.append(frameNo)
            
        # for player in game.players:
            # print(player.name)
            # print(len(player.possessionP))
        game.isPossessionAnalysed = True
Exemple #3
0
 def get_hit_distance(hit,nextHit):
     if nextHit:
         hit.distance = misc.find_distance(hit.position,nextHit.position)
     else:
         hit.distance = None
     return hit.distance