Mercurial Hosting > traffic-intelligence
comparison python/storage.py @ 892:f766fe0995f4
added function for PeMS data
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 05 May 2017 00:07:33 -0400 |
parents | 4749b71aa7fb |
children | ff92801e5c54 |
comparison
equal
deleted
inserted
replaced
891:ab3a4cb524a9 | 892:f766fe0995f4 |
---|---|
914 if self.sechead: | 914 if self.sechead: |
915 try: return self.sechead | 915 try: return self.sechead |
916 finally: self.sechead = None | 916 finally: self.sechead = None |
917 else: return self.fp.readline() | 917 else: return self.fp.readline() |
918 | 918 |
919 def loadPemsTraffic(filename): | |
920 '''Loads traffic data downloaded from the http://pems.dot.ca.gov clearinghouse | |
921 into pandas dataframe''' | |
922 f = openCheck(filename) | |
923 l = f.readline().strip() | |
924 items = l.split(',') | |
925 headers = ['time', 'station', 'district', 'route', 'direction', 'lanetype', 'length', 'nsamples', 'pctobserved', 'flow', 'occupancy', 'speed', 'delay35', 'delay40', 'delay45', 'delay50', 'delay55', 'delay60'] | |
926 nLanes = (len(items)-len(headers))/3 | |
927 for i in xrange(nLanes): | |
928 headers += ['flow{}'.format(i+1), 'occupancy{}'.format(i+1), 'speed{}'.format(i+1)] | |
929 f.close() | |
930 return read_csv(filename, delimiter = ',', names = headers) | |
931 | |
919 def generatePDLaneColumn(data): | 932 def generatePDLaneColumn(data): |
920 data['LANE'] = data['LANE\LINK\NO'].astype(str)+'_'+data['LANE\INDEX'].astype(str) | 933 data['LANE'] = data['LANE\LINK\NO'].astype(str)+'_'+data['LANE\INDEX'].astype(str) |
921 | 934 |
922 def convertTrajectoriesVissimToSqlite(filename): | 935 def convertTrajectoriesVissimToSqlite(filename): |
923 '''Relies on a system call to sqlite3 | 936 '''Relies on a system call to sqlite3 |