Allgemein

Datenhaltung bei aktivitätenbasierten Nachfragemodellen

Fabio Cachaco | 30. August 2021

Aktivitätenbasierte Verkehrsmodelle (ABM) bieten gegenüber dem konventionellen 4-Stufen-Ansatz praxisrelevante Vorteile, insbesondere zur Evaluation der Wirkung von zeitlich und räumlich differenzierten Massnahmen wie Mobility Pricing oder nachfrageorientiere Verkehrsangebote wie zum Beispiel Ride Pooling oder geteilte Fahrzeuge. Das Fehlen einer Software mit GUI war bisher eine der zentralen Herausforderungen, welche eine breite Verwendung von ABM in der Praxis verhindert hat. Seit 2020 bietet die Verkehrsplanungssoftware PTV Visum, die in der europäischen Praxis weit verbreitet ist, Funktionalitäten für die aktivitätenbasierten Nachfragemodellierung an. Dieser Blogeintrag beschreibt die im Rahmen einer Seminararbeit gemachten Erfahrungen beim Import einer bestehenden aktivitätenbasierten Nachfrage in das von PTV Visum vorgegebene Datenmodell. 

Wie sieht eine agentenbasierte Verkehrssimulation aus? 

Video des aktivitäten- und agenten-basierten Verkehrsmodells Basel (erstellt in Zusammenarbeit www.ase.ch und SBB) 

Aktivitätenbasierende Nachfragemodelle 

Grundidee der aktivitätenbasierten Verkehrsmodellierung (ABM) ist, dass Menschen ein Bedürfnis haben Aktivitäten auszuführen, die an verschiedenen Orten im Raum verteilt sind, und sich dadurch das Bedürfnis nach Mobilität ableitet. Meistens bedarf es zur Ausübung einer Aktivität einer Ortsveränderung, wodurch Verkehr entsteht.  

Die Modellierung dieses Verkehrs erfolgt bei ABM auf Ebene einzelner Personen (sog. Agenten). Damit gehen weitreichende Auswertungsmöglichkeiten einher. Durch das Modellieren der Aktivitäten jeder Einzelperson im Tagesablauf, können bspw. tageszeitabhängige Fragestellungen zur Auslastung und Wirkung von Velo- und Autoverleihsysteme untersucht werden. Beim ÖV bietet der Modellansatz den Vorteil, dass auch Fahrzeugbesetzungsgrade und deren Wechselwirkung auf das Verkehrsverhalten abgebildet werden können. Mit ABM können aber auch von den 4-Stufen-Modellen bekannten Auswertungen, wie z.B. Strassennetz-Belastungen erstellt und ausgewertet werden. 

Die Modellstruktur eines ABM unterscheidet sich zu herkömmlichen aggregierten Nachfragemodellen (vgl. Bild 1). Bei Letzteren wird die Verkehrsnachfrage anhand von Verkehrszellen beschrieben. Demgegenüber setzen ABM eine auf Personenebene disaggregierte Beschreibung der Bevölkerung voraus. Dazu wird zunächst auf Basis geeigneter Einzeldaten (z.B. Mikrozensus Verkehr und Mobilität) und Angaben zur räumlichen Verteilung von Bevölkerungsgruppen (z.B. BFS STATPOP) eine synthetische Population generiert. Dieses künstliches Abbild der Bevölkerung ist bezüglich der Personen- und Haushaltsstruktur und deren räumlichen Verteilung für die tatsächliche Bevölkerung repräsentativ, umfasst aber keine Einzeldaten zu real existierenden Personen. In einem zweiten Schritt wird dann basierend auf Daten von Aktivitäts- und Wegetagebuchbefragungen sowie Daten zum Verkehrsangebot und der räumlichen Verteilung von Aktivitätsgelegenheiten, wie z.B. Arbeitsplätzen, die aktivitätsbasierte Verkehrsnachfrage erstellt. Die Ergebnisse dieser Schritte lagen für diese Seminararbeit bereits aus einem angewandten Forschungsprojekt vor.

Vor der Verwendung von Daten sollten diese überprüft werden. Damit können bspw. unvollständige Daten frühzeitig erkannt werden. Aus diesem Grund erfolgt in einem ersten Schritt eine Analyse der vorliegenden Daten. In einem zweiten Schritt wird ein Entity Relationship Diagram erstellt, welches das von PTV Visum vorgesehene Datenmodell für aktivitätenbasierte Nachfragemodelle aufzeigt. Diese Schritte bilden die konzeptionelle Basis, um später den optimalen Ablauf der Datenüberführung und die dazugehörenden Methoden in Python festlegen zu können. 

Bild 1: Vergleich der Struktur von makroskopischen und aktivitäten-/agentenbasierten Verkehrsmodellen 

Datenhaltung und -modifizierung in Python 

Es gibt eine Vielzahl von Programmieroberflächen (engl. integrated development environment (IDE)), beispielsweise Microsoft Visual Studio, Spyder, Visual Studio Code, PyCharm, NetBeans oder auch JupyterLab. Die Entwicklung von Skripten kann grundsätzlich in verschiedenen Umgebungen erfolgen. PTV Visum selbst stellt dazu innerhalb der Software eine Python-Console zur Verfügung. Die Nutzung dieser Python-Console ist aber mit mehreren Nachteilen, wie fehlende Code-Korrektur oder einer nur beschränkt anwenderfreundlichen Programmieroberfläche verbunden. 

Für die Entwicklung des Codes ist die Wahl auf JupyterLab gefallen, da über die Schnittstelle Win32COM die Codevervollständigung (code completion) für von PTV Visum zur Verfügung gestellten Klassen und Funktionen eingerichtet werden konnte und bereits Vorkenntnisse vorhanden waren (vgl. Bild 2). Jupyter-Notebook ist eine web-basierte Bedienoberfläche, um Code zu entwickeln und auszuführen. 

Bild 2: Ausschnitt aus dem Jupyter-Notebook 

Vorgehen zur Überführung der Daten von MATSim-Plänen 

Der Aufbau und die Reihenfolge der einzelnen Codebausteine orientiert sich an der Modellstruktur von PTV Visum. Die jeweiligen Schritte im Code sind auskommentiert. Dadurch wird der Code auch für weitere Nutzerinnen und Nutzer verständlich. Wird ein Attribut wie bspw. das Geschlecht über die COM-Schnittstelle in das PTV Visum Modell geladen, so ist das ein isolierter Schritt, der einzeln ausgeführt werden kann (Block). Die Überführung der ABM-Nachfrage aus dem MATSim-Plänen erfolgt grob in folgenden Schritten: 

  1. CSV-Datei in Jupyter importieren 
  1. Daten auf Auffälligkeiten prüfen und ggf. bereinigen 
  1. Datensatz mit weiteren zusätzlichen Spalten versehen (Kombinationen) oder bestehende Werte aus Spalten in einen anderen Datentyp umwandeln 
  1. Attribut / Spezifikation in PTV Visum definieren bzw. anlegen 
  1. Daten in vordefiniertes Attribut oder Spezifikation abfüllen 
  1. Punkt 4 und 5 wiederholen, bis alle benötigten Daten im Visum Modell integriert sind 

Ist eine Fehlermeldung aufgetreten, gab es zwei übergeordnete Fehlerquellen. Entweder lag das Problem in der Python Syntax oder es war ein COM-Fehler. Bei letzterem kam vor, dass gewisse Datentypen beispielweise nicht vom COM-API akzeptiert wurden. Fehler innerhalb der Python Syntax konnten meist mithilfe von Internetrecherchen z. B. auf Stack Overflow, einer Internetplattform, welche sich an Softwareentwickler richtet, behoben werden. 

Ergebnisse und Erkenntnisse 

Die erhaltenen Daten der MATSim-Pläne konnten weitestgehend in Visum überführt werden. In Zahlen ausgedrückt: 10.5 Millionen Aktivitäten, 1.2 Million Personen und rund 660’000 Standorte (vgl. Bild 3), zwischen denen die Personen bzw. Agenten täglich verkehren. Die Rechendauer für das Einlesen dieser Daten in PTV Visum betrug mit einem aktuellen Laptop (4 Kerne, Intel i7 8665U 1.9 Ghz Prozessor, 24 Gb RAM) betrug rund 90 Sekunden. 

Der Gesamtaufwand für die Seminararbeit betrug rund 100 Stunden, inkl. Einarbeitung in die Thematik. Der Aufwand zur Überführung der Verkehrsnachfragedaten liegt also auch ohne vorherige und v. a. nicht weitreichende Kenntnisse der Programmiersprache Python sich in einem vernünftigen Rahmen. Dies zeigt, dass die Lernkurve zum Umgang mit den neuen Funktionalitäten zur Nutzung und dem Aufbau von aktivitätenbasierten Nachfragemodellierung der Software PTV Visum ansprechend ist und die Software somit ein hohes Potenzial bietet eine der bisherigen Herausforderungen beim Einsatzes von ABM in der Praxis zu überwinden.  

Bild 3: Darstellung aller in der Umgebung von Basel integrierten Standorte in Visum 
zurück zu allen Beiträgen

Kommentare

Keine Kommentare erfasst zu Datenhaltung bei aktivitätenbasierten Nachfragemodellen

Neuer Kommentar

×