Schienenverkehr (1A3c)¶
Bemerkung
This project and documentation is under active development!
Das Schienenverkehrsmodul in TREMOD berechnet Energieverbrauch, Treibhausgas- (THG) und Luftschadstoffemissionen des Schienenverkehrs in Deutschland für den Zeitraum 1960–2050. Es umfasst:
Personenfern- und -nahverkehr (z. B. ICE, Regionalzüge, S-Bahnen, U-Bahnen)
Güterverkehr (inkl. Rangierbetrieb)
Verkehrsleistungen (Personen- und Tonnenkilometer)
Betriebsleistungen (Zugkilometer)
Energieverbrauch (Strom, Diesel, Biodiesel, Festbrennstoffe wie Kohle in historischen Daten)
Direkte Abgasemissionen sowie Vorkettenemissionen für verschiedene Schadstoffe (z. B. NOₓ, CO₂, PM, SO₂).
1. Methodik¶
Die Berechnung basiert auf einem Bottom-up-Ansatz, bei dem Emissionen aus Verkehrsleistungen, Betriebsleistungen und spezifischen Emissionsfaktoren abgeleitet werden. Die Datenquellen umfassen Statistiken des Statistischen Bundesamts (DESTATIS), des Verbands Deutscher Verkehrsunternehmen (VDV) und der DB AG (u. a. Rail Environment Centre).
Die Eingangsdaten setzen sich zusammen aus:
Verkehrs- und Betriebsleistungen (z. B. Personenkilometer, Tonnenkilometer, Zugkilometer), die jährlich von DB AG und VDV erhoben und für TREMOD aufbereitet werden.
Energieverbrauch, differenziert nach Strom (für elektrifizierte Strecken) und Diesel (für Nicht-E-Strecken) sowie historischen Brennstoffen wie Kohle.
Emissionsfaktoren:
Für elektrischen Betrieb hängt der Faktor vom Jahresmittelwert des deutschen Strommix ab, inklusive Vorkettenemissionen (z. B. durch Stromerzeugung).
Für Dieselzüge basieren die Faktoren auf spezifischen Werten der Bahn, die im ISO-F-Zyklus gemessen und vom DB-Umweltzentrum jährlich bereitgestellt werden.
Die Aktualisierung erfolgt jährlich durch Anpassung der Leistungsdaten (z. B. durch DB AG oder VDV-Erhebungen) sowie der Verbrauchs- und Emissionsfaktoren. Für die Prognose bis 2050 werden Trendszenarien verwendet, die technologische Fortschritte (z. B. strengere Abgasgrenzwerte, Remotorisierung) und die Entwicklung des Fahrzeugparks berücksichtigen.
Die Einzelschritte werden im folgenden beschrieben. Die verwendeten Rechengrößen sind in folgender Tabelle dargestellt:
Größen
Symbol |
Spaltenvariable |
Bedeutung |
|---|---|---|
\(E^{\text{dir}}\) |
|
Direkter Energieverbrauch bzw. direkte Basisemission |
\(E\) |
|
Resultierende Emission je Schadstoff |
\(\mathit{vl}\) |
|
Verkehrsleistung |
\(\mathit{vlanteil}\) |
|
Anteil der Verkehrsleistung |
\(\mathit{baanteil}\) |
|
Anteil der Betriebsart |
\(\mathit{alg}\) |
|
Auslastungsgrad |
\(\mathit{bl}\) |
|
Betriebsleistung |
\(\mathit{evspez}\) |
|
spezifischer Energieverbrauch |
\(\mathit{aendfaktor}\) |
|
Änderungsfaktor (Energieverbrauch) |
\(\mathit{efa}\) |
|
Emissionsfaktor |
\(\mathit{emaendfaktor}\) |
|
Änderungsfaktor (Emissionsfaktor) |
\(\alpha^{\mathrm{hc}}\) |
|
HC-Speziesanteil (NMHC-Differenzierung) |
\(\alpha^{\mathrm{bio}}\) |
|
Biokraftstoffanteil |
\(\mathit{efaspez\_tj}\) |
|
spezifischer treibstoffabgeleiteter Emissionsfaktor |
\(\mathit{factor}\) |
|
THG-/CO₂-Äquivalenzfaktor |
\(\mathit{bc\_share}\) |
|
Black-Carbon-Anteil an PM (Default 0,65) |
Bemerkung
Für die Leistungsart-Fallunterscheidung gilt \(\mathit{vl}, \mathit{bl} = 0\), wenn \(l = 2\) (sonst die berechneten Werte).
Komponenten/Betriebsarten mit Nullemission (DZE) setzen \(E = 0\) für die betroffenen Kombinationen aus \(s, b, n\).
Die Skalierungen \(10^{6}\) und \(10^{3}\) ergeben sich aus der Einheitenumrechnung der jeweiligen Faktoren.
1.1 Betriebsleistung und Energieverbrauch¶
Zunächst werden Verkehrsleistung (vl) und Betriebsleistung (bl) auf Zugbetriebs- und Rangierebene berechnet, anschließend der direkte Energieverbrauch. Die Verkehrsleistung wird nach Zuggattungen (z. B. ICE, Regionalzug, Güterzug) und Betriebsarten (z. B. Zugbetrieb, Rangieren) differenziert. Die Betriebsleistung (z. B. Zugkilometer) ergibt sich aus der Verkehrsleistung, geteilt durch die mittlere Beladung (alg), d.h. Personen bzw. Tonnen pro Zug.
Zugbetrieb (Leistungsart 1)
Für den Zugbetrieb wird die Verkehrsleistung direkt aus den Eingangsdaten abgeleitet:
Rangierbetrieb (Leistungsart 2)
Die Leistungen im Rangierbetrieb der DB AG (idunternehmen = 1) werden anteilig aus der Summe der Verkehrsleistungen im Zugbetrieb (\(\mathit{vl3}\)) abgeleitet:
Energieverbrauch
Der spezifische Energieverbrauch (evspez) ist abhängig von Zugtyp, Antrieb und Energieart. Er wird auf Basis der Betriebsleistung \(\mathit{bl1}\) berechnet. Der spezifische Energieverbrauch setzt sich aus einem Basisverbrauch und einem jährlichen Änderungsfaktor (Effizienzentwicklung) zusammen.
Für die Berichterstattung wird zudem die Größe \(\mathit{vl2}\) und \(\mathit{bl2}\) ausgewiesen. Hierbei wird berücksichtigt, dass für Rangierbetrieb (Leistungsart = 2) keine Verkehrsleistung angesetzt wird, da Rangierfahrten keine Verkehrsleistung im klassischen Sinne erbringen.
Abhängige Variablen: vl, vlanteil, baanteil, alg, evspez (spezifischer Energieverbrauch), aendfaktor (Änderungsfaktor), differenziert nach den Parametern Szenario, Bezugsjahr, Unternehmen, Verkehrsart, Zuggattung, Betriebsart, Leistungsart und Energieträger.
1.2 Direkte Emissionen¶
Aus dem Energieverbrauch werden die direkten Emissionen für einzelne Schadstoffe (z. B. NOₓ, CO, HC, Partikel) über Emissionsfaktoren (efa) abgeleitet. CO₂ und SO₂ werden separat behandelt, da sie in erster Linie vom Energieträger und des Kraftstoffverbrauchs abhängen (siehe Abschnitt 1.3).
Ferner werden die von HC abgeleiteten Schadstoffkomponenten über ihre jeweiligen Anteile an den Kohlenwasserstoff-Gesamtemissionen bestimmt.
Für weitere Betriebsarten, z. B. elektrische Lokomotiven mit direkten Nullemissionen (DZE, idbetriebsart ∈ {11, 12, 13}), wird ein separater Datensatz mit Nullwerten erzeugt:
Die Teilergebnisse werden anschließend zu einer Tabelle vereinigt:
1.3 Nachgelagerte Ergänzungen¶
Nach der Berechnung der direkten Emissionen werden multiplikative Faktoren für spezifische Anpassungen angewendet. Dies betrifft:
Biokraftstoffanteile
Emissionen, die auf Basis des Kraftstoffverbrauchs abgeleitet werden
Treibhausgasäquivalente
Black Carbon Emissionen.
Die Berechnung erfolgt sequentiell:
Biokraftstoffanteile
Die Emissionen werden mit dem Biokraftstoffanteil multipliziert. Da die Berechnung auf Basis des ursprünglichen direkten Emissionswerts \(Em_{\text{direkt}} \in \{Em_{\text{direkt}}^{(1)}, Em_{\text{direkt}}^{(2)}, Em_{\text{direkt, DZE}}^{(1)}\}\) erfolgt, ergibt sich:
Kraftstoffverbrauchsabhängige Emissionen
Für Emissionen, die auf Basis des Kraftstoffverbrauchs berechnet werden, erfolgt eine Umrechnung ausgehend von den biokraftstoffbereinigten Werten:
Treibhausgase (THG-Äquivalente)
Die Berechnung der \(\text{CO}_2\)-Äquivalente erfolgt durch Multiplikation mit dem entsprechenden THG-Faktor und anschließender Aufsummierung der \(\text{CO}_2\)-Äquivalente je Schadstoff (z.B: CO2, CH4, N2O):
Black Carbon (BC)
Black Carbon Emissionen (\(\text{idss} = 6\)) werden als Anteil von den Partikelemissionen (\(Em_{\text{direkt}}\)) abgeleitet:
Abhängige Variablen: anteil (Biokraftstoffanteil), efaspez_tj (spez. treibstoffabgeleiteter EF), factor (THG-/CO₂-Äquivalenzfaktor), bc_shares (Black Carbon-Anteil an PM).
1.4 Gesamtberechnung¶
Die zusammenfassenden Formeln für Energieverbrauch und Emissionen basieren auf den zuvor beschriebenen Schritten. Sie berücksichtigen alle relevanten Indizes bzw. Differenzierungen (z. B. Szenario, Unternehmen, Verkehrsart) und Größen (z. B. Verkehrsleistung, Emissionsfaktoren).
Energieverbrauch
mit der Betriebsleistung
Emissionen
wobei der nachgelagerte Faktor je nach Schadstoffpfad nur einen der folgenden Terme annimmt:
Indizes
Index |
Spaltenvariable |
Bedeutung |
|---|---|---|
\(z\) |
|
Szenario / Bahnszenario |
\(u\) |
|
Unternehmen |
\(v\) |
|
Verkehrsart |
\(j\) |
|
Bezugsjahr |
\(g\) |
|
Zuggattung |
\(b\) |
|
Betriebsart (z. B. Zug-/Rangierbetrieb) |
\(l\) |
|
Leistungsart |
\(n\) |
|
Energieträger |
\(s\) |
|
Schadstoff / Komponente |
\(L\) |
|
Land (nur treibstoffabgeleitet) |
1.5 Energiebilanzkorrektur¶
Berechnung des TREMOD-Energieverbrauchs: Der Traktionsenergieverbrauch wird in TREMOD bottom-up aus Verkehrsleistungen, Betriebsleistungen und spezifischen Verbräuchen abgeleitet.
Vergleich mit der Energiebilanz: Die Summe der TREMOD-Ergebnisse für DB AG, Nichtbundeseigene Eisenbahnen (NE)-Bahnen und Hafen-/Werkbahnen (HWB) wird mit dem Wert aus der Energiebilanz der Arbeitsgemeinschaft Energiebilanzen (kurz AGEB) verglichen und hieraus ein Energiebilanzkorrekturfaktor berechnet. Der Faktor ergibt sich aus dem Verhältnis von AGEB-Wert zur TREMOD-Summe:
mit:
\(E_{\text{AGEB},n}\): Energieverbrauch des Schienenverkehrs für Energieträger \(n\) laut AGEB.
\(E_{\text{TREMOD,Summe},n}\): Summe der berechneten Verbrauchswerte für DB AG, NE-Bahnen und HWB in TREMOD.
Falls der AGEB-Wert niedriger ist als die TREMOD-Summe, wird der Korrekturfaktor < 1 (Reduktion der TREMOD-Werte). Wenn jedoch der AGEB-Wert höher ist, wird der Faktor > 1 (Erhöhung der TREMOD-Werte).
Anwendung des Faktors: Die berechneten Energieverbrauchswerte in TREMOD werden mit dem Korrekturfaktor multipliziert, um die Übereinstimmung mit der Energiebilanz herzustellen. Die korrigierten Energieverbrauchswerte \(E_{\text{korr},n}\) für den Schienenverkehr ergeben sich aus:
wobei:
\(E_{\text{korr},n}\): Korrigierter Energieverbrauch des Schienenverkehrs für Energieträger \(n\) (Strom oder Diesel).
\(E_{\text{TREMOD},n}\): Berechneter Energieverbrauch in TREMOD für Energieträger \(n\).
\(k_n\): Korrekturfaktor für Energieträger \(n\).
Für die Ergebnisausgabe nach Energiebilanzprinzip und ZSE (siehe nächster Abschnitt) werden auch die Emissionen mit dem Korrekturfaktor multipliziert.
1.6 ZSE-Ausgabe¶
Die korrigierten Energieverbrauchsdaten bilden auch die Grundlage für die nationale Berichterstattung im zentralen System Emissionen (ZSE). TREMOD verfügt hierzu über eine eigene ZSE-Schnittstelle für den Verkehr.
Das ZSE unterscheidet im Schienenverkehr nach Kraftstoffart und Bezugsjahr. Dabei wird eine eigene Nomenklatur verwendet, welche in entsprechenden Zuordnungstabellen hinterlegt ist. Auch wird nur ein Teil der in TREMOD verfügbaren Schadstoffe für das ZSE berichtet.
- Das ZSE beinhaltet folgende Kenngrößen:
Aktivitätsrate: für direkte Emissionen in Terajoule (TJ)
Emissionsfaktoren: für direkte Emissionen in kg/TJ
Die Emissionsfaktoren berechnen sich aus dem Quotient aus den Emissionen und dem Endenergieverbrauch je Bezugsjahr und ZSE-Kategorie. Die Ergebnisse nach Inlandsprinzip werden nicht korrigiert.
2. Implementierung¶
Sämtliche Abfragen und Berechnungen von TREMOD Rail (Schienenverkehr) sind in Python und der Bibliothek Polars umgesetzt. Die Datenhaltung in mehreren PostgreSQL-Datenbanken. Im folgenden werden die Datenschnittstellen, Eingangsdatenformate und Berechnungsschritte skizziert.
2.1 Datenschnittstellen¶
Alle Eingangsdaten und Definitionen sind als Tabellen in der SQL-Datenbank gespeichert und können dort verändert werden, z.B. für jährliche Updates. Sie werden über das Modul tableoperations aufgerufen und in die Berechnungen für TREMOD-Road integriert. Der Name der Datenbank setzt sich aus „tremod_rail“ + „Versionsnummer“ zusammen. Die Datentabellen können entweder aus einer lokalen SQLite-Datenbank oder über Remote-Zugriff (z.B. Postgres) abgerufen werden.
Alle für die Berechnungen des Schienenverkehrs verwendeten Tabellen werden über die Klasse PersistanceLayer
im Modul tableoperations.py des Rechenmodells füe den Schienenverkehr definiert und vorgeladen.
Sie beinhaltet folgende Methoden, welche im folgenden kurz beschrieben werden:
Methode |
Beschreibung |
|---|---|
get_common |
Verkehrsträgerübergreifende Daten, Definitionen und Emissionsfaktoren |
get_base_data |
Verkehrsleistungs- und Betriebsdaten im Schienenverkehr |
get_emission_factors |
Bahnspezifische Emissionsfaktoren |
get_definitions |
Definitionsdateien des Verkehrsträgers Schiene (z.B. Szenarien) |
Die Hilfsmethoden get_results und write_to_db dienen dem Lesen und Schreiben der Ergebnisse zu Bestand, Fahr- und Verkehrsleistung sowie Emissionen in die Datenbank. convert_pol_dtypes dient zur Vereinheitlichung von Datentypen für die Berechnungen in Polars.
2.2 Eingangsdaten¶
Die Quellen zu den Eingangsdaten sind in den UBA-Berichten zur TREMOD-Aktualisierung dokumentiert. Daher wird hier nur auf die für die Emissionsberechnung wichtigsten Tabellen eingegangen, welche im Rahmen der jährlichen Updates angepasst werden.
Common data¶
Ergänzend siehe ggf. Tabellen, die bereits für den Straßenverkehr (1A3b) erläutert wurden.
Spezifische Emissionsfaktoren
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idland |
integer |
siehe tg_land |
idvtr |
integer |
siehe tg_vtraeger |
idss |
integer |
Schadstoff |
jahr |
bigint |
Bezugsjahr |
idenergy |
integer |
siehe tg_energie |
efaspez |
double precision |
Emissionsfaktor g/kg |
efaspez_tj |
double precision |
Emissionsfaktor kg/TJ |
ppm |
double precision |
Schwefelanteil Kraftstoff in ppm |
com |
text |
Kommentar |
Biokraftstoffanteile
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idszenario |
integer |
siehe btg_szenario |
bezugsjahr |
integer |
Bezugsjahr |
idenergy |
integer |
siehe tg_energie |
idenergy_bezug |
integer |
siehe tg_energie |
anteil |
real |
Anteil in % (energetisch) |
idvtr |
integer |
Verkehrsträger (Straße, Schiene, Binnenschiff, Luft) |
Basisdaten (Aktivitätsdaten)¶
Verkehrsleistungsanteile
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idvlantvar |
integer |
Identifikationsnummer Variante Verkehrsleistungsanteil |
idunternehmen |
integer |
Identifikationsnummer Unternehmen |
idverkehrsart |
integer |
Identifikationsnummer Verkehrsart |
bezugsjahr |
integer |
Bezugsjahr |
idzuggattung |
integer |
Identifikationsnummer Zuggattung |
vlanteil |
double precision |
Verkehrsleistungsanteil |
Betriebsartanteile
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idbavar |
integer |
Identifikationsnummer Variante Betriebsart |
idunternehmen |
integer |
Identifikationsnummer Unternehmen |
bezugsjahr |
integer |
Bezugsjahr |
idzuggattung |
integer |
Identifikationsnummer Zuggattung |
idbetriebsart |
integer |
Identifikationsnummer Betriebsart |
idleistungsart |
integer |
Identifikationsnummer Leistungsart |
baanteil |
double precision |
Anteil Betriebsart |
Auslastungsgrade
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idalgvar |
integer |
Identifikationsnummer Variante Auslastungsgrad |
idunternehmen |
integer |
Identifikationsnummer Unternehmen |
bezugsjahr |
integer |
Bezugsjahr |
idzuggattung |
integer |
Identifikationsnummer Zuggattung |
idbetriebsart |
integer |
Identifikationsnummer Betriebsart |
idleistungsart |
integer |
Identifikationsnummer Leistungsart |
alg |
double precision |
Auslastungsgrad |
Verkehrsleistungen
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idvlvar |
integer |
Identifikationsnummer Variante Verkehrsleistung |
idunternehmen |
integer |
Identifikationsnummer Unternehmen |
idverkehrsart |
integer |
Identifikationsnummer Verkehrsart |
bezugsjahr |
integer |
Bezugsjahr |
vl |
double precision |
Verkehrsleistung |
com |
text |
Anmerkung Verkehrsleistung |
Emissionsfaktoren¶
Emissionsfaktoren
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idzugart |
integer |
Identifikationsnummer Zugart |
idbetriebsart |
integer |
Identifikationsnummer Betriebsart |
idleistungsart |
integer |
Identifikationsnummer Leistungsart |
idss |
integer |
Identifaktionsnummer Schadstoff |
efa |
double precision |
Emissionsfaktor |
com_efa |
text |
Anmerkung Emissionsfaktor |
Energieverbrauchsfaktoren
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idzuggattung |
integer |
Identifikationsnummer Zuggattung |
idbetriebsart |
integer |
Identifikationsnummer Betriebsart |
idleistungsart |
integer |
Identifikationsnummer Leistungsart |
evspez |
double precision |
Spezifischer Energieverbrauch |
com_evspez |
text |
Anmerkung zu spez. Energieverbrauch |
Anpassungsfaktoren des Energieverbrauchs
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idenergievar |
integer |
Identifikationsnummer Variante Energieträger |
idunternehmen |
integer |
Identifikationsnummer Unternehmen |
idzuggattung |
integer |
Identifikationsnummer Zuggattung |
idbetriebsart |
integer |
Identifikationsnummer Betriebsart |
idleistungsart |
integer |
Identifikationsnummer Leistungsart |
bezugsjahr |
integer |
Bezugsjahr |
aendfaktor |
double precision |
Änderungsfaktor Energieverbrauch |
Änderungsfaktoren der Emissionen
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idemvar |
integer |
Identifikationsnummer Variante Emission |
idunternehmen |
integer |
Identifikationsnummer Unternehmen |
idzugart |
integer |
Identifikationsnummer Zugart |
idbetriebsart |
integer |
Identifikationsnummer Betriebsart |
idleistungsart |
integer |
Identifikationsnummer Leistungsart |
bezugsjahr |
integer |
Bezugsjahr |
idss |
integer |
Identifikationsnummer Schadstoff |
emaendfaktor |
double precision |
Änderungsfaktor Emission |
Definitionen¶
Szenariendefinition
Spaltenname |
Datentyp |
Beschreibung |
|---|---|---|
idszenbahn |
integer |
Identifikationsnummer Szenario |
idverkehrsart |
integer |
Identifikationsnummer Verkehrsart |
bezugsjahr |
integer |
Bezugsjahr der Szenariendefinition |
idunternehmen |
integer |
Identifikationsnummer Unternehmen |
idvlvar |
integer |
Identifikationsnummer Variante Verkehrsleistung |
idvlantvar |
integer |
Identifikationsnummer Variante Verkehrsleistungsanteil |
idalgvar |
integer |
Identifikationsnummer Variante Auslastungsgrad |
idbavar |
integer |
Identifikationsnummer Variante Betriebsart |
idenergievar |
integer |
Identifikationsnummer Variante Energieträger |
idemvar |
integer |
Identifikationsnummer Variante Emissionen |
idenergieerzvar |
integer |
Identifikationsnummer Variante Energieerzeugung |
idland |
integer |
Identifikationsnummer Land |
2.3 Berechnungen¶
Die eigentliche Emissionsberechnung des Schienenverkehrs ist in der Klasse RailEmissions
im Modul rail.src.emissions gebündelt. Sie lädt beim Initialisieren die benötigten
Eingangsdaten (Basis- bzw. Aktivitätsdaten, Energieverbrauchs- und Emissionsfaktoren,
Definitionen sowie verkehrsträgerübergreifende Daten) über die Klasse PersistanceLayer
und stellt darauf aufbauend die einzelnen Berechnungsschritte als Methoden bereit.
Das folgende Ablaufdiagramm gibt einen Überblick über das Zusammenspiel dieser
Methoden und den Datenfluss zwischen ihnen. Ausgehend von den Eingangsdaten werden in der
Methode calculate_tblsce_rail_sys_d_trend zunächst die direkten Emissionen über die
gesamte interne Kette (Verkehrs- und Betriebsleistung, Energieverbrauch, Emissionsfaktoren,
HC-Differenzierung und Nullemissions-Komponenten) berechnet und in direct_emissions
abgelegt. Die nachgelagerten Methoden (z. B. Biokraftstoffanteile, treibstoffabgeleitete
Emissionen, Treibhausgas-Äquivalente und Black Carbon) bauen auf diesem Zwischenergebnis
bzw. auf merged_results auf und ergänzen die Gesamtergebnisse schrittweise.
Ablaufdiagramm der Emissionsberechnung¶
Code-Beschreibung:¶
Die nachfolgende Übersicht wurde aus den Docstrings des Moduls
rail.src.emissions erzeugt und dokumentiert die Klasse RailEmissions mit allen
öffentlichen Methoden. Sie beschreibt für jede Methode kurz ihre Aufgabe, die verarbeiteten
Eingangsdaten sowie die zurückgegebenen Ergebnisse und bildet damit die konkrete
Implementierung der zuvor dargestellten Berechnungsschritte ab. Die einzelnen Methoden sind
in der Reihenfolge ihres Aufrufs im Ablaufdiagramm zu lesen.
- class rail.src.emissions.RailEmissions(local=False, trmd_version='701')
Bases:
object- static add_dze_comp_modes(energy_consumption: DataFrame, res_dze_comp_modes: DataFrame) DataFrame
Adds modes with zero direct emissions (DZE) to the energy consumption DataFrame by performing a left join with the DZE DataFrame. The method filters rows based on specific criteria and adds additional columns for further processing.
- Parameter:
energy_consumption – A Polars DataFrame containing energy consumption data.
res_dze_comp_modes – A Polars DataFrame containing DZE modes.
- Rückgabe:
A Polars DataFrame with the joined and processed data.
- bc_emissions(bc_shares=0.65)
- Calculates black carbon emissions based on predefined shares and
applies necessary transformations to generate updated emission data.
- Verursacht:
KeyError – If expected, keys are missing in the self.definitions or bc_shares data structures.
ValueError – If data alignment issues occur during table join operations.
- Rückgabe:
DataFrame containing the black carbon emissions, updated with weighted values based on specific shares and segments.
- Rückgabetyp:
pd.DataFrame
- biofuelshares()
Calculates and integrates the share of biofuels in the energy mix based on given parameters stored in the instance’s attributes. Filters only relevant biofuels data, performs merging, and adjusts energy values proportional to the biofuel shares.
- Verursacht:
KeyError – If required keys are missing during filtering, joining, or renaming operations.
- Rückgabe:
Updated DataFrame where the energy values are adjusted to include biofuel shares, and unnecessary intermediate columns are dropped.
- Rückgabetyp:
pol.DataFrame
- static calc_em_excl_co2_so2(energy_consumption: DataFrame, ef_excl_co2_so2: DataFrame) DataFrame
Calculates emissions excluding CO2 and SO2 based on energy consumption and emission factors. This method joins the energy consumption DataFrame with the emission factors DataFrame based on specific keys, and computes adjusted emissions.
- Parameter:
energy_consumption – The DataFrame contains energy consumption data.
ef_excl_co2_so2 – The DataFrame contains emission factors excluding CO2 and SO2.
- Rückgabe:
A DataFrame with enriched and computed emission data.
- Rückgabetyp:
pol.DataFrame
- calc_em_hc_diff(em_excl_co2_so2: DataFrame) DataFrame
Calculates various hydrocarbon related emissions based on input emission data. Joins the em_excl_co2_so2 DataFrame with specific emission factor information and computes additional columns for the resulting dataset.
- Parameter:
em_excl_co2_so2 – A Polars DataFrame containing emission data excluding CO2 and SO2. The input should include columns allowing an inner join with the emission factor DataFrame, such as idss and idenergy.
- Rückgabe:
A Polars DataFrame containing the resulting dataset after processing, including relevant scenario, company, traffic type, and calculated emission data.
- calc_energy_consumption(ops_merged: DataFrame) DataFrame
Calculates energy consumption for the provided dataset by merging energy-related data from multiple dataframes and performing necessary transformations.
- Parameter:
ops_merged (pol.DataFrame) – The input DataFrame containing operational data that needs to be processed and enhanced with energy consumption details.
- Rückgabe:
A DataFrame with the calculated energy consumption and various additional attributes derived through the joining and transformation steps.
- Rückgabetyp:
pol.DataFrame
- calculate_tblsce_rail_sys_d_trend() DataFrame
Calculates the rail system emissions trend data and prepares the resulting dataset.
This method processes train and shunting operation performances, computes energy consumption, and applies emission factors to estimate emissions excluding CO2 and SO2. It incorporates differential results for hydrocarbon-related emissions and identifies compensatory modes. The method merges all partial results into a final dataset, computes direct emissions, and returns the complete DataFrame.
- Rückgabe:
A DataFrame containing the computed rail system direct emissions trend data.
- Rückgabetyp:
pol.DataFrame
- static compare_dtypes(df1, df2)
Compare the data types of two DataFrame objects.
This static method compares the data types of columns in two given DataFrame objects. It returns a dictionary indicating whether each column has matching data types across both DataFrames.
- Parameter:
df1 (DataFrame) – The first DataFrame object to compare.
df2 (DataFrame) – The second DataFrame object to compare.
- Rückgabe:
A dictionary where keys are column names and values are boolean flags indicating if the columns have different data types in both DataFrames.
- Rückgabetyp:
dict
- det_dze_comp_modes() DataFrame
Selection of components and operating modes with zero direct emissions.
- Rückgabe:
A filtered and processed DataFrame containing operating modes with zero direct emissions.
- Rückgabetyp:
pol.DataFrame
- fuel_derived_emissions()
Calculates and retrieves fuel-derived emissions by applying specific emission factors to the corresponding fuel amounts. This function processes data by merging it with definitions, specific emission factors, and then calculates the resulting emission values. It updates the merged results with the processed data.
- Parameter:
self – The instance of the class, used to access its attributes and other methods.
- Rückgabe:
DataFrame containing the fuel-derived emissions after processing.
- Rückgabetyp:
pandas.DataFrame
- static get_direct_emission_results(mrgd_part_res: DataFrame) DataFrame
Extracts and transforms specific columns from the provided DataFrame to generate direct emission results. The method filters and renames selected columns from the input DataFrame to meet internal processing needs.
- Parameter:
mrgd_part_res – The input DataFrame containing emission data along with other related attributes. It is expected to have columns such as ‚idszenario‘, ‚idunternehmen‘, ‚idverkehrsart‘, ‚bezugsjahr‘, ‚idzuggattung‘, ‚idbetriebsart‘, ‚idleistungsart‘, ‚idss‘, ‚idenergy‘, ‚vl2‘, ‚bl2‘, and ‚e_direkt‘.
- Rückgabe:
A transformed DataFrame containing the selected and renamed columns for further processing. The column e_gesamt is included with a static value of 0.
- Rückgabetyp:
pol.DataFrame
- get_ef_excl_co2_so2() DataFrame
Computes and returns a filtered and joined dataset with emission factors for further analysis excluding CO2 and SO2. The function performs multiple joins on data tables, applies filters on specific columns, and computes a new column (efa1) as a product of existing columns.
- Rückgabe:
A filtered dataset containing emission factors, excluding CO2 and SO2.
- Rückgabetyp:
pol.DataFrame
- get_merged_results(df_result)
Merges the direct emissions data with the provided result DataFrame.
- Parameter:
df_result (pandas.DataFrame) – The DataFrame to merge with the direct emissions.
- Rückgabe:
The merged DataFrame containing both direct emissions and the result data.
- Rückgabetyp:
pandas.DataFrame
This method first checks whether the direct emissions data is empty. If so, it attempts to calculate them. It then ensures that biofuel shares have already been calculated and compares the columns in common between the direct emissions DataFrame and the provided input DataFrame. Finally, it returns a horizontally merged and aligned DataFrame.
- ghg_emissions()
Calculates CO2-equivalents from CO2 and other greenhouse gases. This function processes data by merging it with definitions, specific emission factors, and then calculates the resulting emission values.
- Parameter:
self – The instance of the class, used to access its attributes and other methods.
- Rückgabe:
DataFrame containing the ghg emissions after processing.
- Rückgabetyp:
pandas.DataFrame
- static merge_ops(train_ops: DataFrame, shunt_ops: DataFrame) DataFrame
Merges train operations and shunt operations datasets into a single dataset by selecting specific columns and unifying them into a consistent structure. The method combines and deduplicates the data.
- Parameter:
train_ops – A DataFrame containing train operations data.
shunt_ops – A DataFrame containing shunt operations data.
- Rückgabe:
A consolidated DataFrame containing merged and unique records from train and shunt operations datasets.
- merge_partial_results(energy_consumption: DataFrame, em_excl_co2_so2: DataFrame, res_em_hc_diff: DataFrame, mrgd_dze_comp_modes: DataFrame) DataFrame
Merges partial results from multiple dataframes into a single dataframe by selecting specific result columns and concatenating the data vertically while ensuring uniqueness of the resulting rows.
- Parameter:
energy_consumption – The input dataframe containing energy consumption data with a specific structure. It needs to be processed to extract relevant columns.
em_excl_co2_so2 – The input dataframe containing emission data excluding CO2 and SO2 with a specific structure. Relevant columns will be selected for merging.
res_em_hc_diff – The input dataframe containing results of emission hydrocarbon differences. A specific column will be extracted for further merging.
mrgd_dze_comp_modes – The input dataframe with merged direct zero emission data. modes. Relevant columns are extracted for inclusion in the final result.
- Rückgabe:
A concatenated dataframe combining all the relevant data from the input dataframes, with duplicate rows removed.
- Rückgabetyp:
pol.DataFrame
- static prep_shunt_ops_perf(train_ops: DataFrame) DataFrame
Prepares the operational shunting performance data by filtering, grouping, aggregating, and enriching the dataset for further analysis.
- Parameter:
train_ops – A Polars DataFrame representing operational train data.
- Rückgabe:
A Polars DataFrame containing the processed shunting performance dataset.
- shunt_ops_perf(shunt_ops_prep: DataFrame) DataFrame
Performs operations on the given shunting operations preparation DataFrame by joining it with additional reference data tables, filtering based on specific criteria, performing calculations, and returning a processed DataFrame with unique rows.
- Parameter:
shunt_ops_prep – A Polars DataFrame containing prepared shunting operations data to be transformed and processed.
- Rückgabe:
A Polars DataFrame containing the processed shunting operations data
- train_ops_perf() DataFrame
Computes operational performance statistics for train scenarios by joining and filtering multiple data sources and deriving new metrics.
The function processes data tables related to train scenarios, transportation types, operational modes, and other parameters. It combines the tables with relevant keys, applies necessary filters, and calculates derived metrics based on performance indicators. The final dataset includes metrics such as scenario ID, transportation type, operational type, and performance indicators.
- Rückgabe:
A DataFrame containing calculated train operational performance metrics.
- Rückgabetyp:
pol.DataFrame
2.4 Ergebnisausgabe¶
Die Ergebnisausgabe ist im Wesentlichen nach folgenden differenziert:
Szenario (z.B.: Realdaten Westdeutschland 1960-1993, Realdaten Ostdeutschland 1960-1993, Deutschland 1994-2050)
Bezugsjahr (z.B.: 1960 bis 2050)
Unternehmen (z.B.: Deutsche Bahn AG und Rechtsvorgänger, Nichtbundeseigene Eisenbahnen öffentlich, Kommunale Bahnen, Hafen- und Werksbahnen)
Verkehrsart (z.B. Personenverkehr, Güterverkehr)
Zuggattung (z.B. Personennahverkehrszug, Personenfernverkehrszug, Güterzug, Straßen-Stadt-U-Bahn, Hafen- Werksbahn, ICE, IC/EC, InterRegio)
Betriebsart (z.B. Elektrisch (Bahnstrom), Elektrisch (EVU-Strom), Diesel, Dampf/Kohle)
Leistungsart (z.B. Leistungen im Zugdienst, Rangierleistungen)
Schadstoff (z.B. Kohlenwasserstoffe total, Kohlenmonoxid, Stickoxide, Partikelmasse)
Energieträger (z.B. Strom, Diesel, Biodiesel u. Pflanzenöl)