Mercurial Hosting > traffic-intelligence
annotate python/sumo.py @ 967:373e8ef6ee25
modified function to access video property
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 05 Dec 2017 16:15:44 -0500 |
parents | 40af0f20ee2d |
children | 32a34a143c27 |
rev | line source |
---|---|
964
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 '''Libraries for the SUMO traffic simulation software |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 http://sumo.dlr.de |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 ''' |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
5 |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
6 import csv |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
7 |
966
40af0f20ee2d
reworking the functions
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
965
diff
changeset
|
8 def loadTazEdges(inFilename): |
964
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
9 '''Converts list of OSM edges per OSM edge and groups per TAZ''' |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
10 data = [] |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
11 tazs = {} |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 with open(inFilename,'r') as f: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
13 csv_reader = csv.reader(f, delimiter=",") |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
14 next(csv_reader, None) # skip the headers |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
15 for row in csv_reader: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
16 data.append(row) |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
17 |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
18 for datum in data: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
19 if len(datum) > 5 and datum[5] is not None: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
20 tazID = datum[3] |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
21 for edge in datum[15:]: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
22 if len(edge) > 0: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
23 if edge is not None: |
965 | 24 if tazID in tazs: |
25 if edge not in tazs[tazID]: | |
26 tazs[tazID].append(edge) | |
27 else: | |
28 tazs[tazID] = [edge] | |
966
40af0f20ee2d
reworking the functions
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
965
diff
changeset
|
29 return tazs |
40af0f20ee2d
reworking the functions
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
965
diff
changeset
|
30 |
40af0f20ee2d
reworking the functions
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
965
diff
changeset
|
31 def saveTazEdges(outFilename, tazs): |
964
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
32 with open(outFilename,'w') as out: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
33 out.write('<tazs>\n') |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
34 for tazID in tazs: |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
35 out.write('<taz id="{}" edges="'.format(tazID)+' '.join(tazs[tazID])+'"/>\n') |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
36 out.write('</tazs>\n') |
966
40af0f20ee2d
reworking the functions
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
965
diff
changeset
|
37 |
964
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
38 # TODO add utils from process-cyber.py? |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
39 |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
40 # if __name__ == "__main__": |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
41 # import doctest |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
42 # import unittest |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
43 # suite = doctest.DocFileSuite('tests/sumo.txt') |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
44 # #suite = doctest.DocTestSuite() |
e3ec6caab984
utilities for SUMO traffic simulation
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
45 # unittest.TextTestRunner().run(suite) |