Mercurial Hosting > traffic-intelligence
changeset 964:e3ec6caab984
utilities for SUMO traffic simulation
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Mon, 27 Nov 2017 17:23:30 -0500 |
parents | 2757efeabbb4 |
children | eec549e9ff2e |
files | python/sumo.py |
diffstat | 1 files changed, 39 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/sumo.py Mon Nov 27 17:23:30 2017 -0500 @@ -0,0 +1,39 @@ +#! /usr/bin/env python +'''Libraries for the SUMO traffic simulation software +http://sumo.dlr.de +''' + +import csv + +def convertTazEdges(inFilename, outFilename): + '''Converts list of OSM edges per OSM edge and groups per TAZ''' + data = [] + tazs = {} + with open(inFilename,'r') as f: + csv_reader = csv.reader(f, delimiter=",") + next(csv_reader, None) # skip the headers + for row in csv_reader: + data.append(row) + + for datum in data: + if len(datum) > 5 and datum[5] is not None: + tazID = datum[3] + for edge in datum[15:]: + if len(edge) > 0: + if edge is not None: + tazs.setdefault(tazID, [edge]).append(edge) + + with open(outFilename,'w') as out: + out.write('<tazs>\n') + for tazID in tazs: + out.write('<taz id="{}" edges="'.format(tazID)+' '.join(tazs[tazID])+'"/>\n') + out.write('</tazs>\n') + +# TODO add utils from process-cyber.py? + +# if __name__ == "__main__": +# import doctest +# import unittest +# suite = doctest.DocFileSuite('tests/sumo.txt') +# #suite = doctest.DocTestSuite() +# unittest.TextTestRunner().run(suite)