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