comparison python/storage.py @ 751:79405a938407 dev

corrected bug
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 28 Oct 2015 23:22:57 -0400
parents 6049e9b6902c
children 14963a9c3b09
comparison
equal deleted inserted replaced
750:6049e9b6902c 751:79405a938407
775 objects[objNum] = moving.MovingObject(num = objNum, timeInterval = moving.TimeInterval(row['first'], row['last'])) 775 objects[objNum] = moving.MovingObject(num = objNum, timeInterval = moving.TimeInterval(row['first'], row['last']))
776 # positions should be rounded to nDecimals decimals only 776 # positions should be rounded to nDecimals decimals only
777 objects[objNum].curvilinearPositions = moving.CurvilinearTrajectory(S = npround(tmp['POS'].tolist(), nDecimals), Y = npround(tmp['POSLAT'].tolist(), nDecimals), lanes = tmp['LANE'].tolist()) 777 objects[objNum].curvilinearPositions = moving.CurvilinearTrajectory(S = npround(tmp['POS'].tolist(), nDecimals), Y = npround(tmp['POSLAT'].tolist(), nDecimals), lanes = tmp['LANE'].tolist())
778 if objectNumbers is not None and objectNumbers > 0 and len(objects) >= objectNumbers: 778 if objectNumbers is not None and objectNumbers > 0 and len(objects) >= objectNumbers:
779 break 779 break
780 return objects.values()
781 else: 780 else:
782 if filename.endswith(".fzp"): 781 if filename.endswith(".fzp"):
783 inputfile = openCheck(filename, quitting = True) 782 inputfile = openCheck(filename, quitting = True)
784 line = readline(inputfile, '*$') 783 line = readline(inputfile, '*$')
785 while len(line) > 0:#for line in inputfile: 784 while len(line) > 0:#for line in inputfile:
796 objects[objNum].curvilinearPositions = moving.CurvilinearTrajectory() 795 objects[objNum].curvilinearPositions = moving.CurvilinearTrajectory()
797 if (warmUpLastInstant is None or instant >= warmUpLastInstant) and objNum in objects: 796 if (warmUpLastInstant is None or instant >= warmUpLastInstant) and objNum in objects:
798 objects[objNum].timeInterval.last = instant 797 objects[objNum].timeInterval.last = instant
799 objects[objNum].curvilinearPositions.addPositionSYL(s, y, lane) 798 objects[objNum].curvilinearPositions.addPositionSYL(s, y, lane)
800 line = readline(inputfile, '*$') 799 line = readline(inputfile, '*$')
801 return objects.values()
802 elif filename.endswith(".sqlite"): 800 elif filename.endswith(".sqlite"):
803 connection = sqlite3.connect(filename) 801 connection = sqlite3.connect(filename)
804 cursor = connection.cursor() 802 cursor = connection.cursor()
805 queryStatement = 'SELECT t, trajectory_id, link_id, lane_id, s_coordinate, y_coordinate FROM curvilinear_positions' 803 queryStatement = 'SELECT t, trajectory_id, link_id, lane_id, s_coordinate, y_coordinate FROM curvilinear_positions'
806 if objectNumbers is not None: 804 if objectNumbers is not None:
807 queryStatement += ' WHERE trajectory_id '+getObjectCriteria(objectNumbers) 805 queryStatement += ' WHERE trajectory_id '+getObjectCriteria(objectNumbers)
808 queryStatement += ' ORDER BY trajectory_id, t' 806 queryStatement += ' ORDER BY trajectory_id, t'
809 #objects = loadTrajectoriesFromTable(connection, "curvilinear_positions", "vissim_curvilinear", objectNumbers)
810 for row in cursor: 807 for row in cursor:
811 objNum = row[1] 808 objNum = row[1]
812 instant = row[0]*simulationStepsPerTimeUnit 809 instant = row[0]*simulationStepsPerTimeUnit
813 s = row[4] 810 s = row[4]
814 y = row[5] 811 y = row[5]
821 if (warmUpLastInstant is None or instant >= warmUpLastInstant) and objNum in objects: 818 if (warmUpLastInstant is None or instant >= warmUpLastInstant) and objNum in objects:
822 objects[objNum].timeInterval.last = instant 819 objects[objNum].timeInterval.last = instant
823 objects[objNum].curvilinearPositions.addPositionSYL(s, y, lane) 820 objects[objNum].curvilinearPositions.addPositionSYL(s, y, lane)
824 else: 821 else:
825 print("File type of "+filename+" not supported (only .sqlite and .fzp files)") 822 print("File type of "+filename+" not supported (only .sqlite and .fzp files)")
826 823 return objects.values()
827 824
828 def selectPDLanes(data, lanes = None): 825 def selectPDLanes(data, lanes = None):
829 '''Selects the subset of data for the right lanes 826 '''Selects the subset of data for the right lanes
830 827
831 Lane format is a string 'x_y' where x is link index and y is lane index''' 828 Lane format is a string 'x_y' where x is link index and y is lane index'''