Example #1
0
def getvehicleAttribs(sncfFileName):
	'''
Function that returns the value of the meta-data of the vehicle attribute. getvehicleAttribs(sncfFileName)[1] returns the vehicle type ID.
	'''
	vehicleBuff=[]
	vehicleBet=strutils.betweenHeaders('@start_vehID_({uID,vTypeID,routeID,[R G B],entryTime,entryLane,entryPtPos,entrySpeed,exitLane,exitPos,exitSpeed,line})','@end_vehID',sncfFileName)
	lenBuff=len(vehicleBet)
	for itr in range(0,lenBuff):
		buffInBet=strutils.whatsInBetween('{','}',vehicleBet[itr])
		vehicleBuff.append(buffInBet.split(','))
	return vehicleBuff
Example #2
0
def getvehicleColor(sncfFileName):
	'''
Function that returns the color triad of vehicle attribute.
	'''
	listFinal=[]
	lenAttribs=len(getvehicleAttribs(sncfFileName))
	for itr in range(0,lenAttribs):
		buffAttribs=getvehicleAttribs(sncfFileName)[itr][3]
		inResult=strutils.whatsInBetween('[',']',buffAttribs)
		listFinal.append(inResult.replace(' ',','))
	return listFinal
Example #3
0
def getrouteEntryAttribs(sncfFileName):
	'''
Function that returns the value of the meta-data of the routeEntry attribute. getrouteEntryAttribs(sncfFileName)[1] returns the color triad value.
	'''
	routeBuff=[]
	routeEntryBet=strutils.betweenHeaders('@start_routeentry_({routeID,[R G B],[edgName_a edgName_b edgName_c  edgName_n]})','@end_routeentry',sncfFileName)
	lenBuff=len(routeEntryBet)
	for itr in range(0,lenBuff):
		buffInBet=strutils.whatsInBetween('{','}',routeEntryBet[itr])
		routeBuff.append(buffInBet.split(','))
	return routeBuff
Example #4
0
def getvTypeAttribs(sncfFileName):
	'''
Function that returns the value of the meta-data of the vType attribute. There are 18 meta-data variables.
Hence, getvTypeAttribs(sncfFileName)[1] returns the acceleration value 'accel'.
	'''
	vTypeBuff=[]
	vTypeBet=strutils.betweenHeaders('@start_vTypeID_({vTypeID,accel,decel,sigma,tau,length,minGap,maxSpeed,speedFactor,speedDev,[R G B],vClass,emissionClass,guiShape,width,imgFile,impatience,laneChangeModel})','@end_vTypeID',sncfFileName)
	lenBuff=len(vTypeBet)
	for itr in range(0,lenBuff):
		buffInBet=strutils.whatsInBetween('{','}',vTypeBet[itr])
		vTypeBuff.append(buffInBet.split(','))
	return vTypeBuff
Example #5
0
def getvectEdgeNames(sncfFileName):
	'''
Function that returns the edge names used in the route attributes as an alphabetically sorted vector. 
	'''
	instrList=[]
	sepList2d=[]
	vectorEdgeNames=[]
	edgeNames=getroute_edgeName(sncfFileName)
	# Gets the string in between the [ and ]
	for itr in range(0,len(getroute_edgeName(sncfFileName))):
		instrList.append(strutils.whatsInBetween('[',']',edgeNames[itr]))
	# Gets the 2d list of the strings separated by spaces
	for itr in range(0,len(getroute_edgeName(sncfFileName))):
		edgeName2d=instrList[itr]
		sepList2d.append(edgeName2d.split(' '))
	# This part does the vectorisation part. Examines every element in the 2d array.
	for itr in range(0,len(sepList2d)):
		# Get the length of each element in the 2d array to sort of dynamically adjust the iteration counter
		len_sepList2d=len(sepList2d[itr])
		for jtr in range(0,len_sepList2d):
			# Dynamically adjusted iteration and store the result in a vector. Done!
			vectorEdgeNames.append(sepList2d[itr][jtr])
	return vectorEdgeNames
Example #6
0
def writeRoute(sncfFileName,outputFileName):
	'''
Function that writes the *.rou.xml file from an existing sncf file sncfFileName.
	'''
	
	if dependencychecker.depChecker(sncfFileName)==True:
		# Initial setup
		# Routes start and end
		routesStart='''<?xml version="1.0" encoding="UTF-8"?>
<routes>'''
		routesEnd='</routes>'
		# vType start and end
		vTypeID='<vType id=\"'
		vTypeAccel='\" accel=\"'
		vTypeDecel='\" decel=\"'
		vTypeSigma='\" sigma=\"'
		vTypeTau='\" tau=\"'
		vTypeLength='\" length=\"'
		vTypeminGap='\" minGap=\"'
		vTypemaxSpeed='\" maxSpeed=\"'
		vTypespeedFactor='\" speedFactor=\"'
		vTypespeedDev='\" speedDev=\"'
		vTypecolor='\" color=\"'
		vTypevClass='\" vClass=\"'
		vTypeemissionClass='\" emissionClass=\"'
		vTypeguiShape='\" guiShape=\"'
		vTypewidth='\" width=\"'
		vTypeimgFile='\" imgFile=\"'
		vTypeimpatience='\" impatience=\"'
		vTypelaneChangeModel='\" laneChangeModel=\"'
		vTypeEnd='\" />'
		# route start and end
		routeID='<route id=\"'
		routeColor='\" color=\"'
		routeEdges='\" edges=\"'
		routeEnd='\" />'
		# vehicle start and end
		vehicleID='< vehicle id=\"'
		vehicleType='\" type=\"'
		vehicleRoute='\" route=\"'
		vehicleColor='\" color=\"'
		vehicleDepart='\" depart=\"'
		vehicledepartLane='\" departLane=\"'
		vehicledepartPos='\" departPos=\"'
		vehicledepartSpeed='\" departSpeed=\"'
		vehiclearrivalLane='\" arrivalLane=\"'
		vehiclearrivalPos='\" arrivalPos=\"'
		vehiclearrivalSpeed='\" arrivalSpeed=\"'
		vehicleline='\" line=\"'
		vehicleEnd='\" />'
		lenVtype=len(getattribs.getvTypeAttribs(sncfFileName))
		lenRoute=len(getattribs.getrouteEntryAttribs(sncfFileName))
		lenVehicle=len(getattribs.getvehicleAttribs(sncfFileName))
		# Begin writing the file
		try:
			fileHandler=open(outputFileName,'w')
			fileHandler.write(routesStart+sncfheaders.printNew())
			# Returns the list containing vType values.
			vType=getattribs.getvTypeDefaults(sncfFileName)
			for itr in range(0,lenVtype):
				vTypeWrite=vTypeID+vType[itr][0]+vTypeAccel+vType[itr][1]+vTypeDecel+vType[itr][2]+vTypeSigma+vType[itr][3]+vTypeTau+vType[itr][4]+vTypeLength+vType[itr][5]+vTypeminGap+vType[itr][6]+vTypemaxSpeed+vType[itr][7]+vTypespeedFactor+vType[itr][8]+vTypespeedDev+vType[itr][9]+vTypecolor+getattribs.getvTypeColor(sncfFileName)[itr]+vTypevClass+vType[itr][11]+vTypeemissionClass+vType[itr][12]+vTypeguiShape+vType[itr][13]+vTypewidth+vType[itr][14]+vTypeimgFile+vType[itr][15]+vTypeimpatience+vType[itr][16]+vTypelaneChangeModel+vType[itr][17]+vTypeEnd+sncfheaders.printNew()
				fileHandler.write(vTypeWrite)
				# Returns the list containing route entry values.
			routeEntry=getattribs.getrouteEntryAttribs(sncfFileName)
			for itr in range(0,lenRoute):
				routeWrite=routeID+routeEntry[itr][0]+routeColor+getattribs.getrouteColor(sncfFileName)[itr]+routeEdges+strutils.whatsInBetween('[',']',getattribs.getroute_edgeName(sncfFileName)[itr])+routeEnd+sncfheaders.printNew()
				fileHandler.write(routeWrite)
				# Returns the list containing vehicle values.
			vehicle=getattribs.getvehicleAttribs(sncfFileName)
			for itr in range(0,lenVehicle):
				vehicleWrite=vehicleID+vehicle[itr][0]+vehicleType+vehicle[itr][1]+vehicleRoute+vehicle[itr][2]+vehicleColor+getattribs.getvehicleColor(sncfFileName)[itr]+vehicleDepart+vehicle[itr][4]+vehicledepartLane+vehicle[itr][5]+vehicledepartPos+vehicle[itr][6]+vehicledepartSpeed+vehicle[itr][7]+vehiclearrivalLane+vehicle[itr][8]+vehiclearrivalPos+vehicle[itr][9]+vehiclearrivalSpeed+vehicle[itr][10]+vehicleline+vehicle[itr][11]+vehicleEnd+sncfheaders.printNew()
				fileHandler.write(vehicleWrite)
			fileHandler.write(routesEnd+sncfheaders.printNew())
			fileHandler.close()
			print'''
[writeRoute says]:The route file %s has been written to the location %s.
			'''%(outputFileName,os.getcwd())
		except IOError,WindowsError:
			print'''
[writeRoute says]:Error! Could not open the file %s for writing. Check the administrative rights or check if the location exists.
			'''%(outputFileName)