adding logging and fixing course evaluation
This commit is contained in:
@@ -939,6 +939,8 @@ def handle_check_race_course(self,
|
|||||||
|
|
||||||
logfile = 'courselog_{workoutid}_{courseid}.log'.format(
|
logfile = 'courselog_{workoutid}_{courseid}.log'.format(
|
||||||
workoutid=workoutid, courseid=courseid)
|
workoutid=workoutid, courseid=courseid)
|
||||||
|
logfile2 = 'courses.log'
|
||||||
|
dologging(logfile2,logfile)
|
||||||
|
|
||||||
if 'debug' in kwargs: # pragma: no cover
|
if 'debug' in kwargs: # pragma: no cover
|
||||||
debug = kwargs['debug']
|
debug = kwargs['debug']
|
||||||
@@ -981,6 +983,8 @@ def handle_check_race_course(self,
|
|||||||
try:
|
try:
|
||||||
row = rdata(csvfile=f1 + '.gz')
|
row = rdata(csvfile=f1 + '.gz')
|
||||||
except IOError: # pragma: no cover
|
except IOError: # pragma: no cover
|
||||||
|
dologging(logfile,"Did not find file "+f1)
|
||||||
|
dologging(logfile2,"Did not find file "+f1)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
row.extend_data()
|
row.extend_data()
|
||||||
@@ -994,6 +998,8 @@ def handle_check_race_course(self,
|
|||||||
try:
|
try:
|
||||||
_ = rowdata[' latitude']
|
_ = rowdata[' latitude']
|
||||||
except KeyError: # pragma: no cover
|
except KeyError: # pragma: no cover
|
||||||
|
dologging(logfile,"No GPS Data")
|
||||||
|
dologging(logfile2,"No GPS Data")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
rowdata.rename(columns={
|
rowdata.rename(columns={
|
||||||
@@ -1012,7 +1018,7 @@ def handle_check_race_course(self,
|
|||||||
lambda x: safetimedelta(x)
|
lambda x: safetimedelta(x)
|
||||||
).values
|
).values
|
||||||
|
|
||||||
|
rowdata = rowdata.select_types(['number'])
|
||||||
rowdata = rowdata.resample('100ms', on='dt').mean()
|
rowdata = rowdata.resample('100ms', on='dt').mean()
|
||||||
rowdata = rowdata.interpolate()
|
rowdata = rowdata.interpolate()
|
||||||
|
|
||||||
@@ -1036,18 +1042,12 @@ def handle_check_race_course(self,
|
|||||||
except AttributeError: # pragma: no cover
|
except AttributeError: # pragma: no cover
|
||||||
entrytimes, entrydistances = time_in_path(rowdata, paths[0], maxmin='max', getall=True,
|
entrytimes, entrydistances = time_in_path(rowdata, paths[0], maxmin='max', getall=True,
|
||||||
name='Start', logfile=logfile)
|
name='Start', logfile=logfile)
|
||||||
with open(logfile, 'ab') as f:
|
logmessage = 'Course id {n}, Record id {m}'.format(n=courseid, m=recordid)
|
||||||
t = time.localtime()
|
dologging(logfile,logmessage)
|
||||||
timestamp = bytes('{t}'.format(
|
dologging(logfile2,logmessage)
|
||||||
t=time.strftime('%b-%d-%Y_%H%M', t)), 'utf-8')
|
logmessage = 'Found {n} entrytimes'.format(n=len(entrytimes))
|
||||||
f.write(b'\n')
|
dologging(logfile,logmessage)
|
||||||
f.write(bytes('Course id {n}, Record id {m}'.format(
|
dologging(logfile2,logmessage)
|
||||||
n=courseid, m=recordid), 'utf-8'))
|
|
||||||
f.write(b'\n')
|
|
||||||
f.write(timestamp)
|
|
||||||
f.write(b' ')
|
|
||||||
f.write(bytes('Found {n} entrytimes'.format(
|
|
||||||
n=len(entrytimes)), 'utf-8'))
|
|
||||||
|
|
||||||
except InvalidTrajectoryError: # pragma: no cover
|
except InvalidTrajectoryError: # pragma: no cover
|
||||||
entrytimes = []
|
entrytimes = []
|
||||||
@@ -1062,14 +1062,9 @@ def handle_check_race_course(self,
|
|||||||
endseconds = []
|
endseconds = []
|
||||||
|
|
||||||
for startt in entrytimes:
|
for startt in entrytimes:
|
||||||
with open(logfile, 'ab') as f:
|
logmessage = 'Path starting at {t}'.format(t=startt)
|
||||||
t = time.localtime()
|
dologging(logfile, logmessage)
|
||||||
timestamp = bytes('{t}'.format(
|
dologging(logfile2, logmessage)
|
||||||
t=time.strftime('%b-%d-%Y_%H%M', t)), 'utf-8')
|
|
||||||
f.write(b'\n')
|
|
||||||
f.write(timestamp)
|
|
||||||
f.write(b' ')
|
|
||||||
f.write(bytes('Path starting at {t}'.format(t=startt), 'utf-8'))
|
|
||||||
rowdata2 = rowdata[rowdata['time'] > (startt-10.)]
|
rowdata2 = rowdata[rowdata['time'] > (startt-10.)]
|
||||||
|
|
||||||
(
|
(
|
||||||
@@ -1102,7 +1097,6 @@ def handle_check_race_course(self,
|
|||||||
'endsecond': endseconds,
|
'endsecond': endseconds,
|
||||||
})
|
})
|
||||||
|
|
||||||
#records = records[records['coursecompleted'] is True]
|
|
||||||
records = records.loc[records['coursecompleted'], : ]
|
records = records.loc[records['coursecompleted'], : ]
|
||||||
|
|
||||||
if len(records):
|
if len(records):
|
||||||
@@ -1200,19 +1194,15 @@ def handle_check_race_course(self,
|
|||||||
|
|
||||||
|
|
||||||
# add times for all gates to log file
|
# add times for all gates to log file
|
||||||
with open(logfile, 'ab') as f:
|
dologging(logfile,'--- LOG of all gate times---')
|
||||||
t = time.localtime()
|
dologging(logfile2,'--- LOG of all gate times---')
|
||||||
f.write(b'\n')
|
|
||||||
f.write(b' ')
|
|
||||||
f.write(b'--- LOG of all gate times---')
|
|
||||||
|
|
||||||
for path, polygon in zip(paths, polygons):
|
for path, polygon in zip(paths, polygons):
|
||||||
(secs, meters, completed) = coursetime_paths(rowdata,
|
(secs, meters, completed) = coursetime_paths(rowdata,
|
||||||
[path], polygons=[polygon], logfile=logfile)
|
[path], polygons=[polygon], logfile=logfile)
|
||||||
with open(logfile, 'ab') as f:
|
logmessage = " time: {t} seconds, distance: {m} meters".format(t=secs, m=meters)
|
||||||
line = " time: {t} seconds, distance: {m} meters".format(
|
dologging(logfile,logmessage)
|
||||||
t=secs, m=meters)
|
dologging(logfile2,logmessage)
|
||||||
f.write(bytes(line, 'utf-8'))
|
|
||||||
|
|
||||||
# send email
|
# send email
|
||||||
handle_sendemail_coursefail(
|
handle_sendemail_coursefail(
|
||||||
|
|||||||
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
BIN
rowers/tests/testdata/testdata.tcx.gz
vendored
Binary file not shown.
Reference in New Issue
Block a user