Esempio n. 1
0
import gen

tba = gen.setup()

maxPages = 20

finalistTeams = []
for i in range(0, maxPages):

    gen.progressBar(i, maxPages)

    teams = tba.teams(i, None, False, True)

    if teams == []:
        break

    for team in teams:

        finalist = 0

        for award in tba.team_awards(team):
            if award['award_type'] == 2:
                finalist += 1
            elif award['award_type'] == 1:
                break
        finalistTeams.append({'Team': team[3:], 'Finalist Count': finalist})

finalistTeams = sorted(finalistTeams,
                       key=lambda k: k['Finalist Count'],
                       reverse=True)
Esempio n. 2
0
#Structures to hold commonly used data
eventData = {}
teamsList = []

#Fetch district teams and events
distTeams = tba.district_teams(str(YEAR) + DISTRICT, False)
distEvents = tba.district_events(str(YEAR) + DISTRICT)

#Store data on common district events first
for event in distEvents:
    eventData[event['key']] = tba.event_oprs(event['key'])

teamCount = 0
for team in distTeams:
    teamCount += 1
    gen.progressBar(teamCount, len(distTeams))
    oprs = []

    events = tba.team_events(team['key'], YEAR)

    for event in events:

        #Only run on official events, ignores preseason, offseason, and unlabled
        #Try / Except to handle borked events
        #Tries to load data from eventData first, only hits TBA if needed
        #Stores team OPR data for later use.
        if event['event_type'] in range(0, 10):
            try:
                if event['key'] in eventData.keys():
                    oprs.append(eventData[event['key']]['oprs'][team['key']])
                else:
Esempio n. 3
0
        'currentTeams': [],
        'prevTeams': [],
        'years': {}
    }

    for year in yearRange:
        districtStats[district]['years'][str(year)] = {
            'dist': False,
            'teams': 0,
            'added': 0,
            'lost': 0,
            'teamList': []
        }

for count, y in enumerate(yearRange):
    gen.progressBar(count, len(yearRange))

    currentDistricts = tba.districts(y)
    year = str(y)

    for district in currentDistricts:
        if district['abbreviation'] != 'tx':
            districtStats[
                district['abbreviation']]['years'][year]['dist'] = True

    teams = []
    for page in range(0, 20):
        try:
            newTeams = tba.teams(page, y)

            if newTeams == []:
Esempio n. 4
0
                    #IRI, second draft round is reversed
                    draftPoints = 9 - alliance['number']
        except:
            pass

        #Find points for playing in elims
        for match in teamMatches:
            if match['comp_level'] != "qm":
                if gen.matchResult(team, match) == 'win':
                    elimPoints += 5

    return [teamRank, draftPoints, rankPoints, elimPoints]


teamData = []

for idx, team in enumerate(teams):
    gen.progressBar(idx, teamCount)
    rank, draft, rankP, elim = calcPoints(team, EVENT)
    total = draft + rankP + elim
    teamData.append({
        'team': team[3:],
        'rank': rank,
        'total': total,
        'rankP': rankP,
        'draft': draft,
        'elim': elim
    })

colOrder = ['team', 'rank', 'total', 'rankP', 'draft', 'elim']
gen.listOfDictToCSV('iriPoints', teamData, colOrder)
Esempio n. 5
0
                                  teamOrEvent['country'])
            zipCode = geocoder.osm((tmpLoc.lat, tmpLoc.lng),
                                   method="reverse").postal
        else:
            zipCode = teamOrEvent['postal_code']

        if teamOrEvent['country'] == "Canada":
            zipCode = zipCode[:3]
    except:
        zipCode = ""
    return zipCode


seasonEvents = tba.events(2018)
for (idx, event) in enumerate(seasonEvents):
    gen.progressBar(idx, len(seasonEvents))
    district = False

    if event['district'] != None:
        district = True

    if event['state_prov'] == "TX" or event['state_prov'] == 'PA':
        district = True

    if event['event_type'] in range(0, 6):
        data.append({
            "type": "Event",
            "key": event['key'],
            "zip": handleZip(event),
            "state": event['state_prov'],
            "country": event['country'],
Esempio n. 6
0
import gen

tba = gen.setup()

EVENT = "2018txri"

teams = tba.event_teams(EVENT, False, True)

elimMatches = []
for match in tba.event_matches(EVENT, True):
    if match['comp_level'] != 'qm':
        elimMatches.append(match)

data = []
for idx, team in enumerate(teams):
    gen.progressBar(idx, len(teams))
    status = tba.team_status(team, EVENT)
    
    record = status['qual']['ranking']['record']
    qualPoints = record['wins'] * 3 + record['ties']
    
    rank = status['qual']['ranking']['rank']
    
    if rank == 1:
        rankPoints = 12
    elif rank < 4:
        rankPoints = 8
    elif rank < 9:
        rankPoints = 5
    elif rank < 13:
        rankPoints = 3
tba = gen.setup()


def inMAR(event):
    # Mid Atlantic Robotics Bylaws Article 1 Section 2 define the PA part of MAR as 'the counties of Pennsylvania including Harrisburg, eastward'
    # Harrisburg's longitude is listed as -76.884 , I used -77 as it's a round number and gives a ~7 mile margin.
    HARRISBURG_WEST_LON = -77

    return event['lng'] > HARRISBURG_WEST_LON


data = []
years = range(2011, 2019)
for idx, year in enumerate(years):
    gen.progressBar(idx, len(years))
    yearData = {'WOW': 0, 'CHS': 0, 'NE': 0, 'MAR': 0, 'ON': 0, 'NY': 0}
    yearEvents = tba.events(year)

    for event in yearEvents:
        if event['event_type'] == 0:
            if event['state_prov'] in areas:
                yearData['WOW'] += int(event['state_prov'] in WOW)
                yearData['CHS'] += int(event['state_prov'] in CHS)
                yearData['NE'] += int(event['state_prov'] in NE)
                yearData['MAR'] += int(event['state_prov'] in MAR)
                yearData['ON'] += int(event['state_prov'] == 'ON')
                yearData['NY'] += int(event['state_prov'] == 'NY')

                if event['state_prov'] == 'PA':
                    yearData['MAR'] += int(inMAR(event))
Esempio n. 8
0
import gen

YEAR = 2018

tba = gen.setup()

hasDeclines = []

for year in range(2010, YEAR + 1):
    print("\nProcessing", year)

    events = tba.events(YEAR, True, True)
    maxSize = len(events)
    currentSize = 0
    for event in events:
        currentSize += 1
        gen.progressBar(currentSize, maxSize)
        try:
            for alliance in tba.event_alliances(event):
                if alliance['declines'] != []:
                    print(event, "had declines")
                    hasDeclines.append(event)
        except:
            pass
print("There have been declines at", len(hasDeclines),
      "events according to TBA.")
Esempio n. 9
0
YEAR = 2018
DISTRICT = 'chs'
DCMP_EVENTS = [2, 5]

pointsData = []

districtTeams = tba.district_teams(str(YEAR) + DISTRICT, False, False)
teamCount = len(districtTeams)

print("Processing", teamCount, "district teams.")

teamIter = 0
for team in districtTeams:
    teamIter += 1
    gen.progressBar(teamIter, teamCount)

    distPoints = 0
    teamEvents = tba.team_events(team['key'], YEAR, True, False)

    teamEvents = sorted(teamEvents, key=lambda k: k['start_date'])

    try:
        for i in range(0, 3):
            eventPoints = tba.event_district_points(teamEvents[i]['key'])
            distPoints += eventPoints['points'][team['key']]['total']
    except:
        pass
    pointsData.append({'team': team['team_number'], 'points': distPoints})

gen.listOfDictToCSV(DISTRICT + str(YEAR) + "points", pointsData)
Esempio n. 10
0
def main():
    global teams
    pool = Pool()
    teamData = {}
    teamList = gen.readTeamListCsv(currentYear, ['Teams'])['Teams']

    for team in teamList:
        teams[team] = {'playValues': [], 'awardValues': [], 'totalValues': []}
        for year in years:
            teams[team][str(year)] = {'playPoints': 0, 'awardPoints': 0}

    for idx, year in enumerate(years):
        gen.progressBar(idx, len(years))
        teamData[str(year)] = []
        teamData[str(year)] = pool.map(partial(getData, year), teamList)

    for year in teamData:
        for t in teamData[year]:
            teams[t['team']][year]['playPoints'] = t['playPoints']
            teams[t['team']][year]['awardPoints'] = t['awardPoints']

    outData = []
    for team in teams:
        playValues = [teams[team][str(year)]['playPoints'] for year in years]
        awardValues = [teams[team][str(year)]['awardPoints'] for year in years]
        totalValues = [
            teams[team][str(year)]['playPoints'] +
            teams[team][str(year)]['awardPoints'] for year in years
        ]

        avgPlay = stat.mean(playValues)
        avgAward = stat.mean(awardValues)
        avgTotal = stat.mean(totalValues)

        maxPlay = max(playValues)
        maxAward = max(awardValues)
        maxTotal = max(totalValues)

        teamObj = {
            'Team': team[3:],
            'Average Play': avgPlay,
            'Average Award': avgAward,
            'Average Total': avgTotal,
            'Max Play': maxPlay,
            'Max Award': maxAward,
            'Max Total': maxTotal
        }

        for idx, year in enumerate(years):
            teamObj[str(year) + ' Play'] = playValues[idx]
            teamObj[str(year) + ' Award'] = awardValues[idx]
            teamObj[str(year) + ' Total'] = totalValues[idx]

        outData.append(teamObj)

    colOrder = [
        'Team', 'Average Play', 'Average Award', 'Average Total', 'Max Play',
        'Max Award', 'Max Total'
    ]
    for year in range(currentYear - yearRange + 1, currentYear + 1):
        colOrder.append(str(year) + ' Play')
        colOrder.append(str(year) + ' Award')
        colOrder.append(str(year) + ' Total')

    gen.listOfDictToCSV("Worldwide Regional", outData, colOrder)
Esempio n. 11
0
    "frc225", "frc234", "frc245", "frc302", "frc319", "frc340", "frc359",
    "frc384", "frc469", "frc494", "frc624", "frc694", "frc708", "frc829",
    "frc865", "frc868", "frc1024", "frc1102", "frc1218", "frc1533", "frc1619",
    "frc1640", "frc1706", "frc1710", "frc1720", "frc1731", "frc1741",
    "frc1746", "frc1747", "frc1806", "frc2013", "frc2056", "frc2168",
    "frc2337", "frc2363", "frc2451", "frc2468", "frc2481", "frc2590",
    "frc2614", "frc2655", "frc2771", "frc2791", "frc2826", "frc2834",
    "frc3357", "frc3452", "frc3478", "frc3538", "frc3641", "frc3707",
    "frc3847", "frc3940", "frc4028", "frc4265", "frc4499", "frc4587",
    "frc4944", "frc4967", "frc5254", "frc5406", "frc6800"
]

teamList = iriTeams

for index, tm in enumerate(teamList):
    gen.progressBar(index, len(teamList))
    team = tba.team(tm)

    distTeams.append({
        'team': team['team_number'],
        'name': team['nickname'],
        'website': team['website'],
        'facebook': "",
        'github': "",
        'twitter': "",
        'instagram': "",
        'youtube': ""
    })

    for site in tba.team_profiles(team['team_number']):
        siteType = site['type'][:-8]