Mercurial > hg > nsaunier > traffic-intelligence
comparison trafficintelligence/storage.py @ 1095:e53c6e87bb3f
update pems loader
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Wed, 06 Feb 2019 12:55:10 -0500 |
| parents | 3939ae415be0 |
| children | 3972d85e3b6c |
comparison
equal
deleted
inserted
replaced
| 1094:c96388c696ac | 1095:e53c6e87bb3f |
|---|---|
| 975 yield line | 975 yield line |
| 976 | 976 |
| 977 def loadPemsTraffic(filename): | 977 def loadPemsTraffic(filename): |
| 978 '''Loads traffic data downloaded from the http://pems.dot.ca.gov clearinghouse | 978 '''Loads traffic data downloaded from the http://pems.dot.ca.gov clearinghouse |
| 979 into pandas dataframe''' | 979 into pandas dataframe''' |
| 980 f = utils.openCheck(filename) | 980 data=read_csv(filename, nrows = 3) |
| 981 l = f.readline().strip() | 981 headerNames = ['time', 'station', 'district', 'freeway', 'direction', 'lanetype', 'length', 'nsamples', 'pctobserved', 'totalflow', 'occupancy', 'speed'] # default for 5 min |
| 982 items = l.split(',') | 982 nLanes = int((len(data.columns)-len(headerNames))/5) |
| 983 headers = ['time', 'station', 'district', 'route', 'direction', 'lanetype', 'length', 'nsamples', 'pctobserved', 'flow', 'occupancy', 'speed', 'delay35', 'delay40', 'delay45', 'delay50', 'delay55', 'delay60'] | 983 for i in range(1, nLanes+1): |
| 984 nLanes = (len(items)-len(headers))/3 | 984 headerNames += ['nsamples{}'.format(i), 'flow{}'.format(i), 'occupancy{}'.format(i), 'speed{}'.format(i), 'pctobserved{}'.format(i)] |
| 985 for i in range(nLanes): | 985 return read_csv(filename, names = headerNames) |
| 986 headers += ['flow{}'.format(i+1), 'occupancy{}'.format(i+1), 'speed{}'.format(i+1)] | 986 |
| 987 f.close() | |
| 988 return read_csv(filename, delimiter = ',', names = headers) | |
| 989 | |
| 990 def generatePDLaneColumn(data): | 987 def generatePDLaneColumn(data): |
| 991 data['LANE'] = data['LANE\\LINK\\NO'].astype(str)+'_'+data['LANE\\INDEX'].astype(str) | 988 data['LANE'] = data['LANE\\LINK\\NO'].astype(str)+'_'+data['LANE\\INDEX'].astype(str) |
| 992 | 989 |
| 993 def convertTrajectoriesVissimToSqlite(filename): | 990 def convertTrajectoriesVissimToSqlite(filename): |
| 994 '''Relies on a system call to sqlite3 | 991 '''Relies on a system call to sqlite3 |
