def runProcess(queue, vehicleData, sensor, sensorSettings, egoSensor, egoSensorSettings, predictor, predictorSettings, egoPredictor, egoPredictorSettings, extraInfo): sensorData = applySensor(vehicleData, 'ego', sensor, sensorSettings, egoSensor, egoSensorSettings) predTime, predID = applyPredictor(vehicleData, sensorData, 'ego', 0.5, 1.5, predictor, predictorSettings, egoPredictor, egoPredictorSettings) queue.put([predTime] + extraInfo)
truthVehID = paramTruth["Colliding Vehicle"].tolist() for predind in range(len(trajectory1Predictors)): trajectoryPredictor = trajectory1Predictors[predind] trajectorySettings = trajectory1Settings[predind] egoPredictor = ego1Predictors[predind] egoSettings = ego1Settings[predind] pred = [] predVehID = [] for simIndex in range(nsims): inFile = vehicleFolder + "/" + simName + "/" + np.str(simIndex + 1) + ".csv" vData = pd.read_table(inFile, sep=',') sensor1Data = applySensor(vData, vehicleIDtoSeek, sensor1, sensor1Settings, egoSensor1, egoSensor1Settings) predCollision, predictVehID = applyPredictor(vData, sensor1Data, 'ego', 2.5, 3.5, trajectoryPredictor, trajectorySettings, egoPredictor, egoSettings) pred += [predCollision] predVehID += [predictVehID] result = scorePredictions(truth, truthVehID, pred, predVehID, display=False)
# # each parameter must have same number of options for maxCommunicationRange in l_maxCommunicationRange[1:]: options += [[letter,maxCommunicationRange,l_noiseLevel[0],l_angle[0]]] for noiseLevel in l_noiseLevel[1:]: options += [[letter,l_maxCommunicationRange[0],noiseLevel,l_angle[0]]] for angle in l_angle[1:]: options += [[letter,l_maxCommunicationRange[0],l_noiseLevel[0],angle]] for k in range(len(l_angle)): options += [[letter,l_maxCommunicationRange[k],l_noiseLevel[k],l_angle[k]]] for option in options: letter, maxCommunicationRange, noiseLevel, angle = option simName = "inter1l/" + letter outputName = "inter1l/" + letter outputName = outputName + "_" + str(int(maxCommunicationRange)) outputName = outputName + "_" + str(noiseLevel) + "_" + str(angle) terminalCall(['mkdir','-p',outputFolder+"/"+outputName]) for simIndex in range(nsims): inFile = inputFolder+"/"+simName+"/"+np.str(simIndex+1)+".csv" vdata = pd.read_table(inFile, sep=',') sensorTable = applySensor(vdata, vehicleIDtoSeek, sensorToUse, [noiseLevel, maxCommunicationRange, 0., angle], sensorToUse, [noiseLevel, 100., 0., 1.]) outFile = outputFolder+"/"+outputName+"/"+np.str(simIndex+1)+".csv" sensorTable.to_csv(outFile, index = False)
from subprocess import call as terminalCall from applySensor import applySensor #from constants import VState inputFolder = os.path.realpath("Results") outputFolder = os.path.realpath("Sensor Results") nsims = 30 sensorToUse = Sensors.DSRC #sensorToUse = Sensors.FrontRadar vehicleIDtoSeek = 'ego' for moveType in ['rtest']: for noiseLevel in [0., 1.]: simName = "rearEnd/" + moveType outputName = "rearEnd/" + moveType outputName = outputName + "_" + str(noiseLevel) terminalCall(['mkdir','-p',outputFolder+"/"+outputName]) for simIndex in range(nsims): inFile = inputFolder+"/"+simName+"/"+np.str(simIndex+1)+".csv" vdata = pd.read_table(inFile, sep=',') sensorTable = applySensor(vdata, vehicleIDtoSeek, sensorToUse, [noiseLevel, 200., 0.], sensorToUse, [noiseLevel, 200., 0.]) outFile = outputFolder+"/"+outputName+"/"+np.str(simIndex+1)+".csv" sensorTable.to_csv(outFile, index = False)
# create folder for results outputName = "V2Ilong" outputName = outputName + "_" + str(int(RSUspacing)) outputName = outputName + "_" + str(int(commdist)) if os.name == 'posix': # unix terminalCall(['mkdir','-p',outputFolder+"/"+outputName]) else: terminalCall(['mkdir',os.path.realpath(outputFolder+"/"+outputName)], shell=True) for simIndex in range(nsims): inFile = inputFolder+"/"+np.str(simIndex+1)+".csv" vdata = pd.read_table(inFile, sep=',') sensorTable = applySensor(vdata, 'Passing', Sensors.RSUarray, [RSUarray, 0., 0., commdist], Sensors.RSUarray, [RSUarray, 0., 0., commdist]) # sensorTable = applySensor(vdata, 'Passing', Sensors.DSRC, # [0., commdist, 0.], Sensors.IdealSensor, []) # startTable = applySensor(vdata.iloc[:3],'Passing', Sensors.DSRC, # [0.,590.,0.], # Sensors.IdealSensor, []) # sensorTable = pd.concat([startTable, sensorTable]) sensorTable.drop('y', axis=1, inplace=True) sensorTable.drop('angle', axis=1, inplace=True) sensorTable.columns = ['Time','Sender.ID','Position','Speed','Acceleration'] sensorTable['Time.Sent'] = sensorTable['Time'] outFile = outputFolder+"/"+outputName+"/"+np.str(simIndex+1)+".csv" sensorTable.to_csv(outFile, index = False) print "option complete"
from applySensor import applySensor #from constants import VState inputFolder = os.path.realpath("Results") outputFolder = os.path.realpath("Sensor Results") nsims = 30 sensorToUse = Sensors.DSRC #sensorToUse = Sensors.FrontRadar vehicleIDtoSeek = 'ego' for moveType in ['rtest']: for noiseLevel in [0., 1.]: simName = "rearEnd/" + moveType outputName = "rearEnd/" + moveType outputName = outputName + "_" + str(noiseLevel) terminalCall(['mkdir', '-p', outputFolder + "/" + outputName]) for simIndex in range(nsims): inFile = inputFolder + "/" + simName + "/" + np.str(simIndex + 1) + ".csv" vdata = pd.read_table(inFile, sep=',') sensorTable = applySensor(vdata, vehicleIDtoSeek, sensorToUse, [noiseLevel, 200., 0.], sensorToUse, [noiseLevel, 200., 0.]) outFile = outputFolder + "/" + outputName + "/" + np.str( simIndex + 1) + ".csv" sensorTable.to_csv(outFile, index=False)
options += [[ letter, l_maxCommunicationRange[0], l_noiseLevel[0], angle ]] for k in range(len(l_angle)): options += [[ letter, l_maxCommunicationRange[k], l_noiseLevel[k], l_angle[k] ]] for option in options: letter, maxCommunicationRange, noiseLevel, angle = option simName = "inter1l/" + letter outputName = "inter1l/" + letter outputName = outputName + "_" + str(int(maxCommunicationRange)) outputName = outputName + "_" + str(noiseLevel) + "_" + str(angle) terminalCall(['mkdir', '-p', outputFolder + "/" + outputName]) for simIndex in range(nsims): inFile = inputFolder + "/" + simName + "/" + np.str(simIndex + 1) + ".csv" vdata = pd.read_table(inFile, sep=',') sensorTable = applySensor( vdata, vehicleIDtoSeek, sensorToUse, [noiseLevel, maxCommunicationRange, 0., angle], sensorToUse, [noiseLevel, 100., 0., 1.]) outFile = outputFolder + "/" + outputName + "/" + np.str(simIndex + 1) + ".csv" sensorTable.to_csv(outFile, index=False)
truth = paramTruth["Collision Time"].tolist() truthVehID = paramTruth["Colliding Vehicle"].tolist() for predind in range(len(trajectory1Predictors)): trajectoryPredictor = trajectory1Predictors[predind] trajectorySettings = trajectory1Settings[predind] egoPredictor = ego1Predictors[predind] egoSettings = ego1Settings[predind] pred = [] predVehID = [] for simIndex in range(nsims): inFile = vehicleFolder+"/"+simName+"/"+np.str(simIndex+1)+".csv" vData = pd.read_table(inFile, sep=',') sensor1Data = applySensor(vData, vehicleIDtoSeek, sensor1, sensor1Settings, egoSensor1, egoSensor1Settings) predCollision, predictVehID = applyPredictor(vData, sensor1Data, 'ego', 2.5, 3.5, trajectoryPredictor, trajectorySettings, egoPredictor, egoSettings) pred += [predCollision] predVehID += [predictVehID] result = scorePredictions(truth, truthVehID, pred, predVehID, display=False) results.add(['DSRC',trajectoryNames[predind]]+result) for predind in range(len(trajectory2Predictors)):