Verwendung von Busreisezeiten aus einer dynamischen Simulation in einer ÖPNV-Verzögerungsfunktion für die Transitzuweisung

Technischer Hinweis #8

Januar 2015

Stell dir vor, du hast eine dynamische Simulation (Meso-, Mikro- oder Hybrid-Simulation) durchgeführt, die dir genaue Fahrzeiten für Transitfahrzeuge liefert, die Staus, reservierte Fahrspuren, Signale und Algorithmen zur Transitpriorisierung berücksichtigen. Wäre es nicht schön, diese Informationen zu nutzen, um eine genauere Schätzung der Fahrzeit von Haltestelle zu Haltestelle in einem makroskopischen Transitauftrag zu erhalten?

Dank der integrierten Modellierungsumgebung von Aimsun ist dies möglich. Du musst nur eine ÖPNV-Verspätungsfunktion schreiben, die die Busfahrzeit aus der von der dynamischen Simulation erzeugten Zeitreihe liest.


Zuordnung öffentlicher Verkehr

Zum Beispiel:

costCol = None
def pdf( context, line, ptsection ):
	global costCol
	if costCol == None:
		model = ptsection.getModel()
		vehicleType = model.getType("GKVehicle")
		vehicleId = model.getCatalog().findByName("Bus", vehicleType).getId()
		costCol = model.getColumn("DYNAMIC::SRC_GKSection_travelTime_%i" % vehicleId)
	res = 0.0
	fromStop = ptsection.getMaster().getOrigin()
	if fromStop != None:
		sectionLength = fromSection.length2D()
		fromSection = fromStop.getSection()
		fromFraction = (sectionLength - fromStop.getPosition()) / sectionLength
	else:
		fromSection = None
	toStop = ptsection.getMaster().getDestination()
	if toStop != None:
		toSection = toStop.getSection()
		toFraction = toStop.getPosition() / toSection.length2D()
	else:
		toSection = None
	for section in ptsection.getMaster().getRoute():
		fraction = 1.0
		if fromSection != None and section.getId() == fromSection.getId():
			fraction = fromFraction
		elif toSection != None and section.getId() == toSection.getId():
			fraction = toFraction
		ts = section.getDataValueTS(costCol)
		if ts != None:
			res += ts.getAggregatedValue()/60 * fraction
	if res == 0.0:
		print "No dynamic cost for PT Section %i" % ptsection.getId()
		res = 60.0 * ptsection.getDistance()/1000.0 / 20.0 #km/h
	return res
 

Die Funktion liest die Fahrzeit der letzten Simulation für den Busfahrzeugtyp aus dem Abschnitt. Da die Kosten für die ÖPNV-Zuordnung für ÖPNV-Abschnitte ausgedrückt werden, d.h. für Haltestellen-Segmente, addiert sie diese für alle Abschnitte zwischen den Haltestellen und berechnet einen Bruchteil für den ersten und letzten Abschnitt, abhängig von der Position der Bushaltestellen.

Eine wichtige Anwendung dieses Ansatzes ist die Abschätzung der Auswirkung auf die Verteilung und den Modussplit von betrieblichen Änderungen am Transitsystem, wie z.B. die Einführung von Signalpriorität und reservierten Fahrspuren entlang eines Korridors.

  • Hast du eine Frage? Nimm Kontakt auf.

    Wir sind hier um zu helfen!

  • Hast du eine Frage? Nimm Kontakt auf.

    Wir sind hier um zu helfen!

TEILEN