diff 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
line wrap: on
line diff
--- a/trafficintelligence/storage.py	Mon Feb 04 10:08:23 2019 -0500
+++ b/trafficintelligence/storage.py	Wed Feb 06 12:55:10 2019 -0500
@@ -977,16 +977,13 @@
 def loadPemsTraffic(filename):
     '''Loads traffic data downloaded from the http://pems.dot.ca.gov clearinghouse 
     into pandas dataframe'''
-    f = utils.openCheck(filename)
-    l = f.readline().strip()
-    items = l.split(',')
-    headers = ['time', 'station', 'district', 'route', 'direction', 'lanetype', 'length', 'nsamples', 'pctobserved', 'flow', 'occupancy', 'speed', 'delay35', 'delay40', 'delay45', 'delay50', 'delay55', 'delay60']
-    nLanes = (len(items)-len(headers))/3
-    for i in range(nLanes):
-        headers += ['flow{}'.format(i+1), 'occupancy{}'.format(i+1), 'speed{}'.format(i+1)]
-    f.close()
-    return read_csv(filename, delimiter = ',', names = headers)
-        
+    data=read_csv(filename, nrows = 3)
+    headerNames = ['time', 'station', 'district', 'freeway', 'direction', 'lanetype', 'length', 'nsamples', 'pctobserved', 'totalflow', 'occupancy', 'speed'] # default for 5 min
+    nLanes = int((len(data.columns)-len(headerNames))/5)
+    for i in range(1, nLanes+1):
+        headerNames += ['nsamples{}'.format(i), 'flow{}'.format(i), 'occupancy{}'.format(i), 'speed{}'.format(i), 'pctobserved{}'.format(i)]
+    return read_csv(filename, names = headerNames)
+
 def generatePDLaneColumn(data):
     data['LANE'] = data['LANE\\LINK\\NO'].astype(str)+'_'+data['LANE\\INDEX'].astype(str)