def augmentQualiData(datatimes, dataclassification):
    augmentedData = {}
    tmpc = {}
    for tmp in dataclassification:
        if tmp[4] != 'DNS' and tmp[4] != 'DNF':
            toptimes = [tsa.getTime(tmp[4])]
        else:
            toptimes = [0]
        if len(tmp) > 8:
            if tmp[8] != 'DNF':
                toptimes.append(tsa.getTime(tmp[8]))
            if len(tmp) == 14:
                toptimes.append(tsa.getTime(tmp[11]))
        toptimes.sort()
        tmpc[tmp[1]] = {
            'pos': tmp[0],
            'fastlap': toptimes[0],
            'name': tmp[2],
            'team': tmp[3],
            'driverNum': tmp[1]
        }
    for item in datatimes:
        driver = item[0]
        ag = {'times': item}
        if driver in tmpc:
            for att in tmpc[driver]:
                ag[att] = tmpc[driver][att]
        else:
            ag = {'name': item[1], 'times': [], 'driverNum': driver}
        augmentedData[driver] = ag
    return augmentedData
Exemple #2
0
def output_pitStops(stops,history,analysis):
	#['24', 'T. GLOCK', 'Marussia Virgin Racing', '1', '1', '14:05:58', '35.092', '35.092']
	driverHistory={}
	#modify driverHistory to be analysis but with lap 1 time from history
	lap1times=history[0]
	for t in lap1times:
		driverHistory[t[0]]={}
	for hl in analysis:
		driver=hl[0]
		if driver in driverHistory:
			for pair in tsa.pairs(hl[4:]):
				driverHistory[driver][pair[0]]=tsa.getTime(pair[1])

	for stop in stops:
		carNum=stop[0]
		lap=stop[4]
		stoptime=tsa.getTime(stop[6])
		if carNum in driverHistory:	
			threelaps=instopafterLaps(driverHistory[carNum],carNum,lap)
		else: threelaps=['','','','']
		print carNum,lap,stoptime,threelaps
def output_pitStops(stops, history, analysis):
    #['24', 'T. GLOCK', 'Marussia Virgin Racing', '1', '1', '14:05:58', '35.092', '35.092']
    driverHistory = {}
    #modify driverHistory to be analysis but with lap 1 time from history
    lap1times = history[0]
    for t in lap1times:
        driverHistory[t[0]] = {}
    for hl in analysis:
        driver = hl[0]
        if driver in driverHistory:
            for pair in tsa.pairs(hl[4:]):
                driverHistory[driver][pair[0]] = tsa.getTime(pair[1])

    for stop in stops:
        carNum = stop[0]
        lap = stop[4]
        stoptime = tsa.getTime(stop[6])
        if carNum in driverHistory:
            threelaps = instopafterLaps(driverHistory[carNum], carNum, lap)
        else:
            threelaps = ['', '', '', '']
        print carNum, lap, stoptime, threelaps
Exemple #4
0
def augmentQualiData(datatimes,dataclassification):
	augmentedData={}
	tmpc={}
	for tmp in dataclassification:
		if tmp[4]!='DNS' and tmp[4]!='DNF': toptimes=[tsa.getTime(tmp[4])]
		else: toptimes=[0]
		if len(tmp)>8:
			if tmp[8]!='DNF':
				toptimes.append(tsa.getTime(tmp[8]))
			if len(tmp)==14:
				toptimes.append(tsa.getTime(tmp[11]))
		toptimes.sort()
		tmpc[tmp[1]]={'pos':tmp[0],'fastlap':toptimes[0], 'name':tmp[2], 'team':tmp[3],'driverNum':tmp[1]}
	for item in datatimes:
		driver=item[0]
		ag={'times':item}
		if driver in tmpc:
			for att in tmpc[driver]:
				ag[att]=tmpc[driver][att]
		else: ag={'name':item[1],'times':[],'driverNum':driver}
		augmentedData[driver]=ag
	return augmentedData
Exemple #5
0
def _outputPracticeClassification(outfile,sessiondata,sessionName=''):
	for s in sessiondata:
		#pos, name, driverNum, team, country, time, laps, speed
		pos=s[0]
		name=s[2]
		driverNum=s[1]
		team=s[4]
		country=s[3]
		time=tsa.getTime(s[5])
		laps=s[-1]
		speed=s[-3]
		if sessionName=='':
			outfile.writerow([pos, driverNum, name, time, laps, speed, team, country])
		else: outfile.writerow([sessionName,pos, driverNum, name, time, laps, speed, team, country])
Exemple #6
0
def augmentPracticeData(datatimes,dataclassification):
	augmentedData={}
	tmpc={}
	for tmp in dataclassification:
		tmpc[tmp[1]]={'pos':tmp[0],'fastlap':tsa.getTime(tmp[5]), 'name':tmp[2], 'team':tmp[4],'nationality':tmp[3],'driverNum':tmp[1]}
	for item in datatimes:
		driver=item[0]
		ag={'times':item}
		if driver in tmpc:
			for att in tmpc[driver]:
				ag[att]=tmpc[driver][att]
		else: ag={'name':item[1],'times':[],'driverNum':driver}
		augmentedData[driver]=ag
	return augmentedData
def _outputPracticeClassification(outfile, sessiondata, sessionName=''):
    for s in sessiondata:
        #pos, name, driverNum, team, country, time, laps, speed
        pos = s[0]
        name = s[2]
        driverNum = s[1]
        team = s[4]
        country = s[3]
        time = tsa.getTime(s[5])
        laps = s[-1]
        speed = s[-3]
        if sessionName == '':
            outfile.writerow(
                [pos, driverNum, name, time, laps, speed, team, country])
        else:
            outfile.writerow([
                sessionName, pos, driverNum, name, time, laps, speed, team,
                country
            ])
def augmentPracticeData(datatimes, dataclassification):
    augmentedData = {}
    tmpc = {}
    for tmp in dataclassification:
        tmpc[tmp[1]] = {
            'pos': tmp[0],
            'fastlap': tsa.getTime(tmp[5]),
            'name': tmp[2],
            'team': tmp[4],
            'nationality': tmp[3],
            'driverNum': tmp[1]
        }
    for item in datatimes:
        driver = item[0]
        ag = {'times': item}
        if driver in tmpc:
            for att in tmpc[driver]:
                ag[att] = tmpc[driver][att]
        else:
            ag = {'name': item[1], 'times': [], 'driverNum': driver}
        augmentedData[driver] = ag
    return augmentedData
Exemple #9
0
import csv
import timingSheetAnalysis as tsa

from data import can2011_data as candata
from data import esp2011_data as espdata
from data import eur2011_data as eurdata
from data import mco2011_data as mcodata
from data import tur2011_data as turdata
from data import ita2011_data as itadata
from data import bel2011_data as beldata
from data import gbr2011_data as gbrdata
from data import ger2011_data as gerdata
from data import hun2011_data as hundata

dtype=[turdata,espdata,mcodata,candata,eurdata,itadata,beldata,gbrdata,gerdata,hundata]

fpathname='../testOutputFiles'
writer = csv.writer(open(fpathname+"/pitStopRaw.csv", "wb"))
writer.writerow(['slug','car','driver','team','stopCount','stopLap','timeofday','stoptime','totalStopTime'])
for dt in dtype:
	print dt
	slug=dt.raceinfo['slug']
	for d in dt.stops:
		d[5]=tsa.getTime(d[5])
		d[6]=tsa.getTime(d[6])
		d[7]=tsa.getTime(d[7])
		row=[slug]+d
		writer.writerow(row)

Exemple #10
0
from data import esp2011_data as espdata
from data import eur2011_data as eurdata
from data import mco2011_data as mcodata
from data import tur2011_data as turdata
from data import ita2011_data as itadata
from data import bel2011_data as beldata
from data import gbr2011_data as gbrdata
from data import ger2011_data as gerdata
from data import hun2011_data as hundata

dtype = [
    turdata, espdata, mcodata, candata, eurdata, itadata, beldata, gbrdata,
    gerdata, hundata
]

fpathname = '../testOutputFiles'
writer = csv.writer(open(fpathname + "/pitStopRaw.csv", "wb"))
writer.writerow([
    'slug', 'car', 'driver', 'team', 'stopCount', 'stopLap', 'timeofday',
    'stoptime', 'totalStopTime'
])
for dt in dtype:
    print dt
    slug = dt.raceinfo['slug']
    for d in dt.stops:
        d[5] = tsa.getTime(d[5])
        d[6] = tsa.getTime(d[6])
        d[7] = tsa.getTime(d[7])
        row = [slug] + d
        writer.writerow(row)
def output_qualiStats(qualitrap,
                      qualispeeds,
                      qualisectors,
                      qualiclassification,
                      sessiondata,
                      typ='quali',
                      grid=[]):
    f = open('../generatedFiles/' + race + typ + 'stats.csv', 'wb')
    writer = csv.writer(f)
    sessionStats = {}
    for driverdata in qualitrap:
        driverNum = driverdata[1]
        sessionStats[driverNum] = {
            'name': driverdata[2],
            'trap': driverdata[3],
            'traptimeofday': driverdata[4]
        }
    trapnames = ['inter1', 'inter2', 'finish']
    tt = 0
    for traps in qualispeeds:
        for driver in traps:
            driverNum = driver[1]
            if driverNum in sessionStats:
                sessionStats[driverNum][trapnames[tt]] = driver[3]
            else:
                sessionStats[driverNum] = {}
                sessionStats[driverNum][trapnames[tt]] = driver[3]
        tt = tt + 1
    sn = 1
    dultimate = {}
    for sector in qualisectors:
        for driver in sector:
            driverNum = driver[1]
            sessionStats[driverNum]['sector' + str(sn)] = driver[3]
        sn = sn + 1
    fastlap = {}
    if typ == 'quali':
        for c in qualiclassification:
            sessionStats[c[1]]['position'] = c[0]
            sessionStats[c[1]]['team'] = c[3]
            if c[0] != 'DNQ' and int(c[0]) < 17: offset = -3
            else: offset = -4
            if c[-2] != 'DNS' and c[-2] != 'DNF':
                sessionStats[c[1]]['qualitime'] = tsa.getTime(c[offset])
                sessionStats[c[1]]['percent'] = c[6]
            else:
                sessionStats[c[1]]['qualitime'] = ''
                sessionStats[c[1]]['percent'] = ''
    else:
        for c in qualiclassification:
            if c[0] in sessionStats:
                sessionStats[c[0]]['position'] = c[5]
                sessionStats[c[0]]['team'] = c[3]
                fastlap[c[0]] = tsa.getTime(c[-2])
                #sessionStats[c[0]]['percent']=c[6]
            else:
                sessionStats[c[0]] = {}
                sessionStats[c[0]]['position'] = ''
                sessionStats[c[0]]['team'] = ''
                fastlap[c[0]] = ''

        px = 1
        for p in grid[1:]:
            sessionStats[p]['grid'] = px
            px = px + 1

    headers = [
        'classification', 'driverNum', 'name', 'sector1', 'sector2', 'sector3'
    ]
    if typ == 'quali': headers.append('qualiTime')
    else: headers.append('grid')
    headers = headers + [
        'ultimate', 'fastestlap', 'inter1', 'inter2', 'finish', 'trap',
        'traptimeofday', 'team'
    ]
    writer.writerow(headers)
    for driverNum in sessionStats:
        if typ == 'quali':
            if 'fastlap' in sessiondata[driverNum]:
                fastlap[driverNum] = sessiondata[driverNum]['fastlap']
            else:
                fastlap[driverNum] = 200

        for x in [
                'sector1', 'sector2', 'sector3', 'inter1', 'inter2', 'finish',
                'trap', 'traptimeofday', 'team'
        ]:
            if x not in sessionStats[driverNum]:
                sessionStats[driverNum][x] = 0
        sessionStats[driverNum]['ultimate'] = float(
            sessionStats[driverNum]['sector1']) + float(
                sessionStats[driverNum]['sector2']) + float(
                    sessionStats[driverNum]['sector3'])
        ss = sessionStats[driverNum]
        #hackfix
        outTxt = []
        if 'position' in ss: outTxt.append(ss['position'])
        else: outTxt.append('')
        outTxt.append(driverNum)
        for tmpi in ['name', 'sector1', 'sector2', 'sector3']:
            if tmpi in ss: outTxt.append(ss[tmpi])
            else: outTxt.append('')
        #outTxt=[ss['position'],driverNum,ss['name'],ss['sector1'],ss['sector2'],ss['sector3']]

        if typ == 'quali':
            if 'qualitime' in ss: outTxt.append(ss['qualitime'])
            else: outTxt.append('')
        else: outTxt.append(ss['grid'])
        if driverNum not in fastlap: fastlap[driverNum] = 0
        outTxt = outTxt + [
            ss['ultimate'], fastlap[driverNum], ss['inter1'], ss['inter2'],
            ss['finish'], ss['trap'], ss['traptimeofday'], ss['team']
        ]
        writer.writerow(outTxt)
    f.close()
Exemple #12
0
def output_qualiStats(qualitrap,qualispeeds,qualisectors,qualiclassification,sessiondata,typ='quali',grid=[]):	
		f=open('../generatedFiles/'+race+typ+'stats.csv','wb')
		writer = csv.writer(f)
		sessionStats={}
		for driverdata in qualitrap:
			driverNum=driverdata[1]
			sessionStats[driverNum]={'name':driverdata[2],'trap':driverdata[3],'traptimeofday':driverdata[4]}
		trapnames=['inter1','inter2','finish']
		tt=0
		for traps in qualispeeds:
			for driver in traps:
				driverNum=driver[1]
				if driverNum in sessionStats:
					sessionStats[driverNum][trapnames[tt]]=driver[3]
				else:
					sessionStats[driverNum]={}
					sessionStats[driverNum][trapnames[tt]]=driver[3]
			tt=tt+1
		sn=1
		dultimate={}
		for sector in qualisectors:
			for driver in sector:
				driverNum=driver[1]
				sessionStats[driverNum]['sector'+str(sn)]=driver[3]
			sn=sn+1
		fastlap={}
		if typ=='quali':
			for c in qualiclassification:
				sessionStats[c[1]]['position']=c[0]
				sessionStats[c[1]]['team']=c[3]
				if c[0]!='DNQ' and int(c[0])<17: offset=-3
				else: offset=-4
				if c[-2]!='DNS' and c[-2]!='DNF':
					sessionStats[c[1]]['qualitime']=tsa.getTime(c[offset])
					sessionStats[c[1]]['percent']=c[6]
				else:
					sessionStats[c[1]]['qualitime']=''
					sessionStats[c[1]]['percent']=''
		else:
			for c in qualiclassification:
				if c[0] in sessionStats:
					sessionStats[c[0]]['position']=c[5]
					sessionStats[c[0]]['team']=c[3]
					fastlap[c[0]]=tsa.getTime(c[-2])
					#sessionStats[c[0]]['percent']=c[6]
				else:
					sessionStats[c[0]]={}
					sessionStats[c[0]]['position']=''
					sessionStats[c[0]]['team']=''
					fastlap[c[0]]=''
			
			px=1
			for p in grid[1:]:
				sessionStats[p]['grid']=px
				px=px+1
		
		headers=['classification','driverNum','name','sector1','sector2','sector3']
		if typ=='quali': headers.append('qualiTime')
		else: headers.append('grid')
		headers=headers+['ultimate','fastestlap','inter1','inter2','finish','trap','traptimeofday','team']
		writer.writerow(headers)
		for driverNum in sessionStats:
			if typ=='quali':
				if 'fastlap' in sessiondata[driverNum]:
					fastlap[driverNum]=sessiondata[driverNum]['fastlap']
				else: fastlap[driverNum]=200
			
			for x in ['sector1','sector2','sector3','inter1','inter2','finish','trap','traptimeofday','team']:
				if x not in sessionStats[driverNum]:
					sessionStats[driverNum][x]=0 
			sessionStats[driverNum]['ultimate']=float(sessionStats[driverNum]['sector1'])+float(sessionStats[driverNum]['sector2'])+float(sessionStats[driverNum]['sector3'])
			ss=sessionStats[driverNum]
			#hackfix
			outTxt=[]
			if 'position' in ss: outTxt.append(ss['position'])
			else: outTxt.append('')
			outTxt.append(driverNum)
			for tmpi in ['name','sector1','sector2','sector3']:
				if tmpi in ss:outTxt.append(ss[tmpi])
				else: outTxt.append('')
			#outTxt=[ss['position'],driverNum,ss['name'],ss['sector1'],ss['sector2'],ss['sector3']]
			
			if typ=='quali':
				if 'qualitime' in ss: outTxt.append(ss['qualitime'])
				else: outTxt.append('')
			else: outTxt.append(ss['grid'])
			if driverNum not in fastlap: fastlap[driverNum]=0
			outTxt=outTxt+[ss['ultimate'],fastlap[driverNum],ss['inter1'],ss['inter2'],ss['finish'],ss['trap'],ss['traptimeofday'],ss['team']]
			writer.writerow(outTxt)
		f.close()