# HG changeset patch # User Nicolas Saunier # Date 1511821410 18000 # Node ID e3ec6caab984e276d20f67c854c4af41a9c1096c # Parent 2757efeabbb48f7b543b33392e34ef9b39c88f88 utilities for SUMO traffic simulation diff -r 2757efeabbb4 -r e3ec6caab984 python/sumo.py --- /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('\n') + for tazID in tazs: + out.write('\n') + out.write('\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)