Datenstruktur

Veröffentlichungsdatum

3. Februar 2026

Recherche

Datenschnittstellen und Normen

Kurzer Überblick über projektrelevante Datenschnittstellen und Normen im ÖPNV:

  • VDV452: VDV-Standardschnittstelle Liniennetz/Fahrplan
  • DIN ISO 15118: Straßenfahrzeuge: Kommunikation zwischen Fahrzeug und Ladestation
  • VDV261: Empfehlung zur Anbindung eines dispositiven Backend an einen Elektrobus, ergänzend zur ISO-Norm 15118
  • VDV463: Ist-Daten-Schnittstelle Lademanagement
  • VDV260: E-Bus – Infrastruktur/Ladestellen
  • VDV230: Rahmenempfehlung für elektrisch betriebene Stadt-Niederflur-Linienbusse
  • Open Charge Point Protocol (OCPP): Kommunikationsprotokoll zwischen Ladestationen und Backend-Systemen

Hier ein Auszug aus der VDV 463, um die Struktur besser zu verstehen:

Abbildung 1: VDV 463, Quelle: VDV

Software-Hersteller

Hier eine Liste von Software-Herstellern im Bereich Disposition, Monitoring, Lademanagement, Fahrermanagement, Planung/Simulation etc.:

Motivation

Busbetreiber haben meist unterschiedliche Hersteller für unterschiedlich Systeme, und nicht jeder Hersteller hat schon alle Schnittstellen implementiert. Teilweise haben Anbieter von Teilsystemen auch eigene interne Schnittstellen. So haben Busbetreiber meist unterschiedliche Datenformate und Datenstrukturen für ihre Plandaten, dazu kommen noch unterschiedlich strukturierte Monitoring-Daten. Eine OpenSource-Software, die alle Schnittstellen implementiert hat und dadurch als gute Grundlage für ein Planungstool dienen kann, ist uns nicht bekannt.

Im Projekt FreeE-Bus wurde daher eine offene Datenstruktur entwickelt, die für unsere Analysen und Optimierungen angepasst und unabhängig von der verwendeten Softwarelösung beim ÖPNV-Betreiber ist. Wir haben i. d. R. einen Export der Plandaten und Monitoring Daten von den Betreibern bekommen und diese in unsere eigene Datenstruktur transformiert. Das SimBA-Tool, des RL-Instituts in Berlin, hat einen ähnlichen Ansatz umgesetzt, jedoch anders strukturiert.

Grafische Übersicht

In der folgenden Abbildung sind alle Ein- und Ausgangsgrößen einem beispielhaften Schema zugeordnet, um das System darzustellen.

EBusWebsite-interactive_overview

Eingangsgrößen

Die Eingangsgrößen bilden die Grundlage für alle Analysen und Optimierungen. Die Qualität und der Umfang dieser Größen entscheiden haben einen direkten Einfluss auf die Ergebnisse. Zu den in dargestellten Größen gehören die Ladeinfrastruktur, Fahrzeugdaten, sowie ein Fahrplan. Darüber hinaus können optionale Eingangsgrößen für bestimmte Analysen genutzt werden.

EBusWebsite-Eingangsgroessen_kompakt

Alle abgebildeten Eingangsgrößen liegen als separate csv-Datei vor. Das hat den Vorteil, keine duplizierten Informationen zu enthalten. Über die jeweilige ID können die Eingangsgrößen miteinander verknüpft werden.

Konfiguration

Die Konfiguration dient dazu, einen Datensatz bzw. ein Szenario auszuwählen. Dazu wurde eine Struktur als json-Datei entwickelt. Diese liegt optional als zusätzliche Eingangsgröße vor. Die Datei beschreibt die Konfiguration der Analyse und wird notwendigerweise zu den Ausgangsgrößen abgelegt, um Szenarien reproduzierbar und verständlich zu machen. Über die Konfiguration wird beispielsweise der Optimierungs- bzw. Simulationshorizont bestimmt, Start- und End-SoCs gesetzt oder eine Auswahl der Eingangsgrößen getroffen.

Im Folgenden ist diese Struktur beispielhaft dargestellt:

{
    "data config": {
        "input directories": [
            "data/template/system_1/input/default",
            "data/template/system_1/input/scenario_1",
            "data/template/system_1/input/scenario_2"
        ],
        "output directories": [
            "data/template/system_1/output/analysis_1/default",
            "data/template/system_1/output/analysis_1/scenario_1",
            "data/template/system_1/output/analysis_1/scenario_2"
        ],
        "input overwrites": {
            "vehicle_types.csv": {
                "spec_total_consumption": {
                    "<vehicle_type_ID1>": 0.8,
                    "<vehicle_type_ID2>": 1.0
                }
            }
        },
        "input selection": {
            "schedules.csv": {
                "ID": [
                    "1",
                    "2"
                ],
                "start_day": [
                    "2024-01-08"
                ]
            },
            "time window": {
                "start": "2024-04-01 00:00:00",
                "end": "2024-04-02 23:59:59"
            },
            "charging time window": {
                "setup time": 5,
                "setdown time": 5,
                "minimum charging time": 5
            }
        },
        "input deselection": {
            "schedules.csv": {
                "ID": [
                    "1",
                    "2"
                ]
            }
        }
    },
    "algorithm": {
        "name": "Template Algorithm",
        "description": "This algorithm computes...",
        "reproducible execution": {
            "command working directory": "code/python/...",
            "command line": "<ABSOLUTE_PATH_TO>/analysis.json"
        },
        "parameters": {
            "objective": "minimize costs",
            "boundary conditions": {
                "initial conditions": {
                    "SOC_rel": {
                        "overwrite": {
                            "bus1": 80.0,
                            "bus2": 50.0
                        },
                        "default": 100.0
                    }
                },
                "permanent conditions": {
                    "minimum_SOC_rel": {
                        "overwrite": {
                            "bus1": 20.0,
                            "bus2": 10.0
                        },
                        "default": 50.0
                    }
                },
                "final conditions": {
                    "minimum_SOC_rel": {
                        "overwrite": {
                            "bus1": 50.0,
                            "bus2": 50.0
                        },
                        "default": 20.0
                    }
                }
            }
        }
    },
    "analysis date": "2024-06-27 11:02:37"
}

Ausgangsgrößen

Die Simulationen und Optimierungen liefern strukturierte Ausgangsgrößen. Diese sind die Grundlage für anschließende Analysen und Darstellungen. Sie liegen ebenfalls in einer definierten Struktur als csv Daten vor.

EBusWebsite-Ausgangsgroessen_kompakt

Einheiten

Die Ein- und Ausgangsgrößen haben definierte Einheiten und Datentypen. In folgender Tabelle sind diese dargestellt und beschrieben.

Name Beschreibung Einheit Datentyp
ID eindeutige ID ohne Leerzeichen string
battery_capacity Batteriekapazität eines Fahrzeugs kWh float
charging_power_max maximale Ladeleistung eines Fahrzeugs kW float
charging_power_min minimale Ladeleistung eines Fahrzeugs kW float
consumption_per_km spezifischer Energiebedarf eines Fahrzeugs kWh/km float
consumption_per_h zeitabhängiger Energiebedarf eines Fahrzeugs kW/h float
vehicle_length Fahrzeuglänge string
charging_curve_ID ID einer Ladekurve string
tour_ID ID einer Tour string
start_time Startzeitpunkt datetime
start_location_ID End-Standort-ID des Trip string
end_time Endzeitpunkt datetime
end_location_ID End-Standort-ID des Trip string
length Länge eines Trips km float
start_day Starttag eines schedules (Zuordnung vehicle zu tour) date date
energy_price_buy Energieeinkaufspreis in Geldeinheit/kWh Geldeinheit/kWh float
energy_price_sell Energieverkaufspreis in Geldeinheit/kWh Geldeinheit/kWh float
power_price Leistungspreis in Geldeinheit/kW Geldeinheit/kW float
vehicle_type_ID ID eines Fahrzeugtyps string
trip_ID ID eines Trips string
consumption_total Gesamtenergiebedarf eines bestimmten Fahrzeugtyps auf einem bestimmten Trip kWh float
consumption_driving Energiebedarf des Antriebs eines bestimmten Fahrzeugtyps auf einem bestimmten Trip kWh float
consumption_heating Energiebedarf der Heizung eines bestimmten Fahrzeugtyps auf einem bestimmten Trip kWh float
consumption_cooling Energiebedarf der Klimaanlage eines bestimmten Fahrzeugtyps auf einem bestimmten Trip kWh float
consumption_others Zusätzlicher Energiebedarf eines bestimmten Fahrzeugtyps auf einem bestimmten Trip kWh float
SOC_rel relativer Ladezustand: 0 bei 0 kWh und 100 bei battery_capacity % float
SOC_abs absoluter Ladezustand: zwischen 0 kWh und battery_capacity kWh float
grid_node_ID ID eines Netzknotens vom Netzbetreiber string
substation_ID ID einer Umspannanlage vom Netzbetreiber string
efficiency Wirkungsgrad der Hardware float
power_factor Leistungsfaktor der Ladestation float
power Leistung kW float
duration Zeitspanne min float