Mercurial > hg > nsaunier > 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 |
