comparison python/sumo.py @ 964:e3ec6caab984

utilities for SUMO traffic simulation
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 27 Nov 2017 17:23:30 -0500
parents
children eec549e9ff2e
comparison
equal deleted inserted replaced
963:2757efeabbb4 964:e3ec6caab984
1 #! /usr/bin/env python
2 '''Libraries for the SUMO traffic simulation software
3 http://sumo.dlr.de
4 '''
5
6 import csv
7
8 def convertTazEdges(inFilename, outFilename):
9 '''Converts list of OSM edges per OSM edge and groups per TAZ'''
10 data = []
11 tazs = {}
12 with open(inFilename,'r') as f:
13 csv_reader = csv.reader(f, delimiter=",")
14 next(csv_reader, None) # skip the headers
15 for row in csv_reader:
16 data.append(row)
17
18 for datum in data:
19 if len(datum) > 5 and datum[5] is not None:
20 tazID = datum[3]
21 for edge in datum[15:]:
22 if len(edge) > 0:
23 if edge is not None:
24 tazs.setdefault(tazID, [edge]).append(edge)
25
26 with open(outFilename,'w') as out:
27 out.write('<tazs>\n')
28 for tazID in tazs:
29 out.write('<taz id="{}" edges="'.format(tazID)+' '.join(tazs[tazID])+'"/>\n')
30 out.write('</tazs>\n')
31
32 # TODO add utils from process-cyber.py?
33
34 # if __name__ == "__main__":
35 # import doctest
36 # import unittest
37 # suite = doctest.DocFileSuite('tests/sumo.txt')
38 # #suite = doctest.DocTestSuite()
39 # unittest.TextTestRunner().run(suite)