Mercurial Hosting > traffic-intelligence
annotate python/pavement.py @ 435:17185fe77316
added error messages if video not opened
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Mon, 02 Dec 2013 16:39:50 -0500 |
parents | 9a714f32fc9f |
children | 830136bc0e18 |
rev | line source |
---|---|
431
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 '''Tools for processing and analyzing pavement marking data''' |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 __metaclass__ = type |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
5 |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
6 class RTSS: |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
7 'class for data related to a RTSS, including agregating pavement marking measurements' |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
8 pass |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
9 |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
10 class MarkingTest: |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
11 '''class for a test site for a given product''' |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
13 def __init__(self, siteId, paintingDate, paintingType, color, data): |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
14 self.siteId = siteId |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
15 self.paintingDate = paintingDate |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
16 self.paintingType = paintingType |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
17 self.color = color |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
18 self.data = data |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
19 self.nMeasures = len(data) |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
20 |
432 | 21 def plot(self, measure, options = 'o', dayRatio = 1., **kwargs): |
431
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
22 from matplotlib.pyplot import plot |
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
23 plot(self.data['jours']/float(dayRatio), |
432 | 24 self.data[measure], options, **kwargs) |
431
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
25 |
434 | 26 def getMarkingMeasures(self, dataLabel): |
433
d40ad901b272
added kernel smoothing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
432
diff
changeset
|
27 from numpy import isnan |
d40ad901b272
added kernel smoothing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
432
diff
changeset
|
28 nonZeroIndices = ~isnan(self.data[dataLabel]) |
d40ad901b272
added kernel smoothing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
432
diff
changeset
|
29 return self.data[nonZeroIndices]['jours'], self.data[nonZeroIndices][dataLabel] |
431
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
30 |
433
d40ad901b272
added kernel smoothing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
432
diff
changeset
|
31 def plotMarkingMeasures(self, measure, options = 'o', dayRatio = 1., **kwargs): |
431
0bcfa49d179a
began module for pavement marking data processing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
32 for i in range(1,7): |
433
d40ad901b272
added kernel smoothing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
432
diff
changeset
|
33 self.plot('{}_{}'.format(measure, i), options, dayRatio, **kwargs) |